summaryrefslogtreecommitdiff
path: root/start/lspconfig-0.1.8/lua/lspconfig.lua
diff options
context:
space:
mode:
Diffstat (limited to 'start/lspconfig-0.1.8/lua/lspconfig.lua')
-rw-r--r--start/lspconfig-0.1.8/lua/lspconfig.lua63
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)