diff options
Diffstat (limited to 'start/lspconfig-0.1.8/lua/lspconfig.lua')
-rw-r--r-- | start/lspconfig-0.1.8/lua/lspconfig.lua | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/start/lspconfig-0.1.8/lua/lspconfig.lua b/start/lspconfig-0.1.8/lua/lspconfig.lua new file mode 100644 index 0000000..0823ec8 --- /dev/null +++ b/start/lspconfig-0.1.8/lua/lspconfig.lua @@ -0,0 +1,63 @@ +local configs = require 'lspconfig.configs' + +local M = { + util = require 'lspconfig.util', +} + +---@class Alias +---@field to string The new name of the server +---@field version string The version that the alias will be removed in +---@param name string +---@return Alias +local function server_alias(name) + local aliases = { + ['fennel-ls'] = { + to = 'fennel_ls', + version = '0.2.0', + }, + ruby_ls = { + to = 'ruby_lsp', + version = '0.2.0', + }, + ['starlark-rust'] = { + to = 'starlark_rust', + version = '0.2.0', + }, + sumneko_lua = { + to = 'lua_ls', + version = '0.2.0', + }, + } + + return aliases[name] +end + +local mt = {} +function mt:__index(k) + if configs[k] == nil then + local alias = server_alias(k) + if alias then + vim.deprecate(k, alias.to, alias.version, 'lspconfig', false) + k = alias.to + end + + local success, config = pcall(require, 'lspconfig.server_configurations.' .. k) + if success then + configs[k] = config + else + vim.notify( + string.format( + '[lspconfig] Cannot access configuration for %s. Ensure this server is listed in ' + .. '`server_configurations.md` or added as a custom server.', + k + ), + vim.log.levels.WARN + ) + -- Return a dummy function for compatibility with user configs + return { setup = function() end } + end + end + return configs[k] +end + +return setmetatable(M, mt) |