aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-07-17 23:18:24 +0200
committerGitHub <noreply@github.com>2022-07-17 23:18:24 +0200
commit00e5dac9faae7b40459d7770fcd63872c65b51d3 (patch)
treea3c0f4954c483c2f932eb293e166bf6bf397c56d /lua
parentfeat(ui): bring focus to the installation section when :LspInstall (#91) (diff)
downloadmason-00e5dac9faae7b40459d7770fcd63872c65b51d3.tar
mason-00e5dac9faae7b40459d7770fcd63872c65b51d3.tar.gz
mason-00e5dac9faae7b40459d7770fcd63872c65b51d3.tar.bz2
mason-00e5dac9faae7b40459d7770fcd63872c65b51d3.tar.lz
mason-00e5dac9faae7b40459d7770fcd63872c65b51d3.tar.xz
mason-00e5dac9faae7b40459d7770fcd63872c65b51d3.tar.zst
mason-00e5dac9faae7b40459d7770fcd63872c65b51d3.zip
docs: update mason-lspconfig.setup_handlers() docs & add some tests (#94)
Diffstat (limited to 'lua')
-rw-r--r--lua/mason-lspconfig/init.lua30
1 files changed, 13 insertions, 17 deletions
diff --git a/lua/mason-lspconfig/init.lua b/lua/mason-lspconfig/init.lua
index e3c7cc93..659825ad 100644
--- a/lua/mason-lspconfig/init.lua
+++ b/lua/mason-lspconfig/init.lua
@@ -6,6 +6,7 @@ local settings = require "mason-lspconfig.settings"
local server_mapping = require "mason-lspconfig.mappings.server"
local path = require "mason-core.path"
local registry = require "mason-registry"
+local notify = require "mason-core.notify"
local M = {}
@@ -107,27 +108,22 @@ function M.setup(config)
require "mason-lspconfig.api.command"
end
----Register handlers that will be called when a server is ready to be set up (i.e. is installed).
----When this function is first called, the appropriate handler will be called for each installed server.
----When a new server is installed, the appropriate handler for that server will be called (this allows you for example to set up-new servers without restarting Neovim).
----The default handler is provided as the first value in the table argument.
----
----Example:
----```lua
---- require("mason-lspconfig").setup_handlers {
---- function (server_name)
---- -- default handler
---- require("lspconfig")[server_name].setup {}
---- end,
---- ["rust_analyzer"] = function ()
---- require("rust-tools").setup {}
---- end
---- }
----```
+---See `:h mason-lspconfig.setup_handlers()`
---@param handlers table<string, fun(server_name: string)>
function M.setup_handlers(handlers)
local default_handler = Optional.of_nilable(handlers[1])
+ _.each(function(handler)
+ if type(handler) == "string" and not server_mapping.lspconfig_to_package[handler] then
+ notify(
+ ("mason-lspconfig.setup_handlers: Received handler for unknown lspconfig server name: %s."):format(
+ handler
+ ),
+ vim.log.levels.WARN
+ )
+ end
+ end, _.keys(handlers))
+
---@param pkg_name string
local function get_server_name(pkg_name)
return Optional.of_nilable(server_mapping.package_to_lspconfig[pkg_name])