diff options
| author | William Boman <william@redwill.se> | 2022-07-13 16:30:51 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-13 14:30:51 +0000 |
| commit | 828db98d7803e372b7437f754a365658a45a3cc2 (patch) | |
| tree | 21fedb532db91fa2a4f85fcbb17815c707c13f3a | |
| parent | tests: add some InstallHandle tests (#67) (diff) | |
| download | mason-828db98d7803e372b7437f754a365658a45a3cc2.tar mason-828db98d7803e372b7437f754a365658a45a3cc2.tar.gz mason-828db98d7803e372b7437f754a365658a45a3cc2.tar.bz2 mason-828db98d7803e372b7437f754a365658a45a3cc2.tar.lz mason-828db98d7803e372b7437f754a365658a45a3cc2.tar.xz mason-828db98d7803e372b7437f754a365658a45a3cc2.tar.zst mason-828db98d7803e372b7437f754a365658a45a3cc2.zip | |
refactor(api): change signatures to accept list of packages (#68)
| -rw-r--r-- | lua/mason/api/command.lua | 20 | ||||
| -rw-r--r-- | tests/mason/api/command_spec.lua | 6 |
2 files changed, 16 insertions, 10 deletions
diff --git a/lua/mason/api/command.lua b/lua/mason/api/command.lua index 90292994..6e20a449 100644 --- a/lua/mason/api/command.lua +++ b/lua/mason/api/command.lua @@ -77,13 +77,14 @@ local function join_handles(handles) end) end -local function MasonInstall(opts) +---@param package_specifiers string[] +local function MasonInstall(package_specifiers) local Package = require "mason-core.package" local registry = require "mason-registry" - local valid_packages = filter_valid_packages(opts.fargs) + local valid_packages = filter_valid_packages(package_specifiers) local is_headless = #vim.api.nvim_list_uis() == 0 - if is_headless and #valid_packages ~= #opts.fargs then + if is_headless and #valid_packages ~= #package_specifiers then -- When executing in headless mode we don't allow any of the provided packages to be invalid. -- This is to avoid things like scripts silently not erroring even if they've provided one or more invalid packages. return vim.cmd [[1cq]] @@ -105,15 +106,18 @@ local function MasonInstall(opts) end end -vim.api.nvim_create_user_command("MasonInstall", MasonInstall, { +vim.api.nvim_create_user_command("MasonInstall", function(opts) + MasonInstall(opts.fargs) +end, { desc = "Install one or more packages.", nargs = "+", complete = "custom,v:lua.mason_completion.available_package_completion", }) -local function MasonUninstall(opts) +---@param package_names string[] +local function MasonUninstall(package_names) local registry = require "mason-registry" - local valid_packages = filter_valid_packages(opts.fargs) + local valid_packages = filter_valid_packages(package_names) if #valid_packages > 0 then _.each(function(package_name) local pkg = registry.get_package(package_name) @@ -123,7 +127,9 @@ local function MasonUninstall(opts) end end -vim.api.nvim_create_user_command("MasonUninstall", MasonUninstall, { +vim.api.nvim_create_user_command("MasonUninstall", function(opts) + MasonUninstall(opts.fargs) +end, { desc = "Uninstall one or more packages.", nargs = "+", complete = "custom,v:lua.mason_completion.installed_package_completion", diff --git a/tests/mason/api/command_spec.lua b/tests/mason/api/command_spec.lua index 06b2e5db..6e7a4257 100644 --- a/tests/mason/api/command_spec.lua +++ b/tests/mason/api/command_spec.lua @@ -27,7 +27,7 @@ describe(":MasonInstall", function() local dummy = registry.get_package "dummy" local dummy2 = registry.get_package "dummy2" spy.on(Pkg, "install") - api.MasonInstall { fargs = { "dummy@1.0.0", "dummy2" } } + api.MasonInstall { "dummy@1.0.0", "dummy2" } assert.spy(Pkg.install).was_called(2) assert.spy(Pkg.install).was_called_with(match.is_ref(dummy), { version = "1.0.0" }) assert @@ -41,7 +41,7 @@ describe(":MasonInstall", function() async_test(function() local dummy = registry.get_package "dummy" spy.on(dummy, "install") - api.MasonInstall { fargs = { "dummy" } } + api.MasonInstall { "dummy" } local win = vim.api.nvim_get_current_win() local buf = vim.api.nvim_win_get_buf(win) assert.equals("mason.nvim", vim.api.nvim_buf_get_option(buf, "filetype")) @@ -56,7 +56,7 @@ describe(":MasonUninstall", function() local dummy = registry.get_package "dummy" local dummy2 = registry.get_package "dummy" spy.on(Pkg, "uninstall") - api.MasonUninstall { fargs = { "dummy", "dummy2" } } + api.MasonUninstall { "dummy", "dummy2" } assert.spy(Pkg.uninstall).was_called(2) assert.spy(Pkg.uninstall).was_called_with(match.is_ref(dummy)) assert.spy(Pkg.uninstall).was_called_with(match.is_ref(dummy2)) |
