diff options
Diffstat (limited to 'neovim')
-rw-r--r-- | neovim/.config/nvim/lua/plugins/nvim_lspconfig.lua | 201 |
1 files changed, 101 insertions, 100 deletions
diff --git a/neovim/.config/nvim/lua/plugins/nvim_lspconfig.lua b/neovim/.config/nvim/lua/plugins/nvim_lspconfig.lua index 3d02f49..65420db 100644 --- a/neovim/.config/nvim/lua/plugins/nvim_lspconfig.lua +++ b/neovim/.config/nvim/lua/plugins/nvim_lspconfig.lua @@ -1,111 +1,112 @@ return { - { - 'neovim/nvim-lspconfig', - lazy = false, - priority = 800, - config = function() - local nvim_lsp = require('lspconfig') - local capabilities = require('cmp_nvim_lsp').default_capabilities() - -- Use a loop to conveniently call 'setup' on multiple servers and - -- map buffer local keybindings when the language server attaches - local servers = { "bashls", "clangd", "cssls", "gopls", "html", "jsonls", "rust_analyzer", "yamlls" } - for _, lsp in ipairs(servers) do - nvim_lsp[lsp].setup { - capabilities = capabilities, - flags = { - debounce_text_changes = 150, - } - } - end + { + 'neovim/nvim-lspconfig', + lazy = false, + priority = 800, + config = function() + local nvim_lsp = require('lspconfig') + local capabilities = require('cmp_nvim_lsp').default_capabilities() + -- Use a loop to conveniently call 'setup' on multiple servers and + -- map buffer local keybindings when the language server attaches + local servers = { "bashls", "clangd", "cssls", "dockerls", "gopls", "html", "htmx", "jsonls", "marksman", + "rust_analyzer", "yamlls" } + for _, lsp in ipairs(servers) do + nvim_lsp[lsp].setup { + capabilities = capabilities, + flags = { + debounce_text_changes = 150, + } + } + end - require 'lspconfig'.lua_ls.setup { - on_init = function(client) - local path = client.workspace_folders[1].name - if vim.loop.fs_stat(path .. '/.luarc.json') or vim.loop.fs_stat(path .. '/.luarc.jsonc') then - return - end + require 'lspconfig'.lua_ls.setup { + on_init = function(client) + local path = client.workspace_folders[1].name + if vim.loop.fs_stat(path .. '/.luarc.json') or vim.loop.fs_stat(path .. '/.luarc.jsonc') then + return + end - client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, { - runtime = { - -- Tell the language server which version of Lua you're using - -- (most likely LuaJIT in the case of Neovim) - version = 'LuaJIT' - }, - -- Make the server aware of Neovim runtime files - workspace = { - checkThirdParty = false, - library = { - vim.env.VIMRUNTIME - -- Depending on the usage, you might want to add additional paths here. - -- "${3rd}/luv/library" - -- "${3rd}/busted/library", - } - -- or pull in all of 'runtimepath'. NOTE: this is a lot slower - -- library = vim.api.nvim_get_runtime_file("", true) - } - }) - end, - settings = { - Lua = { - format = { - enable = true, - defaultConfig = { - indent_style = "space", - indent_size = "2", - } - }, - }, - - }, - capabilities = capabilities, + client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, { + runtime = { + -- Tell the language server which version of Lua you're using + -- (most likely LuaJIT in the case of Neovim) + version = 'LuaJIT' + }, + -- Make the server aware of Neovim runtime files + workspace = { + checkThirdParty = false, + library = { + vim.env.VIMRUNTIME + -- Depending on the usage, you might want to add additional paths here. + -- "${3rd}/luv/library" + -- "${3rd}/busted/library", + } + -- or pull in all of 'runtimepath'. NOTE: this is a lot slower + -- library = vim.api.nvim_get_runtime_file("", true) } + }) + end, + settings = { + Lua = { + format = { + enable = true, + defaultConfig = { + indent_style = "space", + indent_size = "2", + } + }, + }, - require 'lspconfig'.tsserver.setup { - filetypes = { 'typescript', 'typescriptreact', 'typescript.tsx' }, - capabilities = capabilities, - flags = { - debounce_text_changes = 150, - }, - } + }, + capabilities = capabilities, + } + + require 'lspconfig'.tsserver.setup { + filetypes = { 'typescript', 'typescriptreact', 'typescript.tsx' }, + capabilities = capabilities, + flags = { + debounce_text_changes = 150, + }, + } - require 'lspconfig'.pylsp.setup { - settings = { - pylsp = { - plugins = { - black = { - enabled = false, - }, - ruff = { - enabled = true, - formatEnabled = true, - extendSelect = { 'I' }, - format = { 'I' }, - } - } - } - }, - capabilities = capabilities, - flags = { - debounce_text_changes = 150, - }, + require 'lspconfig'.pylsp.setup { + settings = { + pylsp = { + plugins = { + black = { + enabled = false, + }, + ruff = { + enabled = true, + formatEnabled = true, + extendSelect = { 'I' }, + format = { 'I' }, + } } + } + }, + capabilities = capabilities, + flags = { + debounce_text_changes = 150, + }, + } - -- Use LspAttach autocommand to only map the following keys - -- after the language server attaches to the current buffer - vim.api.nvim_create_autocmd('LspAttach', { - group = vim.api.nvim_create_augroup('UserLspConfig', {}), - callback = function(ev) - -- Enable completion triggered by <c-x><c-o> - vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' + -- Use LspAttach autocommand to only map the following keys + -- after the language server attaches to the current buffer + vim.api.nvim_create_autocmd('LspAttach', { + group = vim.api.nvim_create_augroup('UserLspConfig', {}), + callback = function(ev) + -- Enable completion triggered by <c-x><c-o> + vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' - local opts = { buffer = ev.buf } - vim.keymap.set('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', { noremap = true }) - vim.keymap.set('v', '<leader>f', vim.lsp.buf.format, { noremap = true, silent = true }) - vim.keymap.set('n', '<leader>f', function() - vim.lsp.buf.format { async = true } - end, opts) - end, - }) + local opts = { buffer = ev.buf } + vim.keymap.set('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', { noremap = true }) + vim.keymap.set('v', '<leader>f', vim.lsp.buf.format, { noremap = true, silent = true }) + vim.keymap.set('n', '<leader>f', function() + vim.lsp.buf.format { async = true } + end, opts) end, - }, + }) + end, + }, } |