mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-31 20:42:47 +00:00
feat(nvim): refactoring, docs, keybinds, others
This commit is contained in:
@@ -14,9 +14,6 @@ return {
|
||||
wk.setup()
|
||||
|
||||
wk.add {
|
||||
-- Better default experience
|
||||
{ '<space>', '<Nop>', mode = { 'n', 'v' } },
|
||||
|
||||
-- ╭─────────────────────────────────────────────────────────╮
|
||||
-- │ With leader │
|
||||
-- ╰─────────────────────────────────────────────────────────╯
|
||||
@@ -38,6 +35,10 @@ return {
|
||||
|
||||
-- ── Code ────────────────────────────────────────────────────────────
|
||||
{ '<leader>c', group = '[c] Code' },
|
||||
{ '<leader>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', desc = 'LSP: Code Action' },
|
||||
{ '<leader>cr', '<cmd>lua vim.lsp.buf.rename()<CR>', desc = 'LSP: Rename' },
|
||||
{ '<leader>cg', '<cmd>lua require("neogen").generate()<CR>', desc = 'Generate annotations' },
|
||||
|
||||
-- ── Code: CommentBox ────────────────────────────────────────────────
|
||||
{ '<leader>cb', group = 'CommentBox' },
|
||||
{ '<leader>cbb', '<Cmd>CBccbox<CR>', desc = 'CommentBox: Box Title' },
|
||||
@@ -45,16 +46,51 @@ return {
|
||||
{ '<leader>cbl', '<Cmd>CBline<CR>', desc = 'CommentBox: Simple Line' },
|
||||
{ '<leader>cbm', '<Cmd>CBllbox14<CR>', desc = 'CommentBox: Marked' },
|
||||
{ '<leader>cbt', '<Cmd>CBllline<CR>', desc = 'CommentBox: Titled Line' },
|
||||
-- Code: package.json control
|
||||
-- See: lua/plugins/lazy.lua
|
||||
{ '<leader>cn', group = 'package.json control' },
|
||||
{ '<leader>cnd', '<cmd>lua require("package-info").delete()<cr>', desc = 'Delete package' },
|
||||
{ '<leader>cni', '<cmd>lua require("package-info").install()<cr>', desc = 'Install package' },
|
||||
{ '<leader>cns', '<cmd>lua require("package-info").show({ force = true })<cr>', desc = 'Show package info' },
|
||||
{ '<leader>cnu', '<cmd>lua require("package-info").change_version()<cr>', desc = 'Change version' },
|
||||
-- Code: LSPSaga
|
||||
-- See: lua/plugins/lsp.lua
|
||||
{ '<C-a>', '<cmd>Lspsaga term_toggle<cr>', desc = 'LSPSaga: Open Floaterm' },
|
||||
{ '<leader>ca', '<cmd>Lspsaga code_action<cr>', desc = 'LSPSaga: Code Actions' },
|
||||
{ '<leader>cci', '<cmd>Lspsaga incoming_calls<cr>', desc = 'LSPSaga: Incoming Calls' },
|
||||
{ '<leader>cco', '<cmd>Lspsaga outgoing_calls<cr>', desc = 'LSPSaga: Outgoing Calls' },
|
||||
{ '<leader>cd', '<cmd>Lspsaga show_line_diagnostics<cr>', desc = 'LSPSaga: Show Line Diagnostics' },
|
||||
{ '<leader>cf', '<cmd>Lspsaga lsp_finder<cr>', desc = 'LSPSaga: LSP Finder' },
|
||||
{ '<leader>ci', '<cmd>Lspsaga implement<cr>', desc = 'LSPSaga: Implementations' },
|
||||
{ '<leader>cl', '<cmd>Lspsaga show_cursor_diagnostics<cr>', desc = 'LSPSaga: Show Cursor Diagnostics' },
|
||||
{ '<leader>cp', '<cmd>Lspsaga peek_definition<cr>', desc = 'LSPSaga: Peek Definition' },
|
||||
{ '<leader>cr', '<cmd>Lspsaga rename<cr>', desc = 'LSPSaga: Rename' },
|
||||
{ '<leader>cR', '<cmd>Lspsaga rename ++project<cr>', desc = 'LSPSaga: Rename Project wide' },
|
||||
{ '<leader>cs', '<cmd>Lspsaga signature_help<cr>', desc = 'LSPSaga: Signature Documentation' },
|
||||
{ '<leader>ct', '<cmd>Lspsaga peek_type_definition<cr>', desc = 'LSPSaga: Peek Type Definition' },
|
||||
{ '<leader>cu', '<cmd>Lspsaga preview_definition<cr>', desc = 'LSPSaga: Preview Definition' },
|
||||
{ '<leader>cv', '<cmd>Lspsaga diagnostic_jump_prev<cr>', desc = 'LSPSaga: Diagnostic Jump Prev' },
|
||||
{ '<leader>cw', '<cmd>Lspsaga diagnostic_jump_next<cr>', desc = 'LSPSaga: Diagnostic Jump Next' },
|
||||
|
||||
-- ── DAP ─────────────────────────────────────────────────────────────
|
||||
{ '<leader>d', group = '[d] DAP' },
|
||||
-- See: lua/plugins/dap.lua
|
||||
|
||||
{ '<leader>g', group = '[g] Git' },
|
||||
-- See: lua/plugins/git.lua
|
||||
{ '<leader>db', '<cmd>DapToggleBreakpoint', desc = 'DAP: Toggle Breakpoint' },
|
||||
{ '<leader>dc', '<cmd>DapContinue', desc = 'DAP: Continue' },
|
||||
{ '<leader>do', '<cmd>lua vim.diagnostic.open_float()<CR>', desc = 'Diagnostic: Open float' },
|
||||
{ '<leader>dq', '<cmd>lua vim.diagnostic.setloclist()<CR>', desc = 'Diagnostic: Set loc list' },
|
||||
{ '<leader>dr', ":lua require('dapui').open({reset = true})<CR>", desc = 'DAP: Reset' },
|
||||
{ '<leader>ds', '<cmd>lua require("telescope.builtin").lsp_document_symbols()<CR>', desc = 'LSP: Document Symbols' },
|
||||
{ '<leader>dt', '<cmd>DapUiToggle', desc = 'DAP: Toggle UI' },
|
||||
|
||||
-- ── Harpoon ─────────────────────────────────────────────────────────
|
||||
{ '<leader>h', group = '[h] Harpoon' },
|
||||
-- See: lua/plugins/harpoon.lua
|
||||
{ '<leader>ha', '<cmd>lua require("harpoon"):list():add()<cr>', desc = 'harpoon file' },
|
||||
{ '<leader>hn', '<cmd>lua require("harpoon"):list():next()<cr>', desc = 'harpoon to next file' },
|
||||
{ '<leader>hp', '<cmd>lua require("harpoon"):list():prev()<cr>', desc = 'harpoon to previous file' },
|
||||
{ '<leader>ht', ":lua require('harpoon.ui').toggle_quick_menu()<CR>", desc = 'DAP: Harpoon UI' },
|
||||
|
||||
-- ── LSP ─────────────────────────────────────────────────────────────
|
||||
{ '<leader>l', group = '[l] LSP' },
|
||||
-- See: lua/plugins/lsp.lua
|
||||
|
||||
@@ -64,33 +100,81 @@ return {
|
||||
{ '<leader>qq', ':wq!<CR>', desc = 'Quit with force saving' },
|
||||
{ '<leader>qw', ':wq<CR>', desc = 'Write and quit' },
|
||||
|
||||
-- ── Search ──────────────────────────────────────────────────────────
|
||||
{ '<leader>s', group = '[s] Search' },
|
||||
-- See: lua/plugins/telescope.lua
|
||||
|
||||
-- ── Toggle ──────────────────────────────────────────────────────────
|
||||
{ '<leader>t', group = '[t] Toggle' },
|
||||
{ '<leader>tt', ':TransparentToggle<CR>', desc = 'Toggle Transparency' },
|
||||
{ '<leader>tc', '<cmd>CloakToggle<cr>', desc = 'Toggle Cloak' },
|
||||
{ '<leader>tn', ':Noice dismiss<CR>', desc = 'Noice dismiss' },
|
||||
{ '<leader>ts', ':noh<CR>', desc = 'Toggle Search Highlighting' },
|
||||
{ '<leader>tt', ':TransparentToggle<CR>', desc = 'Toggle Transparency' },
|
||||
{ '<leader>tw', '<cmd>Twilight<cr>', desc = 'Toggle Twilight' },
|
||||
|
||||
-- ── Workspace ───────────────────────────────────────────────────────
|
||||
{ '<leader>w', group = '[w] Workspace' },
|
||||
{ '<leader>x', group = '[x] Trouble' },
|
||||
{ '<leader>z', group = '[z] FZF' },
|
||||
{ '<leader>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', desc = 'LSP: Workspace Add Folder' },
|
||||
{ '<leader>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', desc = 'LSP: Workspace List Folders' },
|
||||
{ '<leader>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', desc = 'LSP: Workspace Remove Folder' },
|
||||
{ '<leader>ws', '<cmd>lua require("telescope.builtin").lsp_dynamic_workspace_symbols()<CR>', desc = 'LSP: Workspace Symbols' },
|
||||
|
||||
-- ── Help ────────────────────────────────────────────────────────────
|
||||
{ '<leader>?', group = '[?] Help' },
|
||||
{
|
||||
'<leader>?w',
|
||||
function()
|
||||
wk.show { global = false }
|
||||
end,
|
||||
desc = 'Buffer Local Keymaps (which-key)',
|
||||
},
|
||||
-- Trouble
|
||||
{ '<leader>x', group = '[x] Trouble' },
|
||||
{ '<leader>xx', '<cmd>Trouble<cr>', desc = 'Toggle Trouble' },
|
||||
{ '<leader>xw', '<cmd>Trouble workspace_diagnostics<cr>', desc = 'Toggle Workspace Diagnostics' },
|
||||
{ '<leader>xd', '<cmd>Trouble document_diagnostics<cr>', desc = 'Toggle Document Diagnostics' },
|
||||
{ '<leader>xl', '<cmd>Trouble loclist<cr>', desc = 'Toggle Loclist' },
|
||||
{ '<leader>xq', '<cmd>Trouble quickfix<cr>', desc = 'Toggle Quickfix' },
|
||||
|
||||
-- ── FZF ─────────────────────────────────────────────────────────────
|
||||
{ '<leader>z', group = '[z] FZF' },
|
||||
-- Stolen from https://github.com/erikw/dotfiles/blob/d68d6274d67ac47afa20b9a0b9f3b0fa54bcdaf3/.config/nvim/lua/plugins.lua
|
||||
{ '<leader>zf', ':FZF<space>', desc = 'FZF: search for files in given path.' },
|
||||
{ '<leader>zc', ':Commands<CR>', desc = 'FZF: search commands.' },
|
||||
{ '<leader>zt', ':Tags<CR>', desc = 'FZF: search in tags file' },
|
||||
{ '<leader>zb', ':Buffers<CR>', desc = 'FZF: search open buffers.' },
|
||||
-- Ref: https://medium.com/@paulodiovani/vim-buffers-windows-and-tabs-an-overview-8e2a57c57afa
|
||||
{ '<leader>zt', ':Windows<CR>', desc = 'FZF: search open tabs.' },
|
||||
{ '<leader>zh', ':History<CR>', desc = 'FZF: search history of opened files' },
|
||||
{ '<leader>zm', ':Maps<CR>', desc = 'FZF: search mappings.' },
|
||||
{ '<leader>zg', ':Rg<CR>', desc = 'FZF: search with rg (aka live grep).' },
|
||||
|
||||
-- ── Help & Neoconf ──────────────────────────────────────────────────
|
||||
{ '<leader>?', group = '[?] Help & neoconf' },
|
||||
{ '<leader>?c', '<cmd>Neoconf<CR>', desc = 'Neoconf: Open' },
|
||||
{ '<leader>?g', '<cmd>Neoconf global<CR>', desc = 'Neoconf: Global' },
|
||||
{ '<leader>?l', '<cmd>Neoconf local<CR>', desc = 'Neoconf: Local' },
|
||||
{ '<leader>?m', '<cmd>Neoconf lsp<CR>', desc = 'Neoconf: Show merged LSP config' },
|
||||
{ '<leader>?s', '<cmd>Neoconf show<CR>', desc = 'Neoconf: Show merged config' },
|
||||
{ '<leader>?w', '<cmd>lua require("which-key").show({global = false})<cr>', desc = 'Buffer Local Keymaps (which-key)' },
|
||||
|
||||
-- ── Misc ────────────────────────────────────────────────────────────
|
||||
{ '<leader>1', '<cmd>lua require("harpoon"):list():select(1)<cr>', desc = 'harpoon to file 1' },
|
||||
{ '<leader>2', '<cmd>lua require("harpoon"):list():select(2)<cr>', desc = 'harpoon to file 2' },
|
||||
{ '<leader>3', '<cmd>lua require("harpoon"):list():select(3)<cr>', desc = 'harpoon to file 3' },
|
||||
{ '<leader>4', '<cmd>lua require("harpoon"):list():select(4)<cr>', desc = 'harpoon to file 4' },
|
||||
{ '<leader>5', '<cmd>lua require("harpoon"):list():select(5)<cr>', desc = 'harpoon to file 5' },
|
||||
{ '<leader>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', desc = 'LSP: Type Definition' },
|
||||
{ '<leader>e', ':Neotree reveal<CR>', desc = 'NeoTree reveal' },
|
||||
|
||||
-- ╭─────────────────────────────────────────────────────────╮
|
||||
-- │ Without leader │
|
||||
-- ╰─────────────────────────────────────────────────────────╯
|
||||
{ 'y', group = 'Yank & Surround' },
|
||||
|
||||
{ 'gp', group = 'Goto Preview' },
|
||||
{ 'gpd', '<cmd>lua require("goto-preview").goto_preview_definition()<CR>' },
|
||||
{ 'gpi', '<cmd>lua require("goto-preview").goto_preview_implementation()<CR>' },
|
||||
{ 'gpP', '<cmd>lua require("goto-preview").close_all_windows()<CR>' },
|
||||
|
||||
-- ── tmux navigation ─────────────────────────────────────────────────
|
||||
{ '<c-h>', '<cmd><C-U>TmuxNavigateLeft<cr>', desc = 'tmux: Navigate Left' },
|
||||
{ '<c-j>', '<cmd><C-U>TmuxNavigateDown<cr>', desc = 'tmux: Navigate Down' },
|
||||
{ '<c-k>', '<cmd><C-U>TmuxNavigateUp<cr>', desc = 'tmux: Navigate Up' },
|
||||
{ '<c-l>', '<cmd><C-U>TmuxNavigateRight<cr>', desc = 'tmux: Navigate Right' },
|
||||
{ '<c-\\>', '<cmd><C-U>TmuxNavigatePrevious<cr>', desc = 'tmux: Navigate Previous' },
|
||||
|
||||
-- ── Old habits ──────────────────────────────────────────────────────
|
||||
{ '<C-s>', ':w<CR>', desc = 'Save file' },
|
||||
|
||||
@@ -100,7 +184,20 @@ return {
|
||||
{ 'J', ":m '>+1<CR>gv=gv", desc = 'Move Block Down', mode = 'v' },
|
||||
{ 'K', ":m '<-2<CR>gv=gv", desc = 'Move Block Up', mode = 'v' },
|
||||
|
||||
-- ── LSP ─────────────────────────────────────────────────────────────
|
||||
{ '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', desc = 'LSP: Signature Documentation' },
|
||||
{ 'K', '<cmd>Lspsaga hover_doc<cr>', desc = 'LSPSaga: Hover Documentation' },
|
||||
{ 'dn', '<cmd>lua vim.diagnostic.goto_next()<CR>', desc = 'Diagnostic: Goto Next' },
|
||||
{ 'dp', '<cmd>lua vim.diagnostic.goto_prev()<CR>', desc = 'Diagnostic: Goto Prev' },
|
||||
{ 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', desc = 'LSP: Goto Declaration' },
|
||||
{ 'gI', '<cmd>lua vim.lsp.buf.implementation()<CR>', desc = 'LSP: Goto Implementation' },
|
||||
{ 'gR', '<cmd>Trouble lsp_references<cr>', desc = 'Toggle LSP References' },
|
||||
{ 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', desc = 'LSP: Goto Definition' },
|
||||
{ 'gr', '<cmd>lua require("telescope.builtin").lsp_references()<CR>', desc = 'LSP: Goto References' },
|
||||
|
||||
-- ── Misc keybinds ───────────────────────────────────────────────────
|
||||
-- Sublime-like shortcut 'go to file' ctrl+p.
|
||||
{ '<C-p>', ':Files<CR>', desc = 'FZF: search for files starting at current directory.' },
|
||||
{ 'QQ', ':q!<CR>', desc = 'Quit without saving' },
|
||||
{ 'WW', ':w!<CR>', desc = 'Force write to file' },
|
||||
{ 'ss', ':noh<CR>', desc = 'Clear Search Highlighting' },
|
||||
|
||||
Reference in New Issue
Block a user