diff options
| author | Ariel D'Alessandro <dalessandro.ariel@gmail.com> | 2023-01-08 09:58:56 +0100 |
|---|---|---|
| committer | Ariel D'Alessandro <dalessandro.ariel@gmail.com> | 2023-01-08 09:58:56 +0100 |
| commit | f7bcac5ee5db56081981bb946a66d3fc34807988 (patch) | |
| tree | 2cfc8d60054508d5297cd392d6df1e540057bcc7 /after/plugin/lsp.lua | |
| parent | fb9196e7766f53115009c081f0b4308ca6c081b4 (diff) | |
| download | nvim-conf-f7bcac5ee5db56081981bb946a66d3fc34807988.tar.gz nvim-conf-f7bcac5ee5db56081981bb946a66d3fc34807988.zip | |
feat: refactor lsp & cmp to lua folder from after
Diffstat (limited to 'after/plugin/lsp.lua')
| -rw-r--r-- | after/plugin/lsp.lua | 162 |
1 files changed, 0 insertions, 162 deletions
diff --git a/after/plugin/lsp.lua b/after/plugin/lsp.lua deleted file mode 100644 index e2f5652..0000000 --- a/after/plugin/lsp.lua +++ /dev/null @@ -1,162 +0,0 @@ -local telescope_mapper = require("alpha.telescope.mappings") -local lspconfig = require("lspconfig") - -local lsp_formatting = function(bufnr, allowed_clientes) - vim.lsp.buf.format({ - filter = function(client) - for _, value in pairs(allowed_clientes) do - if client.name == value then - return true - end - end - - return false - end, - bufnr = bufnr, - }) -end - --- if you want to set up formatting on save, you can use this as a callback -local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) - -local format_on_save = function(allowed_clients) - return function(client, bufnr) - if client.supports_method("textDocument/formatting") then - vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) - vim.api.nvim_create_autocmd("BufWritePre", { - group = augroup, - buffer = bufnr, - callback = function() - lsp_formatting(bufnr, allowed_clients) - end, - }) - end - end -end - -local filetype_attach = setmetatable({ - go = format_on_save({ "gopls" }), - -- php = format_on_save, - -- lua = format_on_save, - - gdscript = function(_) end, -}, { - __index = function() - return function() end - end, -}) - --- Since I use null os this allows to have the format and actions --- in all buffers not just configured servers -vim.keymap.set({ "n", "v" }, "<leader>vca", vim.lsp.buf.code_action, {}) - -vim.keymap.set("n", "<leader>vf", function() - return vim.lsp.buf.format({ async = true }) -end, {}) - - -local function on_attach(client, bufnr) - local filetype = vim.api.nvim_buf_get_option(0, "filetype") - -- keymaps for lsp - vim.keymap.set("n", "K", vim.lsp.buf.hover, { buffer = 0 }) - vim.keymap.set("n", "<leader>vrn", vim.lsp.buf.rename, { buffer = 0 }) - vim.keymap.set("i", "<c-h>", vim.lsp.buf.signature_help, { buffer = 0 }) - vim.keymap.set("n", "<leader>vo", ":LspRestart<cr>", { noremap = true }) - - telescope_mapper("gr", "lsp_references", nil, true) - telescope_mapper("<leader>pv", "find_symbol", nil, true) - telescope_mapper("<leader>pd", "lsp_document_symbols", nil, true) - telescope_mapper("<c-]>", "lsp_definitions", nil, true) - - vim.bo.omnifunc = "v:lua.vim.lsp.omnifunc" - - -- Attach any filetype specific options to the client - filetype_attach[filetype](client, bufnr) -end - --- Actual configs -local lsp_flags = { - debounce_text_changes = 150, -} - --- Server configurations - -lspconfig["rust_analyzer"].setup({ - on_attach = on_attach, - flags = lsp_flags, - -- Server-specific settings... - settings = { - ["rust-analyzer"] = {}, - }, -}) - -lspconfig.dockerls.setup({ - on_attach = on_attach, - flags = lsp_flags, -}) - -lspconfig.phpactor.setup({ - on_attach = on_attach, - flags = lsp_flags, - filetypes = { "php", "cucumber" }, -}) - -lspconfig.jsonls.setup({ - on_attach = on_attach, - flags = lsp_flags, -}) -lspconfig.html.setup({ - on_attach = on_attach, - flags = lsp_flags, -}) - -local capabilities = vim.lsp.protocol.make_client_capabilities() -capabilities.textDocument.completion.completionItem.snippetSupport = true - -lspconfig.emmet_ls.setup({ - on_attach = on_attach, - flags = lsp_flags, - capabilities = capabilities, - filetypes = { "html", "typescriptreact", "javascriptreact", "css", "sass", "scss", "less", "blade", "vue" }, -}) - -lspconfig.gopls.setup({ - on_attach = on_attach, - flags = lsp_flags, -}) - -lspconfig.gdscript.setup({ - on_attach = on_attach, - flags = lsp_flags, -}) - -lspconfig.tsserver.setup({ - on_attach = on_attach, - flags = lsp_flags, -}) - -lspconfig.volar.setup({ - on_attach = on_attach, - flags = lsp_flags, -}) - -lspconfig["sumneko_lua"].setup({ - on_attach = on_attach, - flags = lsp_flags, - settings = { - Lua = { - runtime = { - version = "LuaJIT", - }, - diagnostics = { - globals = { "vim" }, - }, - workspace = { - library = vim.api.nvim_get_runtime_file("", true), - }, - telemetry = { - enable = false, - }, - }, - }, -}) |