aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2025-02-19 14:46:52 +0100
committerWilliam Boman <william@redwill.se>2025-02-19 14:47:55 +0100
commita8f5e511c686b6e8eec7bc57caf4d9d710005bcf (patch)
treeabca0182302608d93d45bb140b0ef8fee2e738de
parentchore(main): release 1.32.0 (#479) (diff)
downloadmason-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.lua3
-rw-r--r--lua/mason-lspconfig/server_configurations/pylsp/init.lua9
-rw-r--r--tests/helpers/lua/dummy-registry/dummy2_package.lua15
-rw-r--r--tests/helpers/lua/dummy-registry/dummy_package.lua15
-rw-r--r--tests/helpers/lua/dummy-registry/fail_dummy.lua15
-rw-r--r--tests/helpers/lua/test_helpers.lua22
-rw-r--r--tests/mason-lspconfig/setup_spec.lua25
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()