-------------------------------------------------------------------------------- -- Define keymaps for Neovim -- -- Note that leader is defined in init.lua to ensure that all mappings are -- correct in plugins. -- -- Plugins define their own keymappings in plugin_management.lua -------------------------------------------------------------------------------- local map = vim.keymap.set vim.g.mapleader = ',' vim.g.maplocalleader = ' ' -- Clear search highlighting map('n', '/', ':nohlsearch', { desc = 'Clear Search Highlight' }) -- Save current buffer map('n', 's', ':up', { desc = 'Save' }) -- Move to previous buffer map('n', 'bp', ':bp', { desc = 'Prev Buffer' }) -- Move to next buffer map('n', 'bn', ':bn', { desc = 'Next Buffer' }) -- Delete current buffer map('n', 'bd', ':bd', { desc = 'Delete Buffer' }) -- Close the quickfix window map('n', 'cq', ':ccl', { desc = 'Close Quickfix' }) -- Create a vertical split map('n', 'v', ':vsplit', { desc = 'Vertical Split' }) -- Enter the lambda λ character. map('i', '', 'l*', { desc = 'Enter the Lambda λ Character' }) -- Enter the lozenge ◊ character. map('i', '', 'LZ', { desc = 'Enter the Lozenge ◊ Character' }) -- Enter the function composition ∘ character. map('i', '', 'Ob', { desc = 'Enter the Function Composition ∘ Character' }) -------------------------------------------------------------------------------- -- LSP -------------------------------------------------------------------------------- map('n', 'K', vim.lsp.buf.hover, { desc = 'Hover' }) map('n', 'gi', vim.lsp.buf.implementation, { desc = 'Go To Implementation' }) map('n', 'gr', vim.lsp.buf.references, { desc = 'Go To References' }) map('n', 'gds', vim.lsp.buf.document_symbol, { desc = 'Document Symbol' }) map('n', 'gws', vim.lsp.buf.workspace_symbol, { desc = 'Workspace Symbol' }) map('n', 'gd', vim.lsp.buf.definition, { desc = 'Go To Definition' }) map('n', 'gD', vim.lsp.buf.type_definition, { desc = 'Go To Type Definition' }) map('n', 'cl', vim.lsp.codelens.run, { desc = 'Code Lens' }) map('n', 'rn', vim.lsp.buf.rename, { desc = 'Rename' }) map('n', 'ca', vim.lsp.buf.code_action, { desc = 'Code Action' }) map('n', '[c', 'lua vim.diagnostic.goto_prev({ wrap = false })', { desc = 'prev diagnostic' }) map('n', ']c', 'lua vim.diagnostic.goto_next({ wrap = false })', { desc = 'next diagnostic' }) map('n', 'ls', ':Telescope lsp_document_symbols', { desc = 'Browse Document Symbols' })