summaryrefslogtreecommitdiffstats
path: root/.config/nvim/lua/lsp_cfg.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/lsp_cfg.lua')
-rw-r--r--.config/nvim/lua/lsp_cfg.lua141
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
-
-]]
---