aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/nvim
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2022-09-12 19:05:34 -0500
committerToby Vincent <tobyv13@gmail.com>2022-09-12 19:05:34 -0500
commitc67a2b1dd391fe75666c50eb291e203c6658218e (patch)
treeef8f1d3f57053acfbd701b1415c8eba2c3c990bd /nvim
parentfcb7002e3ba29c6c4596fa8bee62447c375986c1 (diff)
feat(nvim): improve lsp keymaps and cleaned up configs
Diffstat (limited to 'nvim')
-rw-r--r--nvim/.config/nvim/lua/tobyvin/lsp/diagnostics.lua9
-rw-r--r--nvim/.config/nvim/lua/tobyvin/lsp/formatting.lua50
-rw-r--r--nvim/.config/nvim/lua/tobyvin/lsp/init.lua42
-rw-r--r--nvim/.config/nvim/lua/tobyvin/plugins/lspconfig.lua4
-rw-r--r--nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua43
-rw-r--r--nvim/.config/nvim/lua/tobyvin/plugins/treesitter.lua2
6 files changed, 41 insertions, 109 deletions
diff --git a/nvim/.config/nvim/lua/tobyvin/lsp/diagnostics.lua b/nvim/.config/nvim/lua/tobyvin/lsp/diagnostics.lua
index 6b21ca2..6925ca6 100644
--- a/nvim/.config/nvim/lua/tobyvin/lsp/diagnostics.lua
+++ b/nvim/.config/nvim/lua/tobyvin/lsp/diagnostics.lua
@@ -16,13 +16,18 @@ M.on_attach = function(_, bufnr)
vim.diagnostic.open_float(nil, opts)
end,
})
+
+ vim.keymap.set("n", "<leader>e", vim.diagnostic.open_float, { desc = "Show Diagnostic", buffer = bufnr })
+ vim.keymap.set("n", "<leader>E", vim.diagnostic.setloclist, { desc = "List Diagnostic", buffer = bufnr })
+ vim.keymap.set("n", "]d", vim.diagnostic.goto_next, { desc = "Next Diagnostic", buffer = bufnr })
+ vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, { desc = "Prev Diagnostic", buffer = bufnr })
end
M.setup = function()
vim.diagnostic.config({
virtual_text = {
- source = "if_many"
- },
+ source = "if_many",
+ },
signs = true,
underline = true,
update_in_insert = true,
diff --git a/nvim/.config/nvim/lua/tobyvin/lsp/formatting.lua b/nvim/.config/nvim/lua/tobyvin/lsp/formatting.lua
index d815f4f..47d2328 100644
--- a/nvim/.config/nvim/lua/tobyvin/lsp/formatting.lua
+++ b/nvim/.config/nvim/lua/tobyvin/lsp/formatting.lua
@@ -1,53 +1,15 @@
-local M = {
- augroup_format = vim.api.nvim_create_augroup("Format", { clear = true }),
-}
-
-M.toggle_format = function()
- vim.b.auto_format = not vim.b.auto_format
- vim.notify("Auto-formatter " .. (vim.b.auto_format and "en" or "dis") .. "abled", "Info")
-end
+local M = {}
M.on_attach = function(client, bufnr)
- local nmap = require("tobyvin.utils").create_map_group("n", "<leader>l", { desc = "LSP", buffer = bufnr })
-
if client.server_capabilities.documentFormattingProvider then
- vim.b.auto_format = true
-
- vim.api.nvim_buf_create_user_command(
- bufnr,
- "ToggleAutoFormat",
- M.toggle_format,
- { desc = "Toggle auto-format" }
- )
- vim.api.nvim_buf_create_user_command(bufnr, "Format", vim.lsp.buf.format, { nargs = "*", desc = "Format" })
-
- nmap("f", vim.lsp.buf.format, { desc = "Format" })
- nmap("F", M.toggle_format, { desc = "Toggle auto-format" })
-
- vim.api.nvim_clear_autocmds({ group = M.augroup_format, buffer = bufnr })
- vim.api.nvim_create_autocmd("BufWritePre", {
- group = M.augroup_format,
- buffer = bufnr,
- callback = function()
- if M.auto_format_enabled then
- vim.lsp.buf.format()
- end
- end,
- desc = "Auto-format",
- })
+ vim.api.nvim_buf_set_option(bufnr, "formatexpr", "v:lua.vim.lsp.formatexpr()")
+ vim.api.nvim_buf_create_user_command(bufnr, "Format", vim.lsp.buf.format, { nargs = "*" })
+ vim.keymap.set("n", "<leader>lf", vim.lsp.buf.format, { desc = "Format", buffer = bufnr })
end
- local vmap = require("tobyvin.utils").create_map_group("v", "<leader>l", { desc = "LSP", buffer = bufnr })
-
if client.server_capabilities.documentRangeFormattingProvider then
- vim.api.nvim_buf_create_user_command(
- bufnr,
- "FormatRange",
- vim.lsp.buf.range_formatting,
- { nargs = "*", desc = "Format range" }
- )
-
- vmap("f", vim.lsp.buf.range_formatting, { desc = "Format range" })
+ vim.api.nvim_buf_create_user_command(bufnr, "FormatRange", vim.lsp.buf.format, { nargs = "*" })
+ vim.keymap.set("n", "<leader>lf", vim.lsp.buf.format, { desc = "Format Range", buffer = bufnr })
end
end
diff --git a/nvim/.config/nvim/lua/tobyvin/lsp/init.lua b/nvim/.config/nvim/lua/tobyvin/lsp/init.lua
index 664dda9..0b2623a 100644
--- a/nvim/.config/nvim/lua/tobyvin/lsp/init.lua
+++ b/nvim/.config/nvim/lua/tobyvin/lsp/init.lua
@@ -3,34 +3,20 @@ local M = {}
M.on_attach = function(client, bufnr)
vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc")
-
- vim.keymap.set("n", "<C-Space>", vim.lsp.buf.code_action, { desc = "Code Action" })
- local nmap = utils.create_map_group("n", "<leader>l", { desc = "LSP", buffer = bufnr })
-
- nmap("a", vim.lsp.buf.code_action, { desc = "Code Action" })
- nmap("d", "<cmd>TroubleToggle document_diagnostics<cr>", { desc = "Document Diagnostics" })
- nmap("D", "<cmd>TroubleToggle workspace_diagnostics<cr>", { desc = "Workspace Diagnostics" })
- nmap("h", vim.lsp.buf.hover, { desc = "Hover" })
- nmap("H", vim.lsp.buf.signature_help, { desc = "Signature Help" })
- nmap("j", vim.diagnostic.goto_next, { desc = "Next Diagnostic" })
- nmap("k", vim.diagnostic.goto_prev, { desc = "Prev Diagnostic" })
- nmap("o", "<cmd>SymbolsOutline<cr>", { desc = "Outline" })
- -- nmap("q", vim.lsp.diagnostic.setloclist, { desc = "Quickfix" })
- nmap("r", vim.lsp.buf.rename, { desc = "Rename" })
- nmap("R", "<cmd>TroubleToggle lsp_references<cr>", { desc = "References" })
- nmap("s", "<cmd>Telescope lsp_document_symbols<cr>", { desc = "Document Symbols" })
- nmap("S", "<cmd>Telescope lsp_dynamic_workspace_symbols<cr>", { desc = "Workspace Symbols" })
- nmap("w", "<cmd>Telescope lsp_workspace_diagnostics<cr>", { desc = "Workspace Diagnostics" })
-
- local nmap_goto = utils.create_map_group("n", "<leader>lg", { desc = "Goto", buffer = bufnr })
- nmap_goto("d", vim.lsp.buf.definition, { desc = "Definition" })
- nmap_goto("t", vim.lsp.buf.type_definition, { desc = "Type" })
- nmap_goto("D", vim.lsp.buf.declaration, { desc = "Declaration" })
- nmap_goto("i", vim.lsp.buf.implementation, { desc = "Implementation" })
- nmap_goto("r", vim.lsp.buf.references, { desc = "References" })
-
- local nmap_tests = utils.create_map_group("n", "<leader>r", { desc = "Run", buffer = bufnr })
- nmap_tests("l", vim.lsp.codelens.run, { desc = "CodeLens Action" })
+ vim.api.nvim_buf_set_option(bufnr, "tagfunc", "v:lua.vim.lsp.tagfunc")
+
+ vim.keymap.set("n", "gd", vim.lsp.buf.definition, { desc = "Definition", buffer = bufnr })
+ vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { desc = "Declaration", buffer = bufnr })
+ vim.keymap.set("n", "gt", vim.lsp.buf.type_definition, { desc = "Type", buffer = bufnr })
+ vim.keymap.set("n", "gi", vim.lsp.buf.implementation, { desc = "Implementation", buffer = bufnr })
+ vim.keymap.set("n", "gr", vim.lsp.buf.references, { desc = "References", buffer = bufnr })
+ vim.keymap.set("n", "K", vim.lsp.buf.hover, { desc = "Hover", buffer = bufnr })
+ vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, { desc = "Signature Help", buffer = bufnr })
+
+ utils.create_map_group("n", "<leader>l", { desc = "LSP", buffer = bufnr })
+ vim.keymap.set("n", "<leader>lr", vim.lsp.buf.rename, { desc = "Rename", buffer = bufnr })
+ vim.keymap.set("n", "<leader>la", vim.lsp.buf.code_action, { desc = "Code Action", buffer = bufnr })
+ vim.keymap.set("n", "<leader>ll", vim.lsp.codelens.run, { desc = "Codelens", buffer = bufnr })
-- disabled in favor of https://github.com/nvim-treesitter/nvim-treesitter-refactor#highlight-definitions
-- require("tobyvin.lsp.highlighting").on_attach(client, bufnr)
diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/lspconfig.lua b/nvim/.config/nvim/lua/tobyvin/plugins/lspconfig.lua
index a19c78c..13c7be5 100644
--- a/nvim/.config/nvim/lua/tobyvin/plugins/lspconfig.lua
+++ b/nvim/.config/nvim/lua/tobyvin/plugins/lspconfig.lua
@@ -55,10 +55,6 @@ M.setup = function()
staticcheck = true,
},
},
- on_attach = function(client, bufnr)
- vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc")
- lsp.on_attach(client, bufnr)
- end,
}))
lspconfig.texlab.setup(lsp.config({
diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua b/nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua
index 98cdcc8..86013b4 100644
--- a/nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua
+++ b/nvim/.config/nvim/lua/tobyvin/plugins/rust-tools.lua
@@ -5,19 +5,6 @@ local M = {
liblldb = "/usr/lib/codelldb/lldb/lib/liblldb.so",
}
-M.dap_adapter = function()
- if vim.fn.executable(M.codelldb) ~= 0 then
- return {
- adapter = require("rust-tools.dap").get_codelldb_adapter(M.codelldb, M.liblldb),
- }
- end
- vim.notify("Failed to find codelldb adapter")
-end
-
-M.cargo_cmd = function()
- utils.run_cmd_with_args("cargo")
-end
-
M.setup = function()
local status_ok, rust_tools = pcall(require, "rust-tools")
if not status_ok then
@@ -39,28 +26,24 @@ M.setup = function()
},
},
on_attach = function(client, bufnr)
- if vim.fn.executable(M.codelldb) == 0 then
- vim.notify(
- "[DAP] Failed to find codelldb, falling back to default DAP adapter.",
- "warn",
- { title = "[rust-tools] codelldb not found" }
- )
- end
- vim.api.nvim_buf_set_option(bufnr, "formatexpr", "v:lua.vim.lsp.formatexpr()")
- vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc")
- vim.api.nvim_buf_set_option(bufnr, "tagfunc", "v:lua.vim.lsp.tagfunc")
lsp.on_attach(client, bufnr)
- local nmap = utils.create_map_group("n", "<leader>", { buffer = bufnr })
- nmap("dd", rust_tools.debuggables.debuggables, { desc = "Debug" })
+ local runnables = rust_tools.runnables.runnables
+ local debuggables = rust_tools.debuggables.debuggables
+ local open_cargo_toml = rust_tools.open_cargo_toml.open_cargo_toml
+ local run_cargo_cmd = function()
+ utils.run_cmd_with_args("cargo")
+ end
- local nmap_run = utils.create_map_group("n", "<leader>r", { desc = "Run", buffer = bufnr })
- nmap_run("r", rust_tools.runnables.runnables, { desc = "Runnables" })
- nmap_run("c", M.cargo_cmd, { desc = "Command" })
- nmap_run("o", rust_tools.open_cargo_toml.open_cargo_toml, { desc = "Open Cargo.toml" })
+ vim.keymap.set("n", "<leader>rr", runnables, { desc = "Runnables", buffer = bufnr })
+ vim.keymap.set("n", "<leader>rd", debuggables, { desc = "Debug", buffer = bufnr })
+ vim.keymap.set("n", "<leader>ro", open_cargo_toml, { desc = "Open Cargo.toml", buffer = bufnr })
+ vim.keymap.set("n", "<leader>rc", run_cargo_cmd, { desc = "Command", buffer = bufnr })
end,
}),
- dap = M.dap_adapter(),
+ dap = {
+ adapter = require("rust-tools.dap").get_codelldb_adapter(M.codelldb, M.liblldb),
+ },
})
end
diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/treesitter.lua b/nvim/.config/nvim/lua/tobyvin/plugins/treesitter.lua
index 89de319..af45db4 100644
--- a/nvim/.config/nvim/lua/tobyvin/plugins/treesitter.lua
+++ b/nvim/.config/nvim/lua/tobyvin/plugins/treesitter.lua
@@ -45,7 +45,7 @@ M.setup = function()
navigation = {
enable = true,
keymaps = {
- goto_definition_lsp_fallback = "<leader>lgd",
+ goto_definition_lsp_fallback = "gd",
},
},
},