refactor(installer): install gotests@develop by default (#95)

* refactor(installer): automatically install gotests@develop

* docs: update
This commit is contained in:
Smirnov Oleksandr 2025-03-21 00:54:04 +02:00 committed by GitHub
parent 55bc5787d1
commit c5cc5080fa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 13 additions and 46 deletions

View file

@ -57,7 +57,6 @@ require("gopher").setup {
-- path to a directory containing custom test code templates -- path to a directory containing custom test code templates
template_dir = nil, template_dir = nil,
-- switch table tests from using slice to map (with test name for the key) -- switch table tests from using slice to map (with test name for the key)
-- works only with gotests installed from develop branch
named = false, named = false,
}, },
gotag = { gotag = {

View file

@ -22,7 +22,8 @@ Table of Contents
`gopher.setup`({user_config}) `gopher.setup`({user_config})
Setup function. This method simply merges default config with opts table. Setup function. This method simply merges default config with opts table.
You can read more about configuration at |gopher.nvim-config| You can read more about configuration at |gopher.nvim-config|
Calling this function is optional, if you ok with default settings. Look |gopher.nvim.config-defaults| Calling this function is optional, if you ok with default settings.
See |gopher.nvim.config-defaults|
Usage ~ Usage ~
`require("gopher").setup {}` (replace `{}` with your `config` table) `require("gopher").setup {}` (replace `{}` with your `config` table)
@ -35,6 +36,7 @@ Parameters ~
Gopher.nvim implements most of its features using third-party tools. Gopher.nvim implements most of its features using third-party tools.
To install these tools, you can run `:GoInstallDeps` command To install these tools, you can run `:GoInstallDeps` command
or call `require("gopher").install_deps()` if you want to use lua api. or call `require("gopher").install_deps()` if you want to use lua api.
By default dependencies will be installed asynchronously, to install them synchronously pass `{sync = true}` as an argument.
============================================================================== ==============================================================================
@ -77,7 +79,6 @@ You can look at default options |gopher.nvim-config-defaults|
---@type string|nil ---@type string|nil
template_dir = nil, template_dir = nil,
-- switch table tests from using slice to map (with test name for the key) -- switch table tests from using slice to map (with test name for the key)
-- works only with gotests installed from develop branch
named = false, named = false,
}, },
---@class gopher.ConfigGoTag ---@class gopher.ConfigGoTag
@ -208,24 +209,8 @@ More details about templates can be found at: https://github.com/cweill/gotests
*gopher.nvim-gotests-named* *gopher.nvim-gotests-named*
You can enable named tests in the config if you prefer using named tests. You can enable named tests in the config if you prefer using named tests.
But you must install `gotests@develop` because the stable version doesn't support this feature. See |gopher.nvim-config|.
>lua
-- simply run go get in your shell:
go install github.com/cweill/gotests/...@develop
-- if you want to install it within neovim, you can use one of this:
-- if you choose to install gotests this way i reocmmend adding it to your `build` section in your |lazy.nvim|
vim.fn.jobstart("go install github.com/cweill/gotests/...@develop")
-- or if you want to use mason:
require("mason-tool-installer").setup {
ensure_installed = {
{ "gotests", version = "develop" },
}
}
<
============================================================================== ==============================================================================
------------------------------------------------------------------------------ ------------------------------------------------------------------------------

View file

@ -55,7 +55,6 @@ local default_config = {
---@type string|nil ---@type string|nil
template_dir = nil, template_dir = nil,
-- switch table tests from using slice to map (with test name for the key) -- switch table tests from using slice to map (with test name for the key)
-- works only with gotests installed from develop branch
named = false, named = false,
}, },
---@class gopher.ConfigGoTag ---@class gopher.ConfigGoTag

View file

@ -19,24 +19,7 @@
---@tag gopher.nvim-gotests-named ---@tag gopher.nvim-gotests-named
---@text ---@text
--- You can enable named tests in the config if you prefer using named tests. --- You can enable named tests in the config if you prefer using named tests.
--- But you must install `gotests@develop` because the stable version doesn't support this feature. --- See |gopher.nvim-config|.
---
--- >lua
--- -- simply run go get in your shell:
--- go install github.com/cweill/gotests/...@develop
---
--- -- if you want to install it within neovim, you can use one of this:
--- -- if you choose to install gotests this way i reocmmend adding it to your `build` section in your |lazy.nvim|
---
--- vim.fn.jobstart("go install github.com/cweill/gotests/...@develop")
---
--- -- or if you want to use mason:
--- require("mason-tool-installer").setup {
--- ensure_installed = {
--- { "gotests", version = "develop" },
--- }
--- }
--- <
local c = require "gopher.config" local c = require "gopher.config"
local ts_utils = require "gopher._utils.ts" local ts_utils = require "gopher._utils.ts"

View file

@ -19,7 +19,8 @@ local gopher = {}
---@tag gopher.nvim-setup ---@tag gopher.nvim-setup
---@text Setup function. This method simply merges default config with opts table. ---@text Setup function. This method simply merges default config with opts table.
--- You can read more about configuration at |gopher.nvim-config| --- You can read more about configuration at |gopher.nvim-config|
--- Calling this function is optional, if you ok with default settings. Look |gopher.nvim.config-defaults| --- Calling this function is optional, if you ok with default settings.
--- See |gopher.nvim.config-defaults|
--- ---
---@usage `require("gopher").setup {}` (replace `{}` with your `config` table) ---@usage `require("gopher").setup {}` (replace `{}` with your `config` table)
---@param user_config gopher.Config ---@param user_config gopher.Config
@ -34,6 +35,7 @@ end
---@text Gopher.nvim implements most of its features using third-party tools. ---@text Gopher.nvim implements most of its features using third-party tools.
--- To install these tools, you can run `:GoInstallDeps` command --- To install these tools, you can run `:GoInstallDeps` command
--- or call `require("gopher").install_deps()` if you want to use lua api. --- or call `require("gopher").install_deps()` if you want to use lua api.
--- By default dependencies will be installed asynchronously, to install them synchronously pass `{sync = true}` as an argument.
gopher.install_deps = require("gopher.installer").install_deps gopher.install_deps = require("gopher.installer").install_deps
gopher.impl = require("gopher.impl").impl gopher.impl = require("gopher.impl").impl

View file

@ -5,10 +5,10 @@ local log = require "gopher._utils.log"
local installer = {} local installer = {}
local urls = { local urls = {
gomodifytags = "github.com/fatih/gomodifytags", gomodifytags = "github.com/fatih/gomodifytags@latest",
impl = "github.com/josharian/impl", impl = "github.com/josharian/impl@latest",
gotests = "github.com/cweill/gotests/...", gotests = "github.com/cweill/gotests/...@develop",
iferr = "github.com/koron/iferr", iferr = "github.com/koron/iferr@latest",
} }
---@param opt vim.SystemCompleted ---@param opt vim.SystemCompleted
@ -40,8 +40,7 @@ end
---@param opts? {sync:boolean} ---@param opts? {sync:boolean}
function installer.install_deps(opts) function installer.install_deps(opts)
opts = opts or {} opts = opts or {}
for pkg, _ in pairs(urls) do for url, _ in pairs(urls) do
local url = urls[pkg] .. "@latest"
if opts.sync then if opts.sync then
install_sync(url) install_sync(url)
else else