summaryrefslogtreecommitdiff
path: root/lua/plugins/lsp.lua
diff options
context:
space:
mode:
authorDavid Luevano Alvarado <david@luevano.xyz>2023-12-24 17:07:21 -0600
committerDavid Luevano Alvarado <david@luevano.xyz>2023-12-24 17:07:21 -0600
commit372665cb43bb7cf82b87cb7ac23b79bed2b853bc (patch)
tree52b4992d53902c55727279b47291060a1d3569cf /lua/plugins/lsp.lua
parentc933fc6259268c84afdd2ed5ddae656d26868dc9 (diff)
refactor: rename lsp to lspconfig
Diffstat (limited to 'lua/plugins/lsp.lua')
-rw-r--r--lua/plugins/lsp.lua84
1 files changed, 0 insertions, 84 deletions
diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua
deleted file mode 100644
index 7b806e6..0000000
--- a/lua/plugins/lsp.lua
+++ /dev/null
@@ -1,84 +0,0 @@
-local servers = {
- gopls = {},
- -- jedi_language_server = {},
- pyright = {},
- lua_ls = {
- Lua = {
- workspace = { checkThirdParty = false },
- telemetry = { enable = false },
- },
- }
-}
-
-return {
- 'neovim/nvim-lspconfig',
- dependencies = {
- 'hrsh7th/cmp-nvim-lsp',
- -- Required for the keybinds
- 'nvim-telescope/telescope.nvim',
- { 'williamboman/mason.nvim', config = true },
- 'williamboman/mason-lspconfig.nvim',
- { 'j-hui/fidget.nvim', tag = "legacy", opts = {} },
- { 'folke/neodev.nvim', opts = {} },
- },
- config = function()
- -- nvim-cmp supports additional completion capabilities, so broadcast that to servers
- local capabilities = vim.lsp.protocol.make_client_capabilities()
- capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
-
- local lspconfig = require('lspconfig')
- local mason_lspconfig = require('mason-lspconfig')
- mason_lspconfig.setup({
- ensure_installed = vim.tbl_keys(servers)
- })
-
- local on_attach = function(_, bufnr)
- local nmap = function(keys, func, desc)
- if desc then
- desc = 'LSP: ' .. desc
- end
- vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc })
- end
-
- nmap('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame')
- nmap('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction')
-
- nmap('gd', vim.lsp.buf.definition, '[G]oto [D]efinition')
- nmap('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')
- nmap('gI', vim.lsp.buf.implementation, '[G]oto [I]mplementation')
- nmap('<leader>D', vim.lsp.buf.type_definition, 'Type [D]efinition')
- nmap('<leader>ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols')
- nmap('<leader>ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols')
-
- -- See `:help K` for why this keymap
- nmap('<leader>k', vim.lsp.buf.hover, 'Hover Documentation')
- nmap('<leader>K', vim.lsp.buf.signature_help, 'Signature Documentation')
-
- -- Lesser used LSP functionality
- nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
- nmap('<leader>wa', vim.lsp.buf.add_workspace_folder, '[W]orkspace [A]dd Folder')
- nmap('<leader>wr', vim.lsp.buf.remove_workspace_folder, '[W]orkspace [R]emove Folder')
- nmap('<leader>wl', function()
- print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
- end, '[W]orkspace [L]ist Folders')
-
- -- Create a command `:Format` local to the LSP buffer
- vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_)
- vim.lsp.buf.format()
- end, { desc = 'Format current buffer with LSP' })
- end
-
- mason_lspconfig.setup_handlers({
- function(server_name)
- lspconfig[server_name].setup {
- capabilities = capabilities,
- on_attach = on_attach,
- settings = servers[server_name],
- }
- end,
- })
-
- -- At the end, add GDscript support, which is only supported by lspconfig itself
- lspconfig.gdscript.setup({capabilities = capabilities})
- end,
-}