64 lines
2.2 KiB
Lua
64 lines
2.2 KiB
Lua
function map(mode, lhs, rhs, opts)
|
||
local options = { noremap = true, silent = true }
|
||
if opts then
|
||
options = vim.tbl_extend("force", options, opts)
|
||
end
|
||
vim.keymap.set(mode, lhs, rhs, options)
|
||
end
|
||
--This code just maps vim.keymap.set() to something easier to type. Also, typing { noremap = true, silent = true } won’t be needed, because that is also implemented in the function.
|
||
|
||
vim.g.mapleader = " "
|
||
|
||
map("i", "jk", "<esc>") -- remap escape
|
||
|
||
map("n", "<leader>+", ":bNext<cr>") --switch tabs
|
||
map("n", "<leader>n", ":Neotree toggle<cr>") --open Nerdtree
|
||
map("n", "<leader>z", ":ZenMode<cr>") --open ZenMode (distraction-free)
|
||
map("n", "<leader>d", ":ToggleDiag<cr>") -- toggle all diagnostics
|
||
|
||
vim.api.nvim_create_autocmd("LspAttach", {
|
||
desc = "LSP actions",
|
||
callback = function()
|
||
local bufmap = function(mode, lhs, rhs)
|
||
local opts = { buffer = true }
|
||
vim.keymap.set(mode, lhs, rhs, opts)
|
||
end
|
||
|
||
-- Displays hover information about the symbol under the cursor
|
||
bufmap("n", "K", "<cmd>lua vim.lsp.buf.hover()<cr>")
|
||
|
||
-- Jump to the definition
|
||
bufmap("n", "gd", "<cmd>lua vim.lsp.buf.definition()<cr>")
|
||
|
||
-- Jump to declaration
|
||
bufmap("n", "gD", "<cmd>lua vim.lsp.buf.declaration()<cr>")
|
||
|
||
-- Lists all the implementations for the symbol under the cursor
|
||
bufmap("n", "gi", "<cmd>lua vim.lsp.buf.implementation()<cr>")
|
||
|
||
-- Jumps to the definition of the type symbol
|
||
bufmap("n", "go", "<cmd>lua vim.lsp.buf.type_definition()<cr>")
|
||
|
||
-- Lists all the references
|
||
bufmap("n", "gr", "<cmd>lua vim.lsp.buf.references()<cr>")
|
||
|
||
-- Displays a function's signature information
|
||
bufmap("n", "gs", "<cmd>lua vim.lsp.buf.signature_help()<cr>")
|
||
|
||
-- Renames all references to the symbol under the cursor
|
||
bufmap("n", "<F2>", "<cmd>lua vim.lsp.buf.rename()<cr>")
|
||
|
||
-- Selects a code action available at the current cursor position
|
||
bufmap("n", "<F4>", "<cmd>lua vim.lsp.buf.code_action()<cr>")
|
||
|
||
-- Show diagnostics in a floating window
|
||
bufmap("n", "gl", "<cmd>lua vim.diagnostic.open_float()<cr>")
|
||
|
||
-- Move to the previous diagnostic
|
||
bufmap("n", "nd", "<cmd>lua vim.diagnostic.goto_prev()<cr>")
|
||
|
||
-- Move to the next diagnostic
|
||
bufmap("n", "nd", "<cmd>lua vim.diagnostic.goto_next()<cr>")
|
||
end,
|
||
})
|