diff options
| author | William Boman <william@redwill.se> | 2025-02-19 14:46:52 +0100 |
|---|---|---|
| committer | William Boman <william@redwill.se> | 2025-02-19 14:47:55 +0100 |
| commit | a8f5e511c686b6e8eec7bc57caf4d9d710005bcf (patch) | |
| tree | abca0182302608d93d45bb140b0ef8fee2e738de | |
| parent | chore(main): release 1.32.0 (#479) (diff) | |
| download | mason-lspconfig-a8f5e511c686b6e8eec7bc57caf4d9d710005bcf.tar mason-lspconfig-a8f5e511c686b6e8eec7bc57caf4d9d710005bcf.tar.gz mason-lspconfig-a8f5e511c686b6e8eec7bc57caf4d9d710005bcf.tar.bz2 mason-lspconfig-a8f5e511c686b6e8eec7bc57caf4d9d710005bcf.tar.lz mason-lspconfig-a8f5e511c686b6e8eec7bc57caf4d9d710005bcf.tar.xz mason-lspconfig-a8f5e511c686b6e8eec7bc57caf4d9d710005bcf.tar.zst mason-lspconfig-a8f5e511c686b6e8eec7bc57caf4d9d710005bcf.zip | |
feat!: update usage of deprecated mason.nvim APIs
| -rw-r--r-- | lua/mason-lspconfig/lspconfig_hook.lua | 3 | ||||
| -rw-r--r-- | lua/mason-lspconfig/server_configurations/pylsp/init.lua | 9 | ||||
| -rw-r--r-- | tests/helpers/lua/dummy-registry/dummy2_package.lua | 15 | ||||
| -rw-r--r-- | tests/helpers/lua/dummy-registry/dummy_package.lua | 15 | ||||
| -rw-r--r-- | tests/helpers/lua/dummy-registry/fail_dummy.lua | 15 | ||||
| -rw-r--r-- | tests/helpers/lua/test_helpers.lua | 22 | ||||
| -rw-r--r-- | tests/mason-lspconfig/setup_spec.lua | 25 |
7 files changed, 49 insertions, 55 deletions
diff --git a/lua/mason-lspconfig/lspconfig_hook.lua b/lua/mason-lspconfig/lspconfig_hook.lua index 91284af..cc7606f 100644 --- a/lua/mason-lspconfig/lspconfig_hook.lua +++ b/lua/mason-lspconfig/lspconfig_hook.lua @@ -1,7 +1,6 @@ local _ = require "mason-core.functional" local log = require "mason-core.log" local notify = require "mason-lspconfig.notify" -local path = require "mason-core.path" local platform = require "mason-core.platform" local memoized_set = _.memoize(_.set_of) @@ -74,7 +73,7 @@ return function() if registry.is_installed(pkg_name) then resolve_server_config_factory(config.name):if_present(function(config_factory) - local mason_config = config_factory(path.package_prefix(pkg_name), config) + local mason_config = config_factory(vim.fn.expand("$MASON/packages/" .. pkg_name), config) _.reduce(merge_in_place, config, { mason_config, user_config or {} }) end) if platform.is.win and (config.cmd and config.cmd[1] ~= "cmd.exe") then diff --git a/lua/mason-lspconfig/server_configurations/pylsp/init.lua b/lua/mason-lspconfig/server_configurations/pylsp/init.lua index 9d930b0..8a683ec 100644 --- a/lua/mason-lspconfig/server_configurations/pylsp/init.lua +++ b/lua/mason-lspconfig/server_configurations/pylsp/init.lua @@ -7,7 +7,7 @@ return function(install_dir) "PylspInstall", a.scope(function(opts) local notify = require "mason-lspconfig.notify" - local pip3 = require "mason-core.managers.pip3" + local pypw = require "mason-core.installer.managers.pypi" local process = require "mason-core.process" local spawn = require "mason-core.spawn" @@ -19,8 +19,11 @@ return function(install_dir) "-U", "--disable-pip-version-check", plugins, - stdio_sink = process.simple_sink(), - with_paths = { pip3.venv_path(install_dir) }, + stdio_sink = process.StdioSink:new { + stdout = vim.schedule_wrap(vim.api.nvim_out_write), + stderr = vim.schedule_wrap(vim.api.nvim_err_write), + }, + with_paths = { pypw.venv_path(install_dir) }, } if vim.in_fast_event() then a.scheduler() diff --git a/tests/helpers/lua/dummy-registry/dummy2_package.lua b/tests/helpers/lua/dummy-registry/dummy2_package.lua index 424e47d..c307843 100644 --- a/tests/helpers/lua/dummy-registry/dummy2_package.lua +++ b/tests/helpers/lua/dummy-registry/dummy2_package.lua @@ -1,14 +1,15 @@ local Pkg = require "mason-core.package" -return Pkg.new { +return Pkg:new { + schema = "registry+v1", name = "dummy2", - desc = [[This is a dummy2 package.]], + description = [[This is a dummy2 package.]], + licenses = {}, categories = { Pkg.Cat.LSP }, languages = { Pkg.Lang.Dummy2Lang }, homepage = "https://example.com", - ---@async - ---@param ctx InstallContext - install = function(ctx) - ctx.receipt:with_primary_source { type = "dummy2" } - end, + source = { + id = "pkg:mason/dummy2@1.0.0", + install = function() end, + }, } diff --git a/tests/helpers/lua/dummy-registry/dummy_package.lua b/tests/helpers/lua/dummy-registry/dummy_package.lua index b38d1cd..6eb7799 100644 --- a/tests/helpers/lua/dummy-registry/dummy_package.lua +++ b/tests/helpers/lua/dummy-registry/dummy_package.lua @@ -1,14 +1,15 @@ local Pkg = require "mason-core.package" -return Pkg.new { +return Pkg:new { + schema = "registry+v1", name = "dummy", - desc = [[This is a dummy package.]], + description = [[This is a dummy package.]], + licenses = {}, categories = { Pkg.Cat.LSP }, languages = { Pkg.Lang.DummyLang }, homepage = "https://example.com", - ---@async - ---@param ctx InstallContext - install = function(ctx) - ctx.receipt:with_primary_source { type = "dummy" } - end, + source = { + id = "pkg:mason/dummy@1.0.0", + install = function() end, + }, } diff --git a/tests/helpers/lua/dummy-registry/fail_dummy.lua b/tests/helpers/lua/dummy-registry/fail_dummy.lua index 3df551e..c2fb642 100644 --- a/tests/helpers/lua/dummy-registry/fail_dummy.lua +++ b/tests/helpers/lua/dummy-registry/fail_dummy.lua @@ -1,12 +1,17 @@ local Pkg = require "mason-core.package" -return Pkg.new { +return Pkg:new { + schema = "registry+v1", name = "fail_dummy", - desc = [[This is a dummy package that fails.]], + description = [[This is a dummy package that fails.]], + licenses = {}, categories = { Pkg.Cat.LSP }, languages = { Pkg.Lang.DummyLang }, homepage = "https://example.com", - install = function() - error("fail-dummy doesn't want to be installed", 0) - end, + source = { + id = "pkg:mason/fail_dummy@1.0.0", + install = function() + error("fail-dummy doesn't want to be installed", 0) + end, + }, } diff --git a/tests/helpers/lua/test_helpers.lua b/tests/helpers/lua/test_helpers.lua index 15ccd5e..0ae3158 100644 --- a/tests/helpers/lua/test_helpers.lua +++ b/tests/helpers/lua/test_helpers.lua @@ -1,11 +1,7 @@ ---@diagnostic disable: lowercase-global -local spy = require "luassert.spy" local util = require "luassert.util" -local InstallContext = require "mason-core.installer.context" -local InstallHandle = require "mason-core.installer.handle" local a = require "mason-core.async" -local registry = require "mason-registry" function async_test(suspend_fn) return function() @@ -55,21 +51,3 @@ mockx = { return mock end, } - ----@param package_name string -function InstallHandleGenerator(package_name) - return InstallHandle.new(registry.get_package(package_name)) -end - ----@param handle InstallHandle ----@param opts InstallContextOpts | nil -function InstallContextGenerator(handle, opts) - local context = InstallContext.new(handle, opts or {}) - context.spawn = setmetatable({}, { - __index = function(s, cmd) - s[cmd] = spy.new(mockx.just_runs()) - return s[cmd] - end, - }) - return context -end diff --git a/tests/mason-lspconfig/setup_spec.lua b/tests/mason-lspconfig/setup_spec.lua index 06bdf2b..ad37ce6 100644 --- a/tests/mason-lspconfig/setup_spec.lua +++ b/tests/mason-lspconfig/setup_spec.lua @@ -17,7 +17,9 @@ describe("mason-lspconfig setup", function() settings.set(settings._DEFAULT_SETTINGS) for _, pkg in ipairs(registry.get_all_packages()) do - pkg:uninstall() + if pkg:is_installed() then + pkg:uninstall() + end end end) @@ -57,8 +59,8 @@ describe("mason-lspconfig setup", function() assert.spy(Pkg.install).was_called_with(match.ref(dummy), { version = "1.0.0" }) assert.spy(Pkg.install).was_called_with(match.ref(fail_dummy), { version = nil }) assert.wait_for(function() - assert.is_true(dummy.handle:is_closed()) - assert.is_true(fail_dummy.handle:is_closed()) + assert.is_true(dummy.install_handle:is_closed()) + assert.is_true(fail_dummy.install_handle:is_closed()) end) end) ) @@ -146,8 +148,8 @@ describe("mason-lspconfig setup", function() { title = "mason-lspconfig.nvim" } ) assert.wait_for(function() - assert.is_true(dummy.handle:is_closed()) - assert.is_true(fail_dummy.handle:is_closed()) + assert.is_true(dummy.install_handle:is_closed()) + assert.is_true(fail_dummy.install_handle:is_closed()) assert.spy(vim.notify).was_called_with( [[[mason-lspconfig.nvim] dummylsp was successfully installed]], vim.log.levels.INFO, @@ -182,8 +184,8 @@ describe("mason-lspconfig setup", function() assert.spy(Pkg.install).was_called_with(match.ref(dummy2), {}) assert.wait_for(function() - assert.is_true(dummy.handle:is_closed()) - assert.is_true(dummy2.handle:is_closed()) + assert.is_true(dummy.install_handle:is_closed()) + assert.is_true(dummy2.install_handle:is_closed()) assert.spy(lspconfig.dummylsp.setup).was_called(2) assert.spy(lspconfig.dummy2lsp.setup).was_called(2) end) @@ -225,9 +227,10 @@ describe("mason-lspconfig setup", function() it("should let user config take precedence", function() stub(registry, "is_installed") registry.is_installed.on_call_with("dummy").returns(true) - package.loaded["mason-lspconfig.server_configurations.dummylsp"] = function() + local server_config = spy.new(function() return { cmd = { "mason-cmd" } } - end + end) + package.loaded["mason-lspconfig.server_configurations.dummylsp"] = server_config local config = { name = "dummylsp" } local user_config = { cmd = { "user-cmd" } } @@ -236,6 +239,10 @@ describe("mason-lspconfig setup", function() on_setup(config, user_config) assert.same({ name = "dummylsp", cmd = { "user-cmd" } }, config) + assert.spy(server_config).was_called(1) + assert + .spy(server_config) + .was_called_with(vim.fn.expand "$MASON/packages/dummy", match.same { name = "dummylsp" }) end) it("should set up package aliases", function() |
