From 4d24d338e4a7b7c9c31d451e8797c7eff781e092 Mon Sep 17 00:00:00 2001 From: Tyler Davis Date: Sat, 15 Mar 2025 04:30:29 +0000 Subject: sh: adding neovim again --- .config/nvim/lua/lsp_cfg.lua | 141 ------------------------------------------- 1 file changed, 141 deletions(-) delete mode 100644 .config/nvim/lua/lsp_cfg.lua (limited to '.config/nvim/lua/lsp_cfg.lua') 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", "", rt.hover_actions.hover_actions, { buffer = bufnr }) - -- Code action groups - vim.keymap.set("n", "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', 'lua vim.lsp.buf.declaration()', opts) - buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', opts) - buf_set_keymap('n', 'ga', 'lua vim.lsp.buf.code_action()', opts) - buf_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', opts) - buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) - buf_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', opts) - buf_set_keymap('n', 'd', 'lua vim.lsp.buf.type_definition()', opts) - -- buf_set_keymap('n', 'rn', 'lua vim.lsp.buf.rename()', opts) - buf_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', opts) - buf_set_keymap('n', 'e', 'lua vim.lsp.diagnostic.show_line_diagnostics()', opts) - buf_set_keymap('n', '[d', 'lua vim.lsp.diagnostic.goto_prev()', opts) - buf_set_keymap('n', ']d', 'lua vim.lsp.diagnostic.goto_next()', opts) - buf_set_keymap('n', 'q', 'lua vim.lsp.diagnostic.set_loclist()', opts) - -- Original Keybinds - --buf_set_keymap('n', 'b', 'GoBuild', opts) - --buf_set_keymap('n', 't', 'GoTest', opts) - - -- Set some keybinds conditional on server capabilities - if client.resolved_capabilities.document_formatting then - buf_set_keymap("n", "ff", "lua vim.lsp.buf.formatting()", opts) - elseif client.resolved_capabilities.document_range_formatting then - buf_set_keymap("n", "ff", "lua vim.lsp.buf.range_formatting()", 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 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 - -]] --- -- cgit v1.2.3