aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2023-03-24 11:57:07 +0100
committerGitHub <noreply@github.com>2023-03-24 10:57:07 +0000
commitd119ea67b2c8e1be64811785441761dfbc6e21f5 (patch)
treef93dd2d4fc5e15a22f8e65d46002fd6c7c47320a
parentfix: don't auto install servers when headless (#175) (diff)
downloadmason-lspconfig-d119ea67b2c8e1be64811785441761dfbc6e21f5.tar
mason-lspconfig-d119ea67b2c8e1be64811785441761dfbc6e21f5.tar.gz
mason-lspconfig-d119ea67b2c8e1be64811785441761dfbc6e21f5.tar.bz2
mason-lspconfig-d119ea67b2c8e1be64811785441761dfbc6e21f5.tar.lz
mason-lspconfig-d119ea67b2c8e1be64811785441761dfbc6e21f5.tar.xz
mason-lspconfig-d119ea67b2c8e1be64811785441761dfbc6e21f5.tar.zst
mason-lspconfig-d119ea67b2c8e1be64811785441761dfbc6e21f5.zip
fix(scripts): setup mason and refresh registry (#177)
Also fix tests.
-rw-r--r--lua/mason-lspconfig/api/command.lua20
-rw-r--r--scripts/lua/mason-scripts/mason-lspconfig/generate.lua3
-rw-r--r--tests/helpers/lua/dummy-registry/dummy2_package.lua (renamed from tests/helpers/lua/dummy2_package.lua)0
-rw-r--r--tests/helpers/lua/dummy-registry/dummy_package.lua (renamed from tests/helpers/lua/dummy_package.lua)0
-rw-r--r--tests/helpers/lua/dummy-registry/fail_dummy.lua (renamed from tests/helpers/lua/fail_dummy.lua)0
-rw-r--r--tests/helpers/lua/dummy-registry/index.lua5
-rw-r--r--tests/mason-lspconfig/api/api_spec.lua21
-rw-r--r--tests/mason-lspconfig/setup_spec.lua13
-rw-r--r--tests/minimal_init.vim16
9 files changed, 45 insertions, 33 deletions
diff --git a/lua/mason-lspconfig/api/command.lua b/lua/mason-lspconfig/api/command.lua
index b3c83d3..2cd1ef5 100644
--- a/lua/mason-lspconfig/api/command.lua
+++ b/lua/mason-lspconfig/api/command.lua
@@ -90,15 +90,17 @@ local parse_packages_to_install = _.cond {
local LspInstall = a.scope(function(servers)
local packages_to_install = parse_packages_to_install(servers)
- require("mason.api.command").MasonInstall(_.map(function(target)
- if target.version then
- return ("%s@%s"):format(target.package, target.version)
- else
- return target.package
- end
- end, packages_to_install))
- local ui = require "mason.ui"
- ui.set_view "LSP"
+ if #packages_to_install > 0 then
+ require("mason.api.command").MasonInstall(_.map(function(target)
+ if target.version then
+ return ("%s@%s"):format(target.package, target.version)
+ else
+ return target.package
+ end
+ end, packages_to_install))
+ local ui = require "mason.ui"
+ ui.set_view "LSP"
+ end
end)
vim.api.nvim_create_user_command("LspInstall", function(opts)
diff --git a/scripts/lua/mason-scripts/mason-lspconfig/generate.lua b/scripts/lua/mason-scripts/mason-lspconfig/generate.lua
index d533287..283efec 100644
--- a/scripts/lua/mason-scripts/mason-lspconfig/generate.lua
+++ b/scripts/lua/mason-scripts/mason-lspconfig/generate.lua
@@ -11,6 +11,9 @@ local script_utils = require "mason-scripts.utils"
local DOCS_DIR = path.concat { vim.loop.cwd(), "doc" }
local MASON_LSPCONFIG_DIR = path.concat { vim.loop.cwd(), "lua", "mason-lspconfig" }
+require("mason").setup()
+require("mason-registry").refresh()
+
---@async
local function create_lspconfig_filetype_map()
local filetype_map = {}
diff --git a/tests/helpers/lua/dummy2_package.lua b/tests/helpers/lua/dummy-registry/dummy2_package.lua
index 424e47d..424e47d 100644
--- a/tests/helpers/lua/dummy2_package.lua
+++ b/tests/helpers/lua/dummy-registry/dummy2_package.lua
diff --git a/tests/helpers/lua/dummy_package.lua b/tests/helpers/lua/dummy-registry/dummy_package.lua
index b38d1cd..b38d1cd 100644
--- a/tests/helpers/lua/dummy_package.lua
+++ b/tests/helpers/lua/dummy-registry/dummy_package.lua
diff --git a/tests/helpers/lua/fail_dummy.lua b/tests/helpers/lua/dummy-registry/fail_dummy.lua
index 3df551e..3df551e 100644
--- a/tests/helpers/lua/fail_dummy.lua
+++ b/tests/helpers/lua/dummy-registry/fail_dummy.lua
diff --git a/tests/helpers/lua/dummy-registry/index.lua b/tests/helpers/lua/dummy-registry/index.lua
new file mode 100644
index 0000000..fa843d9
--- /dev/null
+++ b/tests/helpers/lua/dummy-registry/index.lua
@@ -0,0 +1,5 @@
+return {
+ ["dummy"] = "dummy-registry.dummy_package",
+ ["dummy2"] = "dummy-registry.dummy2_package",
+ ["fail_dummy"] = "dummy-registry.fail_dummy",
+}
diff --git a/tests/mason-lspconfig/api/api_spec.lua b/tests/mason-lspconfig/api/api_spec.lua
index 4518595..b842941 100644
--- a/tests/mason-lspconfig/api/api_spec.lua
+++ b/tests/mason-lspconfig/api/api_spec.lua
@@ -3,30 +3,39 @@ local mason_lspconfig = require "mason-lspconfig"
describe("mason-lspconfig API", function()
it("should return all available servers", function()
- local server_mappings = require "mason-lspconfig.mappings.server"
local available_servers = mason_lspconfig.get_available_servers()
- assert.equals(#vim.tbl_keys(server_mappings.package_to_lspconfig), #available_servers)
+ assert.equals(vim.tbl_count(require "dummy-registry.index"), #available_servers)
end)
it("should return all available servers for given filetype", function()
+ require("mason-lspconfig.mappings.filetype").dummylang = {
+ "dummylsp",
+ "dummy2lsp",
+ }
assert.same(
- { "terraformls", "tflint" },
+ { "dummy2lsp", "dummylsp" },
_.sort_by(
_.identity,
mason_lspconfig.get_available_servers {
- filetype = "terraform",
+ filetype = "dummylang",
}
)
)
end)
it("should return all available servers for given filetypes", function()
+ require("mason-lspconfig.mappings.filetype").dummylang = {
+ "dummylsp",
+ }
+ require("mason-lspconfig.mappings.filetype").madeuplang = {
+ "dummy2lsp",
+ }
assert.same(
- { "lemminx", "taplo" },
+ { "dummy2lsp", "dummylsp" },
_.sort_by(
_.identity,
mason_lspconfig.get_available_servers {
- filetype = { "xml", "xsd", "xsl", "toml" },
+ filetype = { "dummylang", "madeuplang" },
}
)
)
diff --git a/tests/mason-lspconfig/setup_spec.lua b/tests/mason-lspconfig/setup_spec.lua
index e1fab26..399038c 100644
--- a/tests/mason-lspconfig/setup_spec.lua
+++ b/tests/mason-lspconfig/setup_spec.lua
@@ -7,16 +7,9 @@ local filetype_mappings = require "mason-lspconfig.mappings.filetype"
local mason_lspconfig = require "mason-lspconfig"
local platform = require "mason-core.platform"
local registry = require "mason-registry"
-local server_mappings = require "mason-lspconfig.mappings.server"
describe("mason-lspconfig setup", function()
before_each(function()
- server_mappings.lspconfig_to_package["dummylsp"] = "dummy"
- server_mappings.lspconfig_to_package["dummy2lsp"] = "dummy2"
- server_mappings.lspconfig_to_package["fail_dummylsp"] = "fail_dummy"
- server_mappings.package_to_lspconfig["dummy"] = "dummylsp"
- server_mappings.package_to_lspconfig["dummy2"] = "dummy2lsp"
- server_mappings.package_to_lspconfig["fail_dummy"] = "fail_dummylsp"
filetype_mappings.dummylang = { "dummylsp", "dummy2lsp" }
require("lspconfig.util").on_setup = nil
local settings = require "mason-lspconfig.settings"
@@ -196,7 +189,6 @@ describe("mason-lspconfig setup", function()
it("should apply mason-lspconfig server configs", function()
stub(registry, "is_installed")
registry.is_installed.on_call_with("dummy").returns(true)
- server_mappings.lspconfig_to_package["dummylsp"] = "dummy"
package.loaded["mason-lspconfig.server_configurations.dummylsp"] = function()
return { cmd = { "mason-cmd" } }
end
@@ -212,7 +204,6 @@ 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)
- server_mappings.lspconfig_to_package["dummylsp"] = "dummy"
package.loaded["mason-lspconfig.server_configurations.dummylsp"] = function()
return { cmd = { "mason-cmd" } }
end
@@ -229,10 +220,6 @@ end)
describe("mason-lspconfig setup_handlers", function()
before_each(function()
- server_mappings.lspconfig_to_package["dummylsp"] = "dummy"
- server_mappings.lspconfig_to_package["dummy2lsp"] = "dummy2"
- server_mappings.package_to_lspconfig["dummy"] = "dummylsp"
- server_mappings.package_to_lspconfig["dummy2"] = "dummy2lsp"
filetype_mappings.dummylang = { "dummylsp", "dummy2lsp" }
require("lspconfig.util").on_setup = nil
local settings = require "mason-lspconfig.settings"
diff --git a/tests/minimal_init.vim b/tests/minimal_init.vim
index 72d8a95..eb0845a 100644
--- a/tests/minimal_init.vim
+++ b/tests/minimal_init.vim
@@ -16,18 +16,24 @@ lua require("luassertx")
lua require("test_helpers")
lua <<EOF
-local index = require "mason-registry.index"
-index["dummy"] = "dummy_package"
-index["dummy2"] = "dummy2_package"
-index["fail_dummy"] = "fail_dummy"
-
local configs = require 'lspconfig.configs'
configs.dummylsp = { default_config = { cmd = { "dummylsp" } } }
configs.dummy2lsp = { default_config = { cmd = { "dummy2lsp"} } }
configs.fail_dummylsp = { default_config = { cmd = { "fail_dummylsp"} } }
+local server_mappings = require "mason-lspconfig.mappings.server"
+server_mappings.lspconfig_to_package["dummylsp"] = "dummy"
+server_mappings.lspconfig_to_package["dummy2lsp"] = "dummy2"
+server_mappings.lspconfig_to_package["fail_dummylsp"] = "fail_dummy"
+server_mappings.package_to_lspconfig["dummy"] = "dummylsp"
+server_mappings.package_to_lspconfig["dummy2"] = "dummy2lsp"
+server_mappings.package_to_lspconfig["fail_dummy"] = "fail_dummylsp"
+
require("mason").setup {
install_root_dir = vim.env.INSTALL_ROOT_DIR,
+ registries = {
+ "lua:dummy-registry.index"
+ }
}
EOF