* remove doc/tags * use cmd instead of alias for clarity * use alias and proper checking of existing command installation * mason pkg name override * we still want to enforce local by default * remove unused on_attach since we have event to control it * fallback to using existing docker language servers * add yaml language server + remove table setup logging * write comment what symbol we expect * more notes * use mason-lspconfig for getting lsp->mason map and better utilities * use very lazy
44 lines
801 B
Lua
44 lines
801 B
Lua
local PROFILES = {
|
|
['HOME'] = {
|
|
'python',
|
|
'nix',
|
|
'go',
|
|
'rust',
|
|
'markdown',
|
|
'bash',
|
|
'docker',
|
|
'lua',
|
|
'yaml',
|
|
},
|
|
['DEFAULT'] = {
|
|
'python',
|
|
'markdown',
|
|
'bash',
|
|
'docker',
|
|
'lua',
|
|
'yaml',
|
|
},
|
|
}
|
|
|
|
local Profile = {}
|
|
Profile.Languages = function(profile)
|
|
if profile == nil then
|
|
profile = os.getenv 'NVIM_PROFILE' or 'DEFAULT'
|
|
end
|
|
return PROFILES[profile]
|
|
end
|
|
|
|
Profile.LanguageServers = function(profile)
|
|
local languages = Profile.Languages(profile)
|
|
local language_config = require 'utils.languages'
|
|
|
|
local result = {} -- <nvim_ls_name> -> {<configuration>}
|
|
for _, lang in ipairs(languages) do
|
|
for lsp, config in pairs(language_config[lang]) do
|
|
result[lsp] = config
|
|
end
|
|
end
|
|
return result
|
|
end
|
|
|
|
return Profile
|