aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/mason-lspconfig/api/command.lua17
-rw-r--r--lua/mason-lspconfig/init.lua1
-rw-r--r--lua/mason-lspconfig/mappings.lua21
3 files changed, 10 insertions, 29 deletions
diff --git a/lua/mason-lspconfig/api/command.lua b/lua/mason-lspconfig/api/command.lua
index 70486e2..c7060f9 100644
--- a/lua/mason-lspconfig/api/command.lua
+++ b/lua/mason-lspconfig/api/command.lua
@@ -10,7 +10,7 @@ local function parse_packages_from_user_args(user_args)
local Package = require "mason-core.package"
local mappings = require "mason-lspconfig.mappings"
local server_mapping = mappings.get_mason_map()
- local language_map = mappings.get_language_map()
+ local filetype_map = mappings.get_filetype_map()
return _.filter_map(function(server_specifier)
local server_name, version = Package.Parse(server_specifier)
@@ -19,15 +19,18 @@ local function parse_packages_from_user_args(user_args)
.of_nilable(server_mapping.lspconfig_to_package[server_name])
-- 2. if not, check if it's a language specifier (e.g., "typescript" or "java")
:or_(function()
- return Optional.of_nilable(language_map[server_name])
+ return Optional
+ .of_nilable(filetype_map[server_name])
:if_not_present(function()
notify(("Could not find LSP server %q."):format(server_name), vim.log.levels.ERROR)
end)
+ -- Remove server configurations that aren't available for installation via Mason
+ :map(
+ _.filter_map(function(server_name)
+ return Optional.of_nilable(server_mapping.lspconfig_to_package[server_name])
+ end)
+ )
:map(function(package_names)
- package_names = _.filter(function(package_name)
- return server_mapping.package_to_lspconfig[package_name] ~= nil
- end, package_names)
-
if #package_names == 0 then
return nil
end
@@ -135,7 +138,7 @@ _G.mason_lspconfig_completion = {
local available_servers = require("mason-lspconfig").get_available_servers()
local mappings = require "mason-lspconfig.mappings"
local sort_deduped = _.compose(_.sort_by(_.identity), _.uniq_by(_.identity))
- local completions = sort_deduped(_.concat(_.keys(mappings.get_language_map()), available_servers))
+ local completions = sort_deduped(_.concat(_.keys(mappings.get_filetype_map()), available_servers))
return table.concat(completions, "\n")
end,
installed_server_completion = function()
diff --git a/lua/mason-lspconfig/init.lua b/lua/mason-lspconfig/init.lua
index 1267df7..ff37463 100644
--- a/lua/mason-lspconfig/init.lua
+++ b/lua/mason-lspconfig/init.lua
@@ -1,5 +1,4 @@
local _ = require "mason-core.functional"
-local log = require "mason-core.log"
local platform = require "mason-core.platform"
local settings = require "mason-lspconfig.settings"
diff --git a/lua/mason-lspconfig/mappings.lua b/lua/mason-lspconfig/mappings.lua
index e437b8b..98cc8c4 100644
--- a/lua/mason-lspconfig/mappings.lua
+++ b/lua/mason-lspconfig/mappings.lua
@@ -3,26 +3,6 @@ local registry = require "mason-registry"
local M = {}
----Returns a map of language (lowercased) to one or more corresponding Mason package names.
----@return table<string, string[]>
-function M.get_language_map()
- if not registry.get_all_package_specs then
- return {}
- end
- ---@type table<string, string[]>
- local languages = {}
- for _, pkg_spec in ipairs(registry.get_all_package_specs()) do
- for _, language in ipairs(pkg_spec.languages) do
- language = language:lower()
- if not languages[language] then
- languages[language] = {}
- end
- table.insert(languages[language], pkg_spec.name)
- end
- end
- return languages
-end
-
function M.get_mason_map()
if not registry.get_all_package_specs then
return {
@@ -69,7 +49,6 @@ function M.get_all()
local mason_map = M.get_mason_map()
return {
filetypes = M.get_filetype_map(),
- languages = M.get_language_map(),
lspconfig_to_package = mason_map.lspconfig_to_package,
package_to_lspconfig = mason_map.package_to_lspconfig,
}