diff options
| author | cryxtalix <fgx8p9t@protonmail.com> | 2026-05-09 00:15:07 +0800 |
|---|---|---|
| committer | cryxtalix <fgx8p9t@protonmail.com> | 2026-05-09 00:15:07 +0800 |
| commit | 8fbf7c2a9ce92b97941bff2c8b52c1d52d9834d2 (patch) | |
| tree | aa4cb6f169758fb9abdcf5b378a1a8ccc6902344 /.config/nvim_old/lua/plugins/lsp.lua | |
| parent | 1302056eddd9a69ea2d0ffdf8bedd8582fb5a907 (diff) | |
Update
Diffstat (limited to '.config/nvim_old/lua/plugins/lsp.lua')
| -rw-r--r-- | .config/nvim_old/lua/plugins/lsp.lua | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/.config/nvim_old/lua/plugins/lsp.lua b/.config/nvim_old/lua/plugins/lsp.lua new file mode 100644 index 0000000..0314c42 --- /dev/null +++ b/.config/nvim_old/lua/plugins/lsp.lua @@ -0,0 +1,62 @@ +-- Language server for specified languages +-- Hover with 'K' +-- Goto definition with :Goto +-- Open code action with :Codeact + +local servers = { + "lua_ls", "bashls", "clangd", "marksman", "pyright", "lemminx", +} + +return { + { + "williamboman/mason.nvim", + config = function() + require("mason").setup() + end + }, + + { + "williamboman/mason-lspconfig.nvim", + config = function() + require("mason-lspconfig").setup { + ensure_installed = servers, + automatic_installation = true, + } + end + }, + + { + "neovim/nvim-lspconfig", + config = function() + -- Advertise autocompletion to lsp + local capabilities = require('cmp_nvim_lsp').default_capabilities() + for _, server in ipairs(servers) do + vim.lsp.config(server, { + capabilities = capabilities, + }) + end + + -- Key mapping + -- Hover for definition + vim.keymap.set('n', 'K', vim.lsp.buf.hover, {}) + + -- Move to definition + vim.api.nvim_create_user_command( + "Goto", + function() + vim.lsp.buf.definition() + end, + {} + ) + + -- Code action + vim.api.nvim_create_user_command( + "Codeact", + function() + vim.lsp.buf.code_action() + end, + {} + ) + end + } +} |
