diff options
author | Tyler Davis <tyler@gluecode.net> | 2025-03-15 04:30:29 +0000 |
---|---|---|
committer | Tyler Davis <tyler@gluecode.net> | 2025-03-15 04:30:29 +0000 |
commit | 4d24d338e4a7b7c9c31d451e8797c7eff781e092 (patch) | |
tree | 2b9a84fe98b91c7f550e28dc5aa4ae58953282aa /.config/nvim/lua/lsp_cfg.lua | |
parent | fcf300a450cce646b2632737c6a5fb2d3f1edb1b (diff) | |
download | dotfiles-4d24d338e4a7b7c9c31d451e8797c7eff781e092.tar.gz dotfiles-4d24d338e4a7b7c9c31d451e8797c7eff781e092.zip |
sh: adding neovim again
Diffstat (limited to '.config/nvim/lua/lsp_cfg.lua')
-rw-r--r-- | .config/nvim/lua/lsp_cfg.lua | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/.config/nvim/lua/lsp_cfg.lua b/.config/nvim/lua/lsp_cfg.lua deleted file mode 100644 index 887b529..0000000 --- a/.config/nvim/lua/lsp_cfg.lua +++ /dev/null @@ -1,141 +0,0 @@ --- Statusline via LSP -local lsp_status = require('lsp-status') -lsp_status.config({ -indicator_errors = 'E', -indicator_warnings = 'W', -indicator_info = 'i', -indicator_hint = '?', -indicator_ok = 'Ok', -}) - -lsp_status.register_progress() - --- Set up Mason -require("mason").setup() - --- Main LSP Configs -local nvim_lsp = require('lspconfig') -local capabilities = vim.lsp.protocol.make_client_capabilities() -capabilities.textDocument.completion.completionItem.snippetSupport = true - --- null-ls setup -local null_ls = require("null-ls") - --- Rust Tools setup -local rt = { - server = { - settings = { - on_attach = function(_, bufnr) - -- Hover actions - vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr }) - -- Code action groups - vim.keymap.set("n", "<Leader>a", rt.code_action_group.code_action_group, { buffer = bufnr }) - require 'illuminate'.on_attach(client) - end, - ["rust-analyzer"] = { - checkOnSave = { - command = "clippy" - }, - }, - } - }, -} -require('rust-tools').setup(rt) - --- register any number of sources simultaneously -local sources = { - -- These are a first-pass at sources - null_ls.builtins.completion.tags, - null_ls.builtins.completion.vsnip, - null_ls.builtins.diagnostics.clang_check, - null_ls.builtins.diagnostics.gitlint, - null_ls.builtins.diagnostics.golangci_lint, - null_ls.builtins.diagnostics.markdownlint.with({ - extra_args = { "-c /home/tydavis/.markdowntlint.jsonc" }, - }), - null_ls.builtins.formatting.clang_format, - null_ls.builtins.formatting.markdownlint, -} - -null_ls.setup({ sources = sources }) - -local on_attach = function(client, bufnr) - local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end - local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end - - buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') - - -- Mappings. - local opts = { noremap=true, silent=true } - buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts) - buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts) - buf_set_keymap('n', 'ga', '<Cmd>lua vim.lsp.buf.code_action()<CR>', opts) - buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts) - buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts) - buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts) - buf_set_keymap('n', '<Leader>d', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts) - -- buf_set_keymap('n', '<Leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts) - buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts) - buf_set_keymap('n', '<Leader>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts) - buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts) - buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts) - buf_set_keymap('n', '<Leader>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts) - -- Original Keybinds - --buf_set_keymap('n', '<Leader>b', '<cmd>GoBuild<CR>', opts) - --buf_set_keymap('n', '<Leader>t', '<cmd>GoTest<CR>', opts) - - -- Set some keybinds conditional on server capabilities - if client.resolved_capabilities.document_formatting then - buf_set_keymap("n", "ff", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts) - elseif client.resolved_capabilities.document_range_formatting then - buf_set_keymap("n", "ff", "<cmd>lua vim.lsp.buf.range_formatting()<CR>", opts) - end -end - --- Go -nvim_lsp.gopls.setup{ - cmd = {'gopls'}, - -- for postfix snippets and analyzers - capabilities = capabilities, - settings = { - gopls = { -- Analyzers and snippets enabled - experimentalPostfixCompletions = true, - analyses = { - unusedparams = true, - shadow = true, - }, - staticcheck = true, - }, - }, - on_attach = on_attach, -} - - function org_imports(wait_ms) - local params = vim.lsp.util.make_range_params() - params.context = {only = {"source.organizeImports"}} - local result = vim.lsp.buf_request_sync(0, "textDocument/codeAction", params, wait_ms) - for _, res in pairs(result or {}) do - for _, r in pairs(res.result or {}) do - if r.edit then - vim.lsp.util.apply_workspace_edit(r.edit, "utf-8") - else - vim.lsp.buf.execute_command(r.command) - end - end - end - end --- END GO - --- NOTE omnifunc setting for LSP allows for C-x,C-o wildmenu completion --- --- Autoformat -vim.cmd [[ - -autocmd BufWritePre <buffer> lua vim.lsp.buf.formatting_seq_sync() - -autocmd FileType go setlocal omnifunc=v:lua.vim.lsp.omnifunc -autocmd FileType c,cpp setlocal omnifunc=v:lua.vim.lsp.omnifunc -autocmd FileType rust setlocal omnifunc=v:lua.vim.lsp.omnifunc - -]] --- |