diff options
| author | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-10-30 19:01:51 +0100 |
|---|---|---|
| committer | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-10-30 19:01:51 +0100 |
| commit | 8350aa04f51882f11bd40a51eacd4a0c47bafc02 (patch) | |
| tree | 69e94b2e26ca370108c476eade15150c34b307d1 /config/nvim/lua | |
| parent | 1cb7eb48c4e81626d3df6736fd0e2a866674def5 (diff) | |
| parent | 2b09251962f4b80eeee1c6e11bde8d29536915e6 (diff) | |
Merge branch 'main' of git.sr.ht:~rbdr/dotfiles
Diffstat (limited to 'config/nvim/lua')
| -rw-r--r-- | config/nvim/lua/lsp.lua | 80 | ||||
| -rw-r--r-- | config/nvim/lua/plugins.lua | 6 | ||||
| -rw-r--r-- | config/nvim/lua/treesitter_config.lua | 1 |
3 files changed, 65 insertions, 22 deletions
diff --git a/config/nvim/lua/lsp.lua b/config/nvim/lua/lsp.lua index 7dfb050..6c69119 100644 --- a/config/nvim/lua/lsp.lua +++ b/config/nvim/lua/lsp.lua @@ -1,15 +1,37 @@ -local lspconfig = require('lspconfig') local coq = require('coq') -local capabilities = vim.lsp.protocol.make_client_capabilities() -capabilities.textDocument.completion.completionItem.snippetSupport = true -lspconfig.ts_ls.setup(coq.lsp_ensure_capabilities({})) -lspconfig.eslint.setup(coq.lsp_ensure_capabilities({})) -lspconfig.svelte.setup(coq.lsp_ensure_capabilities({})) -lspconfig.pyright.setup(coq.lsp_ensure_capabilities({})) -lspconfig.dartls.setup(coq.lsp_ensure_capabilities({})) -lspconfig.rust_analyzer.setup(coq.lsp_ensure_capabilities({ - -- Server-specific settings. See `:help lspconfig-setup` +vim.lsp.config('ts_ls', coq.lsp_ensure_capabilities({ + cmd = { 'typescript-language-server', '--stdio' }, + filetypes = { 'javascript', 'javascriptreact', 'typescript', 'typescriptreact' }, + root_markers = { 'package.json', 'tsconfig.json', 'jsconfig.json' } +})) +vim.lsp.enable('ts_ls') + +vim.lsp.config('eslint', coq.lsp_ensure_capabilities({ + cmd = { 'vscode-eslint-language-server', '--stdio' }, + filetypes = { 'javascript', 'javascriptreact', 'typescript', 'typescriptreact' }, + root_markers = { '.eslintrc', '.eslintrc.js', '.eslintrc.json', 'package.json' } +})) +vim.lsp.enable('eslint') + +vim.lsp.config('svelte', coq.lsp_ensure_capabilities({ + cmd = { 'svelteserver', '--stdio' }, + filetypes = { 'svelte' }, + root_markers = { 'package.json', 'svelte.config.js' } +})) +vim.lsp.enable('svelte') + +vim.lsp.config('pyright', coq.lsp_ensure_capabilities({ + cmd = { 'pyright-langserver', '--stdio' }, + filetypes = { 'python' }, + root_markers = { 'pyproject.toml', 'setup.py', 'requirements.txt' } +})) +vim.lsp.enable('pyright') + +vim.lsp.config('rust_analyzer', coq.lsp_ensure_capabilities({ + cmd = { 'rust-analyzer' }, + filetypes = { 'rust' }, + root_markers = { 'Cargo.toml', 'rust-project.json' }, settings = { ['rust-analyzer'] = { imports = { @@ -27,18 +49,39 @@ lspconfig.rust_analyzer.setup(coq.lsp_ensure_capabilities({ enable = true }, checkOnSave = { + enable = true, command = "clippy" } }, }, - on_attach = function(client, bufnr) - vim.lsp.inlay_hint.enable(true, { bufnr = bufnr }) - end })) -lspconfig.lua_ls.setup(coq.lsp_ensure_capabilities({})) +vim.lsp.enable('rust_analyzer') --- Global mappings. --- See `:help vim.diagnostic.*` for documentation on any of the below functions +vim.lsp.config('lua_ls', coq.lsp_ensure_capabilities({ + cmd = { 'lua-language-server' }, + filetypes = { 'lua' }, + root_markers = { '.luarc.json', '.luarc.jsonc', '.luacheckrc', 'stylua.toml', 'selene.toml' }, +})) +vim.lsp.enable('lua_ls') + +vim.lsp.config('gleam', coq.lsp_ensure_capabilities({ + cmd = { 'gleam', 'lsp' }, + filetypes = { 'gleam' }, + root_markers = { 'gleam.toml' }, +})) +vim.lsp.enable('gleam') + +-- Enable inlay hints for Rust when LSP attaches +vim.api.nvim_create_autocmd('LspAttach', { + callback = function(args) + local client = vim.lsp.get_client_by_id(args.data.client_id) + if client and client.name == 'rust_analyzer' then + vim.lsp.inlay_hint.enable(true, { bufnr = args.buf }) + end + end, +}) + +-- Global mappings vim.keymap.set('n', '<space>e', vim.diagnostic.open_float) vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) vim.keymap.set('n', ']d', vim.diagnostic.goto_next) @@ -51,9 +94,8 @@ vim.api.nvim_create_autocmd('LspAttach', { callback = function(ev) -- Enable completion triggered by <c-x><c-o> vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' - - -- Buffer local mappings. - -- See `:help vim.lsp.*` for documentation on any of the below functions + + -- Buffer local mappings local opts = { buffer = ev.buf } vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) diff --git a/config/nvim/lua/plugins.lua b/config/nvim/lua/plugins.lua index 882c76d..ce637e9 100644 --- a/config/nvim/lua/plugins.lua +++ b/config/nvim/lua/plugins.lua @@ -28,9 +28,9 @@ require('lazy').setup({ ['fg'] = {'fg', 'Normal'}, ['bg'] = {'bg', 'Normal'}, ['hl'] = {'fg', 'Comment'}, - ['fg+'] = {'fg', 'CursorLine'}, - ['bg+'] = {'bg', 'CursorLine'}, - ['hl+'] = {'fg', 'Statement'}, + ['fg+'] = {'fg', 'Type'}, + ['bg+'] = {'bg', 'Comment'}, + ['hl+'] = {'fg', '@fzf.hlplus'}, ['info'] = {'fg', 'PreProc'}, ['prompt'] = {'fg', 'Conditional'}, ['pointer'] = {'fg', 'Exception'}, diff --git a/config/nvim/lua/treesitter_config.lua b/config/nvim/lua/treesitter_config.lua index ded65ac..16986d6 100644 --- a/config/nvim/lua/treesitter_config.lua +++ b/config/nvim/lua/treesitter_config.lua @@ -8,6 +8,7 @@ require'nvim-treesitter.configs'.setup { 'diff', 'dockerfile', 'gitcommit', + 'gleam', 'graphql', 'html', 'htmldjango', |