diff options
| author | William Boman <william@redwill.se> | 2023-03-24 11:57:07 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-24 10:57:07 +0000 |
| commit | d119ea67b2c8e1be64811785441761dfbc6e21f5 (patch) | |
| tree | f93dd2d4fc5e15a22f8e65d46002fd6c7c47320a | |
| parent | fix: don't auto install servers when headless (#175) (diff) | |
| download | mason-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.lua | 20 | ||||
| -rw-r--r-- | scripts/lua/mason-scripts/mason-lspconfig/generate.lua | 3 | ||||
| -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.lua | 5 | ||||
| -rw-r--r-- | tests/mason-lspconfig/api/api_spec.lua | 21 | ||||
| -rw-r--r-- | tests/mason-lspconfig/setup_spec.lua | 13 | ||||
| -rw-r--r-- | tests/minimal_init.vim | 16 |
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 |
