diff options
author | kylo252 <[email protected]> | 2021-10-10 21:07:41 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2021-10-10 21:07:41 +0200 |
commit | 52b74557415eb757ad4b7481b0aec8a3f98dd58d (patch) | |
tree | 9a05ec71a46c99fbdf8df0043be652b528c7c04e /lua/lsp/templates.lua | |
parent | e2c85df440564a62fd804555747b1652a6844a5e (diff) |
feat: add an independent lvim namespace (#1699)
Diffstat (limited to 'lua/lsp/templates.lua')
-rw-r--r-- | lua/lsp/templates.lua | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/lua/lsp/templates.lua b/lua/lsp/templates.lua deleted file mode 100644 index fbbc37f6..00000000 --- a/lua/lsp/templates.lua +++ /dev/null @@ -1,98 +0,0 @@ -local M = {} - -local Log = require "core.log" -local utils = require "utils" -local get_supported_filetypes = require("lsp.utils").get_supported_filetypes - -local ftplugin_dir = lvim.lsp.templates_dir - -local join_paths = _G.join_paths - -function M.remove_template_files() - -- remove any outdated files - for _, file in ipairs(vim.fn.glob(ftplugin_dir .. "/*.lua", 1, 1)) do - vim.fn.delete(file) - end -end - ----Checks if a server is ignored by default because of a conflict ----Only TSServer is enabled by default for the javascript-family ----@param server_name string -function M.is_ignored(server_name, filetypes) - --TODO: this is easy to be made configurable once stable - filetypes = filetypes or get_supported_filetypes(server_name) - - if vim.tbl_contains(filetypes, "javascript") then - if server_name == "tsserver" then - return false - else - return true - end - end - - local blacklist = { - "jedi_language_server", - "pylsp", - "sqlls", - "sqls", - "angularls", - "ansiblels", - } - return vim.tbl_contains(blacklist, server_name) -end - ----Generates an ftplugin file based on the server_name in the selected directory ----@param server_name string name of a valid language server, e.g. pyright, gopls, tsserver, etc. ----@param dir string the full path to the desired directory -function M.generate_ftplugin(server_name, dir) - -- we need to go through lspconfig to get the corresponding filetypes currently - local filetypes = get_supported_filetypes(server_name) or {} - if not filetypes then - return - end - - if M.is_ignored(server_name, filetypes) then - return - end - - -- print("got associated filetypes: " .. vim.inspect(filetypes)) - - for _, filetype in ipairs(filetypes) do - local filename = join_paths(dir, filetype .. ".lua") - local setup_cmd = string.format([[require("lsp.manager").setup(%q)]], server_name) - -- print("using setup_cmd: " .. setup_cmd) - -- overwrite the file completely - utils.write_file(filename, setup_cmd .. "\n", "a") - end -end - ----Generates ftplugin files based on a list of server_names ----The files are generated to a runtimepath: "$LUNARVIM_RUNTIME_DIR/site/after/ftplugin/template.lua" ----@param servers_names table list of servers to be enabled. Will add all by default -function M.generate_templates(servers_names) - servers_names = servers_names or {} - - Log:debug "Templates installation in progress" - - M.remove_template_files() - - if vim.tbl_isempty(servers_names) then - local available_servers = require("nvim-lsp-installer.servers").get_available_servers() - - for _, server in pairs(available_servers) do - table.insert(servers_names, server.name) - end - end - - -- create the directory if it didn't exist - if not utils.is_directory(lvim.lsp.templates_dir) then - vim.fn.mkdir(ftplugin_dir, "p") - end - - for _, server in ipairs(servers_names) do - M.generate_ftplugin(server, ftplugin_dir) - end - Log:debug "Templates installation is complete" -end - -return M |