summaryrefslogtreecommitdiffstats
path: root/after/plugin/lsp.lua
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--after/plugin/lsp.lua92
1 files changed, 0 insertions, 92 deletions
diff --git a/after/plugin/lsp.lua b/after/plugin/lsp.lua
deleted file mode 100644
index c74eaab..0000000
--- a/after/plugin/lsp.lua
+++ /dev/null
@@ -1,92 +0,0 @@
-local status_ok, lspconfig = pcall(require, "lspconfig")
-if not status_ok then
- return
-end
-
--- configure lsp when attached
-local function lsp_attach(client, bufnr)
- -- helper functions
- local function set_lsp_sign(name, text)
- vim.fn.sign_define(name, { text = text, texthl = name })
- end
-
- local function map(m, lhs, rhs)
- local opts = { remap = false, silent = true, buffer = bufnr }
- vim.keymap.set(m, lhs, rhs, opts)
- end
- set_lsp_sign("DiagnosticSignError", "x")
- set_lsp_sign("DiagnosticSignWarn" , "!")
- set_lsp_sign("DiagnosticSignInfo" , "i")
- set_lsp_sign("DiagnosticSignHint" , "h")
-
- -- LSP actions
- map('n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>')
- map('n', 'gD', '<cmd>lua vim.lsp.buf.definition()<cr>')
- -- map('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<cr>')
- map('n', 'gI', '<cmd>lua vim.lsp.buf.implementation()<cr>')
- map('n', 'gY', '<cmd>lua vim.lsp.buf.type_definition()<cr>')
- map('n', 'gR', '<cmd>lua vim.lsp.buf.references()<cr>')
- map('n', '<S-Tab>', '<cmd>lua vim.lsp.buf.signature_help()<cr>')
- map('n', '<leader>lr', '<cmd>lua vim.lsp.buf.rename()<cr>')
- map('n', '<F2>', '<cmd>lua vim.lsp.buf.rename()<cr>')
- map('n', '<F4>', '<cmd>lua vim.lsp.buf.code_action()<cr>')
-
- -- Diagnostics
- map('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<cr>')
- map('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<cr>')
-
- vim.api.nvim_buf_create_user_command(bufnr, 'LspFormat', function()
- vim.lsp.buf.format()
- end, {desc = 'Format buffer with language server'})
- vim.api.nvim_buf_create_user_command('LspWorkspaceAdd', function()
- vim.lsp.buf.add_workspace_folder()
- end, { desc = 'Add folder to workspace' })
- vim.api.nvim_buf_create_user_command('LspWorkspaceList', function()
- vim.notify(vim.inspect(vim.lsp.buf.list_workspace_folders()))
- end, { desc = 'List workspace folders' })
- vim.api.nvim_buf_create_user_command('LspWorkspaceRemove', function()
- vim.lsp.buf.remove_workspace_folder()
- end, { desc = 'Remove folder from workspace' })
-end
-
-vim.diagnostic.config({
- virtual_text = false,
- signs = true,
- update_in_insert = false,
- underline = true,
- severity_sort = true,
-})
-
-vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(
- vim.lsp.handlers.hover, {
- border = 'solid',
- })
-
-vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(
- vim.lsp.handlers.signature_help, {
- border = 'solid',
- })
-
--- get servers and attach to them
-local status_ok1, mason = pcall(require, "mason")
-if not status_ok1 then
- return
-end
-mason.setup {}
-
-local status_ok2, masonlspconfig = pcall(require, "mason-lspconfig")
-if not status_ok2 then
- return
-end
-masonlspconfig.setup {}
-masonlspconfig.setup_handlers {
- function (server_name)
- lspconfig[server_name].setup { on_attach = lsp_attach }
- end,
-
- -- specific servers can be setup as follows:
- -- ["rust_analyzer"] = function ()
- -- require("rust-tools").setup {}
- -- end
- -- check out :help mason-lspconfig for more info
-}