update which-key

This commit is contained in:
sankalp committed 2024-07-24 15:19:55 +05:45
1 parent 620e997fb2
commit 03a4c1878e
2 files changed
+460 -518

No files matched your search

+15 -15
View File
@@ -12,18 +12,18 @@
"co-author.nvim": { "branch": "main", "commit": "db0debbde453c0ce10d1b925cd9f3139e4291c42" },
"codeium.vim": { "branch": "main", "commit": "e0342fde9474fdd0a36ff9692fe0031b7611a19f" },
"compiler.nvim": { "branch": "main", "commit": "892c1aac059b7df16dc636eea9e34be53f53ff96" },
"conform.nvim": { "branch": "master", "commit": "797de8f79055334104cf77893cd93fe3fc2ac154" },
"conform.nvim": { "branch": "master", "commit": "25d48271e3d4404ba017cb92a37d3a681c1ad149" },
"dashboard-nvim": { "branch": "master", "commit": "fabf5feec96185817c732d47d363f34034212685" },
"dressing.nvim": { "branch": "master", "commit": "6741f1062d3dc6e4755367a7e9b347b553623f04" },
"flash.nvim": { "branch": "main", "commit": "34c7be146a91fec3555c33fe89c7d643f6ef5cf1" },
"fortune.nvim": { "branch": "master", "commit": "29a99fbf887a2d48693f1eaa1893f84cde60af54" },
"friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" },
"gitlinker.nvim": { "branch": "master", "commit": "cc59f732f3d043b626c8702cb725c82e54d35c25" },
"gitsigns.nvim": { "branch": "main", "commit": "f4928ba14eb6c667786ac7d69927f6aee6719f1e" },
"hardtime.nvim": { "branch": "main", "commit": "9a4e24fb40482dc85a93bf6cf344a030b9bf9a39" },
"gitsigns.nvim": { "branch": "main", "commit": "b29cb58126663569f6f34401fab513c2375e95d3" },
"hardtime.nvim": { "branch": "main", "commit": "424af61fbc93282e3b5220da3982452cfebcecf0" },
"harpoon": { "branch": "harpoon2", "commit": "0378a6c428a0bed6a2781d459d7943843f374bce" },
"indent-blankline.nvim": { "branch": "master", "commit": "65e20ab94a26d0e14acac5049b8641336819dfc7" },
"lazy.nvim": { "branch": "main", "commit": "839f9e78e78dc935b1188fb16583365991739c51" },
"lazy.nvim": { "branch": "main", "commit": "4496b4cad69a862199bb3ad452d3c4988bb925a1" },
"lazydev.nvim": { "branch": "main", "commit": "399299ca570aa82c13ee4fb1bd1304ce6baf7f05" },
"live-server.nvim": { "branch": "main", "commit": "f6f00a3f541251f0320910bb0d03c4ae14ee6d10" },
"lsp_lines.nvim": { "branch": "main", "commit": "dbfd8e96ec2696e1ceedcd23fd70e842256e3dea" },
@@ -41,33 +41,33 @@
"neotest-jest": { "branch": "main", "commit": "514fd4eae7da15fd409133086bb8e029b65ac43f" },
"neotest-rspec": { "branch": "main", "commit": "48573d5882cbe8d8bcd3b735d9ee7705168b1b87" },
"nerdy.nvim": { "branch": "main", "commit": "b467d6609b78d6a5f1e12cbc08fcc1ac87af20f5" },
"noice.nvim": { "branch": "main", "commit": "dd7363eae290ecdb9d6a2db6e0f59527df79edd6" },
"none-ls.nvim": { "branch": "main", "commit": "2cde745aadc2c36f6860a77a556494870675771a" },
"noice.nvim": { "branch": "main", "commit": "aaaef369f6060a5ba137f672c958bcc3b79404da" },
"none-ls.nvim": { "branch": "main", "commit": "3f917e6008b82343552cf9d92ea4c73e04861180" },
"nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
"nvim-autopairs": { "branch": "master", "commit": "78a4507bb9ffc9b00f11ae0ac48243d00cb9194d" },
"nvim-autopairs": { "branch": "master", "commit": "e38c5d837e755ce186ae51d2c48e1b387c4425c6" },
"nvim-cmp": { "branch": "main", "commit": "d818fd0624205b34e14888358037fb6f5dc51234" },
"nvim-dap": { "branch": "master", "commit": "bc03b83c94d0375145ff5ac6a6dcf28c1241e06f" },
"nvim-dap-ui": { "branch": "master", "commit": "a5606bc5958db86f8d92803bea7400ee26a8d7e4" },
"nvim-lspconfig": { "branch": "master", "commit": "fa6c2a64100c6f692bbec29bbbc8ec2663c9e869" },
"nvim-lspconfig": { "branch": "master", "commit": "3cceca5a79b66d735cbacbf05fa0bce5f8b716ca" },
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
"nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" },
"nvim-spectre": { "branch": "master", "commit": "9a28f926d3371b7ef02243cbbb653a0478d06e31" },
"nvim-spider": { "branch": "main", "commit": "508b3504a350fb9a93bd0b7c0d41b8b5fc732b5e" },
"nvim-tree.lua": { "branch": "master", "commit": "4e396b26244444c911b73e9f2f40ae0115351fd1" },
"nvim-treesitter": { "branch": "master", "commit": "debf5816eee21b7d51025ef17ba0647386226cb5" },
"nvim-treesitter": { "branch": "master", "commit": "c760e4037cc02336ddd00737f95ee26e128fa745" },
"nvim-treesitter-endwise": { "branch": "master", "commit": "8b34305ffc28bd75a22f5a0a9928ee726a85c9a6" },
"nvim-treesitter-refactor": { "branch": "master", "commit": "65ad2eca822dfaec2a3603119ec3cc8826a7859e" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "34867c69838078df7d6919b130c0541c0b400c47" },
"nvim-treesitter-textsubjects": { "branch": "master", "commit": "a8d2844bba925d9450ef7ab215f3b054028288ca" },
"nvim-ts-autotag": { "branch": "main", "commit": "1624866a1379fc1861797f0ed05899a9c1d2ff61" },
"nvim-ts-autotag": { "branch": "main", "commit": "dc5e1687ab76ee02e0f11c5ce137f530b36e98b3" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "6b5f95aa4d24f2c629a74f2c935c702b08dbde62" },
"nvim-web-devicons": { "branch": "master", "commit": "e612de3d3a41a6b7be47f51e956dddabcbf419d9" },
"oil.nvim": { "branch": "master", "commit": "a6cea1a5b9bc9351769fe09a547c62fe4b669abd" },
"oil.nvim": { "branch": "master", "commit": "71c972fbd218723a3c15afcb70421f67340f5a6d" },
"onedark.nvim": { "branch": "master", "commit": "fae34f7c635797f4bf62fb00e7d0516efa8abe37" },
"overseer.nvim": { "branch": "master", "commit": "87526babdb563b9e2f0646b420359389732326dc" },
"overseer.nvim": { "branch": "master", "commit": "cbcdcbae3704c21d3ff96a1927d952b8a966b08a" },
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
"rainbow-delimiters.nvim": { "branch": "master", "commit": "b29da4a6061a88270e875b38367d82c04c856128" },
"refactoring.nvim": { "branch": "master", "commit": "1c2b889fd494d7f0f4fcc1b0dacd7e8d4b3d9fbe" },
"rainbow-delimiters.nvim": { "branch": "master", "commit": "f15c67214bc7a4ffbbb9281684cc5b5508af0a67" },
"refactoring.nvim": { "branch": "master", "commit": "87178ab1ace3f81afca47305fcc5c9247f6010d3" },
"ror.nvim": { "branch": "main", "commit": "9d31ad3953be83ac8dd542725ca4881c861f64a5" },
"sniprun": { "branch": "master", "commit": "f2302d4081914c3312456c91dc6965dfeec266b1" },
"tabout.nvim": { "branch": "master", "commit": "3d7fbc7f5e91ef0f96b4d787c78ad9f8820de3ec" },
@@ -84,6 +84,6 @@
"url-open": { "branch": "main", "commit": "9f8f4a56ac709f26aa17d8ef921b272bf2262a30" },
"vim-fugitive": { "branch": "master", "commit": "0444df68cd1cdabc7453d6bd84099458327e5513" },
"vim-rails": { "branch": "master", "commit": "2fba7907f585819a8653f0bc7dd7f437a822d9c6" },
"which-key.nvim": { "branch": "main", "commit": "cc54b75fcbd8703e633f93cb0334fb13e2cfbd7e" },
"which-key.nvim": { "branch": "main", "commit": "c5e799388989fe1b87072d6188719b529d7421c5" },
"zen-mode.nvim": { "branch": "main", "commit": "29b292bdc58b76a6c8f294c961a8bf92c5a6ebd6" }
}
+445 -503
View File
@@ -49,531 +49,473 @@ local setup = {
},
show_help = false,
show_keys = true,
triggers = true,
triggers = {
{ '<auto>', mode = 'nixsotc' },
{ '<leader>', mode = { 'n', 'v' } },
},
}
local i = {
[' '] = 'Whitespace',
['"'] = 'Balanced "',
["'"] = "Balanced '",
['`'] = 'Balanced `',
['('] = 'Balanced (',
[')'] = 'Balanced ) including white-space',
['>'] = 'Balanced > including white-space',
['<lt>'] = 'Balanced <',
[']'] = 'Balanced ] including white-space',
['['] = 'Balanced [',
['}'] = 'Balanced } including white-space',
['{'] = 'Balanced {',
['?'] = 'User Prompt',
_ = 'Underscore',
a = 'Argument',
b = 'Balanced ), ], }',
c = 'Class',
f = 'Function',
o = 'Block, conditional, loop',
q = 'Quote `, ", \'',
t = 'Tag',
}
local a = vim.deepcopy(i)
for k, v in pairs(a) do
a[k] = v:gsub(' including.*', '')
end
local ic = vim.deepcopy(i)
local ac = vim.deepcopy(a)
for key, name in pairs({ n = 'Next', l = 'Last' }) do
i[key] = vim.tbl_extend('force', { name = 'Inside ' .. name .. ' textobject' }, ic)
a[key] = vim.tbl_extend('force', { name = 'Around ' .. name .. ' textobject' }, ac)
end
local opts = {
local n_mappings = {
mode = 'n',
prefix = '<leader>',
buffer = nil,
silent = true,
noremap = true,
nowait = true,
{ '<leader>b', group = ' Debug' },
{ '<leader>bO', '<cmd>DapStepOut<cr>', desc = 'Out' },
{ '<leader>bR', '<cmd>DapRestartFrame<cr>', desc = 'Restart Frame' },
{ '<leader>bb', '<cmd>DapToggleBreakpoint<cr>', desc = 'Breakpoint' },
{ '<leader>bc', '<cmd>DapContinue<cr>', desc = 'Continue' },
{ '<leader>bi', '<cmd>DapStepInto<cr>', desc = 'Into' },
{ '<leader>bl', "<cmd>lua require'dap'.run_last()<cr>", desc = 'Last' },
{ '<leader>bo', '<cmd>DapStepOver<cr>', desc = 'Over' },
{ '<leader>br', '<cmd>DapToggleRepl<cr>', desc = 'Repl' },
{ '<leader>bt', '<cmd>DapUIToggle<cr>', desc = 'Debugger' },
{ '<leader>bx', '<cmd>DapTerminate<cr>', desc = 'Exit' },
{ '<leader>c', group = ' Code' },
{ '<leader>cF', '<cmd>retab<cr>', desc = 'Fix Tabs' },
{ '<leader>cP', '<cmd>CccConvert<cr>', desc = 'Convert Color' },
{ '<leader>cR', '<cmd>ReloadConfig<cr>', desc = 'Reload Configs' },
{ '<leader>cc', '<cmd>CccHighlighterToggle<cr>', desc = 'Highlight Colors' },
{ '<leader>cd', '<cmd>RootDir<cr>', desc = 'Root Directory' },
{ '<leader>cf', '<cmd>lua vim.lsp.buf.format({async = true})<cr>', desc = 'Format File' },
{ '<leader>ch', '<cmd>Hardtime toggle<cr>', desc = 'Hardtime' },
{ '<leader>cl', '<cmd>:g/^\\s*$/d<cr>', desc = 'Clean Empty Lines' },
{ '<leader>cm', '<cmd>MarkdownPreviewToggle<cr>', desc = 'Markdown Preview' },
{ '<leader>cn', '<cmd>Telescope notify<cr>', desc = 'Notifications' },
{ '<leader>co', '<cmd>Dashboard<cr>', desc = 'Dashboard' },
{ '<leader>cp', '<cmd>CccPick<cr>', desc = 'Pick Color' },
{ '<leader>cr', '<cmd>Telescope reloader<cr>', desc = 'Reload Module' },
{ '<leader>cx', '<cmd>%SnipRun<cr>', desc = 'Run File' },
{ '<leader>d', group = ' Database' },
{ '<leader>dS', '<cmd>lua require("dbee").store("json", "buffer", { extra_arg = 0 })<cr>', desc = 'To JSON' },
{ '<leader>db', '<cmd>DBToggle<cr>', desc = 'DB Explorer' },
{ '<leader>dj', '<cmd>lua require("dbee").next()<cr>', desc = 'DB Next' },
{ '<leader>dk', '<cmd>lua require("dbee").prev()<cr>', desc = 'DB Prev' },
{ '<leader>ds', '<cmd>lua require("dbee").store("csv", "buffer", { extra_arg = 0 })<cr>', desc = 'To CSV' },
{ '<leader>dt', '<cmd>lua require("dbee").store("table", "buffer", { extra_arg = 0 })<cr>', desc = 'To Table' },
{ '<leader>e', group = ' Edit' },
{ '<leader>ea', '<cmd>b#<cr>', desc = 'Alternate File' },
{ '<leader>ec', '<cmd>e $MYVIMRC<cr>', desc = 'Config' },
{
'<leader>ed',
'<cmd>lua require("telescope.builtin").find_files({cwd = vim.fn.stdpath("config")})<cr>',
desc = 'Config Dir',
},
{ '<leader>ee', '<cmd>NvimTreeToggle<cr>', desc = 'Explorer' },
{ '<leader>ef', 'gf', desc = 'File Under Cursor' },
{ '<leader>el', '<cmd>e ~/.config/shell/local.sh<cr>', desc = 'Local Config' },
{ '<leader>em', '<cmd>e README.md<cr>', desc = 'Readme' },
{ '<leader>en', '<cmd>enew<cr>', desc = 'New File' },
{ '<leader>ez', '<cmd>e $ZDOTDIR/.zshrc<cr>', desc = 'Zsh Config' },
{ '<leader>f', group = ' Find' },
{ '<leader>fa', '<cmd>lua require("telescope").extensions.menufacture.find_files()<cr>', desc = 'All Files' },
{ '<leader>fb', '<cmd>Telescope buffers<cr>', desc = 'Buffers' },
{ '<leader>fc', '<cmd>Telescope git_bcommits<cr>', desc = 'File Commits' },
{ '<leader>ff', '<cmd>lua require("telescope").extensions.menufacture.git_files()<cr>', desc = 'Find files' },
{ '<leader>fg', '<cmd>lua require("telescope").extensions.menufacture.live_grep()<cr>', desc = 'Find Text' },
{ '<leader>fl', '<cmd>Telescope loclist<cr>', desc = 'Location List' },
{ '<leader>fm', '<cmd>Telescope git_status<cr>', desc = 'Modified files' },
{ '<leader>fo', '<cmd>Telescope live_grep grep_open_files=true<cr>', desc = 'Find in Open Files' },
{ '<leader>fp', '<cmd>Telescope resume<cr>', desc = 'Last Search' },
{ '<leader>fq', '<cmd>Telescope quickfix<cr>', desc = 'Quickfix' },
{ '<leader>fr', '<cmd>Telescope oldfiles<cr>', desc = 'Recent Files' },
{ '<leader>fs', '<cmd>Telescope current_buffer_fuzzy_find<cr>', desc = 'Fuzzy Find in File' },
{ '<leader>ft', '<cmd>Telescope<cr>', desc = 'Panel' },
{ '<leader>fu', '<cmd>Telescope undo<cr>', desc = 'Undo History' },
{ '<leader>fw', '<cmd>lua require("telescope").extensions.menufacture.grep_string()<cr>', desc = 'Find Word' },
{ '<leader>g', group = ' Git' },
{ '<leader>gA', '<cmd>Gitsigns stage_buffer<cr>', desc = 'Stage Buffer' },
{ '<leader>gC', '<cmd>CoAuthor<cr>', desc = 'Co-Authors' },
{ '<leader>gP', '<cmd>Git push<cr>', desc = 'Push' },
{ '<leader>gR', '<cmd>Gitsigns reset_buffer<cr>', desc = 'Reset Buffer' },
{ '<leader>gS', '<cmd>Telescope git_stash<cr>', desc = 'Stashed Changes' },
{ '<leader>ga', '<cmd>Gitsigns stage_hunk<cr>', desc = 'Stage Hunk' },
{ '<leader>gb', "<cmd>lua require('gitsigns').blame_line({full = true})<cr>", desc = 'Blame' },
{ '<leader>gc', '<cmd>Telescope git_commits<cr>', desc = 'Find Commits' },
{ '<leader>gd', '<cmd>Gitsigns diffthis HEAD<cr>', desc = 'Diff' },
{ '<leader>gf', '<cmd>Git<cr>', desc = 'Fugitive Panel' },
{ '<leader>gg', '<cmd>Fterm lazygit<cr>', desc = 'Lazygit' },
{ '<leader>gi', '<cmd>Gitsigns preview_hunk<cr>', desc = 'Hunk Info' },
{ '<leader>gj', '<cmd>Gitsigns next_hunk<cr>', desc = 'Next Hunk' },
{ '<leader>gk', '<cmd>Gitsigns prev_hunk<cr>', desc = 'Prev Hunk' },
{ '<leader>gl', '<cmd>Git log<cr>', desc = 'Log' },
{ '<leader>gp', '<cmd>Git pull<cr>', desc = 'Pull' },
{ '<leader>gr', '<cmd>Gitsigns reset_hunk<cr>', desc = 'Reset Hunk' },
{ '<leader>gs', '<cmd>Telescope git_branches<cr>', desc = 'Switch Branch' },
{ '<leader>gt', group = 'Toggle' },
{ '<leader>gtb', '<cmd>Gitsigns toggle_current_line_blame<cr>', desc = 'Blame' },
{ '<leader>gtd', '<cmd>Gitsigns toggle_deleted<cr>', desc = 'Deleted' },
{ '<leader>gtl', '<cmd>Gitsigns toggle_linehl<cr>', desc = 'Line HL' },
{ '<leader>gtn', '<cmd>Gitsigns toggle_numhl<cr>', desc = 'Number HL' },
{ '<leader>gts', '<cmd>Gitsigns toggle_signs<cr>', desc = 'Signs' },
{ '<leader>gtw', '<cmd>Gitsigns toggle_word_diff<cr>', desc = 'Word Diff' },
{ '<leader>gu', '<cmd>Gitsigns undo_stage_hunk<cr>', desc = 'Undo Stage Hunk' },
{ '<leader>gv', '<cmd>Gitsigns select_hunk<cr>', desc = 'Select Hunk' },
{ '<leader>h', group = ' Help' },
{ '<leader>hh', '<cmd>Telescope help_tags<cr>', desc = 'Help Pages' },
{ '<leader>hi', 'vim.show_pos', desc = 'Inspect Position' },
{ '<leader>hk', '<cmd>Lspsaga hover_doc<cr>', desc = 'Hover Doc' },
{ '<leader>hm', '<cmd>Telescope man_pages<cr>', desc = 'Man Pages' },
{ '<leader>i', group = ' Insert' },
{ '<leader>iP', '<cmd>put %:p<cr>', desc = 'Absolute Path' },
{ '<leader>id', "<cmd>put =strftime('## %a, %d %b, %Y, %r')<cr>", desc = 'Date' },
{ '<leader>ie', '<cmd>Telescope symbols<cr>', desc = 'Emojis' },
{ '<leader>if', "<cmd>put =expand('%:t')<cr>", desc = 'File Name' },
{ '<leader>in', '<cmd>Nerdy<cr>', desc = 'Nerd Glyphs' },
{ '<leader>ip', '<cmd>put %<cr>', desc = 'Relative Path' },
{ '<leader>ir', '<cmd>Telescope registers<cr>', desc = 'Registers' },
{ '<leader>it', "<cmd>put =strftime('## %r')<cr>", desc = 'Time' },
{ '<leader>j', group = ' Jump' },
{
'<leader>jN',
"<cmd>lua require('flash').jump({search = { forward = false, wrap = false, multi_window = false },})<cr>",
desc = 'Search Backward',
},
{ '<leader>jc', '*', desc = 'Word' },
{ '<leader>jd', '<cmd>FlashDiagnostics<cr>', desc = 'Diagnostics' },
{ '<leader>jf', '<cmd>Telescope jumplist<cr>', desc = 'Jumplist' },
{ '<leader>jh', '<C-o>', desc = 'Backward' },
{ '<leader>jj', "<cmd>lua require('flash').remote()<cr>", desc = 'Remote' },
{ '<leader>jk', "<cmd>lua require('flash').treesitter()<cr>", desc = 'Treesitter' },
{ '<leader>jl', '<C-i>', desc = 'Forward' },
{
'<leader>jn',
"<cmd>lua require('flash').jump({search = { forward = true, wrap = false, multi_window = false },})<cr>",
desc = 'Search Forward',
},
{ '<leader>jp', "<cmd>lua require('flash').jump({continue = true})<cr>", desc = 'Previous Jump' },
{ '<leader>js', "<cmd>lua require('flash').jump()<cr>", desc = 'Search' },
{ '<leader>jt', "<cmd>lua require('flash').treesitter_search()<cr>", desc = 'Remote Treesitter' },
{
'<leader>jw',
'<cmd>lua require("flash").jump({ pattern = vim.fn.expand("<cword>")})<cr>',
desc = 'Current Word',
},
{ '<leader>k', group = ' Keys' },
{ '<leader>kc', '<cmd>Telescope commands<cr>', desc = 'Commands' },
{ '<leader>kh', '<cmd>Telescope command_history<cr>', desc = 'Command History' },
{ '<leader>kk', '<cmd>Telescope keymaps<cr>', desc = 'Keymaps' },
{ '<leader>ks', '<cmd>Telescope search_history<cr>', desc = 'Search History' },
{ '<leader>l', group = ' LSP' },
{ '<leader>lF', '<cmd>Telescope lsp_references layout_strategy=vertical<cr>', desc = 'References' },
{ '<leader>lL', '<cmd>Lspsaga show_workspace_diagnostics<cr>', desc = 'Workspace Diagnostics' },
{ '<leader>lP', '<cmd>Telescope lsp_outgoing_calls<cr>', desc = 'Outgoing Calls' },
{ '<leader>lQ', '<cmd>LspRestart<cr>', desc = 'Restart LSP' },
{ '<leader>lR', '<cmd>Lspsaga project_replace<cr>', desc = 'Replace' },
{ '<leader>lS', '<cmd>Telescope lsp_dynamic_workspace_symbols<cr>', desc = 'Workspace Symbols' },
{ '<leader>lT', '<cmd>Lspsaga goto_type_definition<cr>', desc = 'Goto Type Definition' },
{ '<leader>la', '<cmd>Lspsaga code_action<cr>', desc = 'Code Action' },
{ '<leader>ld', '<cmd>Lspsaga peek_definition<cr>', desc = 'Peek Definition' },
{ '<leader>lf', '<cmd>Lspsaga finder<cr>', desc = 'Finder' },
{ '<leader>lg', '<cmd>Lspsaga goto_definition<cr>', desc = 'Goto Definition' },
{ '<leader>lh', '<cmd>Lspsaga hover_doc<cr>', desc = 'Hover' },
{ '<leader>li', '<cmd>LspInfo<cr>', desc = 'LSP Info' },
{ '<leader>lj', '<cmd>Lspsaga diagnostic_jump_next<cr>', desc = 'Next Diagnostic' },
{ '<leader>lk', '<cmd>Lspsaga diagnostic_jump_prev<cr>', desc = 'Prev Diagnostic' },
{ '<leader>ll', '<cmd>Telescope diagnostics layout_strategy=vertical<cr>', desc = 'File Diagnostics' },
{ '<leader>lo', '<cmd>Lspsaga outline<cr>', desc = 'Outline' },
{ '<leader>lp', '<cmd>Telescope lsp_incoming_calls<cr>', desc = 'Incoming Calls' },
{ '<leader>lq', '<cmd>LspStop<cr>', desc = 'Stop LSP' },
{ '<leader>lr', '<cmd>Lspsaga rename<cr>', desc = 'Rename' },
{ '<leader>ls', '<cmd>Telescope lsp_document_symbols theme=get_ivy<cr>', desc = 'Document Symbols' },
{ '<leader>lt', '<cmd>Lspsaga peek_type_definition<cr>', desc = 'Peek Type Definition' },
{ '<leader>m', group = ' Marks' },
{ '<leader>m1', "<cmd>lua require('marks').toggle_bookmark1()<cr>", desc = 'Toggle Bookmark 0' },
{ '<leader>m2', "<cmd>lua require('marks').toggle_bookmark2()<cr>", desc = 'Toggle Bookmark 2' },
{ '<leader>m3', "<cmd>lua require('marks').toggle_bookmark3()<cr>", desc = 'Toggle Bookmark 3' },
{ '<leader>m4', "<cmd>lua require('marks').toggle_bookmark4()<cr>", desc = 'Toggle Bookmark 4' },
{ '<leader>mD', "<cmd>lua require('marks').delete_buf()<cr>", desc = 'Delete Buffer' },
{ '<leader>mP', "<cmd>lua require('marks').preview()<cr>", desc = 'Preview' },
{
'<leader>mb',
"<cmd>lua require('telescope').extensions.marks_nvim.bookmarks_list_all()<cr>",
desc = 'Bookmarks',
},
{ '<leader>md', "<cmd>lua require('marks').delete_line()<cr>", desc = 'Delete Line' },
{ '<leader>mh', "<cmd>lua require('marks').next_bookmark()<cr>", desc = 'Next Bookmark' },
{ '<leader>mj', "<cmd>lua require('marks').next()<cr>", desc = 'Next' },
{ '<leader>mk', "<cmd>lua require('marks').prev()<cr>", desc = 'Previous' },
{ '<leader>ml', "<cmd>lua require('marks').prev_bookmark()<cr>", desc = 'Previous Bookmark' },
{ '<leader>mm', '<cmd>Telescope marks<cr>', desc = 'All Marks' },
{ '<leader>mn', group = 'Next Bookmark Group' },
{ '<leader>mn1', "<cmd>lua require('marks').next_bookmark1()<cr>", desc = 'Next Bookmark 1' },
{ '<leader>mn2', "<cmd>lua require('marks').next_bookmark2()<cr>", desc = 'Next Bookmark 2' },
{ '<leader>mn3', "<cmd>lua require('marks').next_bookmark3()<cr>", desc = 'Next Bookmark 3' },
{ '<leader>mn4', "<cmd>lua require('marks').next_bookmark4()<cr>", desc = 'Next Bookmark 4' },
{ '<leader>mp', group = 'Previous Bookmark Group' },
{ '<leader>mp1', "<cmd>lua require('marks').prev_bookmark1()<cr>", desc = 'Previous Bookmark 1' },
{ '<leader>mp2', "<cmd>lua require('marks').prev_bookmark2()<cr>", desc = 'Previous Bookmark 2' },
{ '<leader>mp3', "<cmd>lua require('marks').prev_bookmark3()<cr>", desc = 'Previous Bookmark 3' },
{ '<leader>mp4', "<cmd>lua require('marks').prev_bookmark4()<cr>", desc = 'Previous Bookmark 4' },
{ '<leader>ms', "<cmd>lua require('marks').set_next()<cr>", desc = 'Set Next' },
{ '<leader>mt', "<cmd>lua require('marks').toggle()<cr>", desc = 'Toggle' },
{ '<leader>mx', "<cmd>lua require('marks').delete_bookmark()<cr>", desc = 'Delete Bookmark' },
{ '<leader>n', group = ' Notes' },
{ '<leader>nd', '<cmd>Tdo<cr>', desc = "Today's Todo" },
{ '<leader>ne', '<cmd>TdoEntry<cr>', desc = "Today's Entry" },
{ '<leader>nf', '<cmd>TdoFiles<cr>', desc = 'All Notes' },
{ '<leader>ng', '<cmd>TdoFind<cr>', desc = 'Find Notes' },
{ '<leader>nh', '<cmd>Tdo -1<cr>', desc = "Yesterday's Todo" },
{ '<leader>nl', '<cmd>Tdo 1<cr>', desc = "Tomorrow's Todo" },
{ '<leader>nn', '<cmd>TdoNote<cr>', desc = 'New Note' },
{
'<leader>ns',
'<cmd>lua require("tdo").run_with("commit " .. vim.fn.expand("%:p")) vim.notify("Committed!")<cr>',
desc = 'Commit Note',
},
{ '<leader>nt', '<cmd>TdoTodos<cr>', desc = 'Incomplete Todos' },
{ '<leader>nx', '<cmd>TdoToggle<cr>', desc = 'Toggle Todo' },
{ '<leader>o', group = ' Options' },
{ '<leader>oc', '<cmd>Telescope colorscheme<cr>', desc = 'Colorscheme' },
{ '<leader>oh', '<cmd>Telescope highlights<cr>', desc = 'Highlight Colors' },
{ '<leader>on', '<cmd>set relativenumber!<cr>', desc = 'Relative Numbers' },
{ '<leader>oo', '<cmd>Telescope vim_options<cr>', desc = 'All Options' },
{ '<leader>p', group = ' Packages' },
{ '<leader>pP', '<cmd>Lazy profile<cr>', desc = 'Profile' },
{ '<leader>pc', '<cmd>Lazy check<cr>', desc = 'Check' },
{ '<leader>pd', '<cmd>Lazy debug<cr>', desc = 'Debug' },
{ '<leader>pi', '<cmd>Lazy install<cr>', desc = 'Install' },
{ '<leader>pl', '<cmd>Lazy log<cr>', desc = 'Log' },
{ '<leader>pm', '<cmd>Mason<cr>', desc = 'Mason' },
{ '<leader>pp', '<cmd>Lazy<cr>', desc = 'Plugins' },
{ '<leader>pr', '<cmd>Lazy restore<cr>', desc = 'Restore' },
{ '<leader>ps', '<cmd>Lazy sync<cr>', desc = 'Sync' },
{ '<leader>pu', '<cmd>Lazy update<cr>', desc = 'Update' },
{ '<leader>px', '<cmd>Lazy clean<cr>', desc = 'Clean' },
{ '<leader>q', group = ' Quit' },
{ '<leader>qa', '<cmd>qall<cr>', desc = 'Quit All' },
{ '<leader>qb', '<cmd>bw<cr>', desc = 'Close Buffer' },
{ '<leader>qd', '<cmd>bdelete<cr>', desc = 'Delete Buffer' },
{ '<leader>qf', '<cmd>qall!<cr>', desc = 'Force Quit' },
{ '<leader>qq', '<cmd>q<cr>', desc = 'Quit' },
{ '<leader>qs', '<C-w>c', desc = 'Close Split' },
{ '<leader>qw', '<cmd>wq<cr>', desc = 'Write and Quit' },
{ '<leader>r', group = ' Refactor' },
{
'<leader>rR',
"<Esc><cmd>lua require('telescope').extensions.refactoring.refactors()<CR>",
desc = 'Refactor Commands',
},
{ '<leader>rS', "<cmd>lua require('spectre').open()<cr>", desc = 'Replace' },
{ '<leader>rb', "<cmd>lua require('spectre').open_file_search()<cr>", desc = 'Replace Buffer' },
{ '<leader>rd', '', desc = 'Go To Definition' },
{ '<leader>re', "<cmd>lua require('refactoring').refactor('Extract Block')<CR>", desc = 'Extract Block' },
{
'<leader>rf',
"<cmd>lua require('refactoring').refactor('Extract Block To File')<CR>",
desc = 'Extract To File',
},
{ '<leader>rh', '', desc = 'List Definition Head' },
{ '<leader>ri', "<cmd>lua require('refactoring').refactor('Inline Variable')<CR>", desc = 'Inline Variable' },
{ '<leader>rj', '', desc = 'Next Usage' },
{ '<leader>rk', '', desc = 'Previous Usage' },
{ '<leader>rl', '', desc = 'List Definition' },
{ '<leader>rn', '', desc = 'Swap Next' },
{ '<leader>rp', '', desc = 'Swap Previous' },
{ '<leader>rr', '', desc = 'Smart Rename' },
{ '<leader>rs', ':%s/\\<<C-r><C-w>\\>/<C-r><C-w>/gI<Left><Left><Left>', desc = 'Replace Word' },
{ '<leader>rv', "<cmd>lua require('refactoring').refactor('Extract Variable')<CR>", desc = 'Extract Variable' },
{ '<leader>rw', "<cmd>lua require('spectre').open_visual({select_word=true})<cr>", desc = 'Replace Word' },
{ '<leader>s', group = ' Split' },
{ '<leader>s+', '<cmd>resize +10<cr>', desc = 'Increase window height' },
{ '<leader>s-', '<cmd>vertical resize -20<cr>', desc = 'Decrease window width' },
{ '<leader>s/', '<C-w>s', desc = 'Split Below' },
{ '<leader>s=', '<cmd>vertical resize +20<cr>', desc = 'Increase window width' },
{ '<leader>sH', '<cmd>vertical resize -10<cr>', desc = 'Decrease window width' },
{ '<leader>sJ', '<cmd>resize -5<cr>', desc = 'Decrease window height' },
{ '<leader>sK', '<cmd>resize +5<cr>', desc = 'Increase window height' },
{ '<leader>sL', '<cmd>vertical resize +10<cr>', desc = 'Increase window width' },
{ '<leader>s\\', '<C-w>v', desc = 'Split Right' },
{ '<leader>s_', '<cmd>resize -10<cr>', desc = 'Decrease window height' },
{ '<leader>s`', '<C-w>p', desc = 'Previous Window' },
{ '<leader>sa', '<cmd>split<cr>', desc = 'Horizontal Split' },
{ '<leader>sc', '<cmd>tabclose<cr>', desc = 'Close Tab' },
{ '<leader>sf', '<cmd>tabfirst<cr>', desc = 'First Tab' },
{ '<leader>sh', '<C-w>h', desc = 'Move Left' },
{ '<leader>sj', '<C-w>j', desc = 'Move Down' },
{ '<leader>sk', '<C-w>k', desc = 'Move Up' },
{ '<leader>sl', '<C-w>l', desc = 'Move Right' },
{ '<leader>sp', '<cmd>NavigatorPrevious<cr>', desc = 'Previous Pane' },
{ '<leader>sq', '<C-w>c', desc = 'Close Split' },
{ '<leader>ss', '<cmd>vsplit<cr>', desc = 'Vertical Split' },
{ '<leader>t', group = ' Terminal' },
{ '<leader>t`', '<cmd>Sterm<cr>', desc = 'Horizontal Terminal' },
{ '<leader>tc', '<cmd>Sterm bundle exec rails console<cr>', desc = 'Rails Console' },
{ '<leader>td', '<cmd>Sterm dexe<cr>', desc = 'Exe Launcher' },
{ '<leader>tn', '<cmd>Sterm node<cr>', desc = 'Node' },
{ '<leader>tp', '<cmd>Sterm bpython<cr>', desc = 'Python' },
{ '<leader>tr', '<cmd>Sterm irb<cr>', desc = 'Ruby' },
{ '<leader>ts', '<cmd>Sterm<cr>', desc = 'Horizontal Terminal' },
{ '<leader>tt', '<cmd>Fterm<cr>', desc = 'Terminal' },
{ '<leader>tv', '<cmd>Vterm<cr>', desc = 'Vertical Terminal' },
{ '<leader>tw', '<cmd>Sterm dexe --wait-before-exit<cr>', desc = 'Exe Launcher, Wait' },
{ '<leader>u', group = ' Test' },
{ '<leader>uc', '<cmd>lua require("neotest").run.run()<cr>', desc = 'Run Current Test' },
{ '<leader>uf', '<cmd>lua require("neotest").run.run(vim.fn.expand("%"))<cr>', desc = 'Run Test File' },
{ '<leader>uo', '<cmd>Neotest output-panel<cr>', desc = 'Test Output' },
{ '<leader>us', '<cmd>Neotest summary<cr>', desc = 'Test Summary' },
{ '<leader>v', group = ' Select' },
{ '<leader>vB', 'vab', desc = 'Around Bracket' },
{ '<leader>vP', 'vap', desc = 'Around Para' },
{ '<leader>vQ', 'vaq', desc = 'Around Quote' },
{ '<leader>vb', 'vib', desc = 'Bracket' },
{ '<leader>vp', 'vip', desc = 'Paragraph' },
{ '<leader>vq', 'viq', desc = 'Quote' },
{ '<leader>w', group = ' Writing' },
{ '<leader>wc', '<cmd>set spell!<cr>', desc = 'Spellcheck' },
{ '<leader>wf', "<cmd>lua require'utils'.sudo_write()<cr>", desc = 'Force Write' },
{ '<leader>wj', ']s', desc = 'Next Misspell' },
{ '<leader>wk', '[s', desc = 'Prev Misspell' },
{ '<leader>wq', '<cmd>wq<cr>', desc = 'Write and Quit' },
{ '<leader>ws', '<cmd>Telescope spell_suggest<cr>', desc = 'Suggestions' },
{ '<leader>wt', '<cmd>Twilight<cr>', desc = 'Twilight' },
{ '<leader>ww', '<cmd>w<cr>', desc = 'Write and Quit' },
{ '<leader>wz', '<cmd>ZenMode<cr>', desc = 'ZenMode' },
{ '<leader>x', '<cmd>x<cr>', desc = ' Save and Quit' },
{ '<leader>y', group = ' Yank' },
{ '<leader>yP', '<cmd>CopyAbsolutePath<cr>', desc = 'Absolute Path' },
{ '<leader>ya', '<cmd>%y+<cr>', desc = 'Copy Whole File' },
{ '<leader>yf', '<cmd>CopyFileName<cr>', desc = 'File Name' },
{ '<leader>yg', '<cmd>lua require"gitlinker".get_buf_range_url()<cr>', desc = 'Copy Git URL' },
{ '<leader>yp', '<cmd>CopyRelativePath<cr>', desc = 'Relative Path' },
}
local mappings = {
b = {
name = icons.ui.Bug .. 'Debug',
b = { '<cmd>DapToggleBreakpoint<cr>', 'Breakpoint' },
c = { '<cmd>DapContinue<cr>', 'Continue' },
i = { '<cmd>DapStepInto<cr>', 'Into' },
l = { "<cmd>lua require'dap'.run_last()<cr>", 'Last' },
o = { '<cmd>DapStepOver<cr>', 'Over' },
O = { '<cmd>DapStepOut<cr>', 'Out' },
r = { '<cmd>DapToggleRepl<cr>', 'Repl' },
R = { '<cmd>DapRestartFrame<cr>', 'Restart Frame' },
t = { '<cmd>DapUIToggle<cr>', 'Debugger' },
x = { '<cmd>DapTerminate<cr>', 'Exit' },
},
c = {
name = icons.ui.Neovim .. 'Code',
c = { '<cmd>CccHighlighterToggle<cr>', 'Highlight Colors' },
d = { '<cmd>RootDir<cr>', 'Root Directory' },
f = { '<cmd>lua vim.lsp.buf.format({async = true})<cr>', 'Format File' },
F = { '<cmd>retab<cr>', 'Fix Tabs' },
h = { '<cmd>Hardtime toggle<cr>', 'Hardtime' },
l = { '<cmd>:g/^\\s*$/d<cr>', 'Clean Empty Lines' },
m = { '<cmd>MarkdownPreviewToggle<cr>', 'Markdown Preview' },
n = { '<cmd>Telescope notify<cr>', 'Notifications' },
o = { '<cmd>Dashboard<cr>', 'Dashboard' },
p = { '<cmd>CccPick<cr>', 'Pick Color' },
P = { '<cmd>CccConvert<cr>', 'Convert Color' },
r = { '<cmd>Telescope reloader<cr>', 'Reload Module' },
R = { '<cmd>ReloadConfig<cr>', 'Reload Configs' },
x = { '<cmd>%SnipRun<cr>', 'Run File' },
},
d = {
name = icons.ui.Database .. 'Database',
b = { '<cmd>DBToggle<cr>', 'DB Explorer' },
j = { '<cmd>lua require("dbee").next()<cr>', 'DB Next' },
k = { '<cmd>lua require("dbee").prev()<cr>', 'DB Prev' },
s = { '<cmd>lua require("dbee").store("csv", "buffer", { extra_arg = 0 })<cr>', 'To CSV' },
S = { '<cmd>lua require("dbee").store("json", "buffer", { extra_arg = 0 })<cr>', 'To JSON' },
t = { '<cmd>lua require("dbee").store("table", "buffer", { extra_arg = 0 })<cr>', 'To Table' },
},
e = {
name = icons.ui.Pencil .. 'Edit',
a = { '<cmd>b#<cr>', 'Alternate File' },
c = { '<cmd>e $MYVIMRC<cr>', 'Config' },
d = { '<cmd>lua require("telescope.builtin").find_files({cwd = vim.fn.stdpath("config")})<cr>', 'Config Dir' },
e = { '<cmd>NvimTreeToggle<cr>', 'Explorer' },
f = { 'gf', 'File Under Cursor' },
l = { '<cmd>e ~/.config/shell/local.sh<cr>', 'Local Config' },
m = { '<cmd>e README.md<cr>', 'Readme' },
n = { '<cmd>enew<cr>', 'New File' },
z = { '<cmd>e $ZDOTDIR/.zshrc<cr>', 'Zsh Config' },
},
f = {
name = icons.ui.Telescope .. 'Find',
a = { '<cmd>lua require("telescope").extensions.menufacture.find_files()<cr>', 'All Files' },
b = { '<cmd>Telescope buffers<cr>', 'Buffers' },
c = { '<cmd>Telescope git_bcommits<cr>', 'File Commits' },
f = { '<cmd>lua require("telescope").extensions.menufacture.git_files()<cr>', 'Find files' },
g = { '<cmd>lua require("telescope").extensions.menufacture.live_grep()<cr>', 'Find Text' },
l = { '<cmd>Telescope loclist<cr>', 'Location List' },
m = { '<cmd>Telescope git_status<cr>', 'Modified files' },
o = { '<cmd>Telescope live_grep grep_open_files=true<cr>', 'Find in Open Files' },
p = { '<cmd>Telescope resume<cr>', 'Last Search' },
q = { '<cmd>Telescope quickfix<cr>', 'Quickfix' },
r = { '<cmd>Telescope oldfiles<cr>', 'Recent Files' },
s = { '<cmd>Telescope current_buffer_fuzzy_find<cr>', 'Fuzzy Find in File' },
t = { '<cmd>Telescope<cr>', 'Panel' },
u = { '<cmd>Telescope undo<cr>', 'Undo History' },
w = { '<cmd>lua require("telescope").extensions.menufacture.grep_string()<cr>', 'Find Word' },
},
g = {
name = icons.git.Octoface .. 'Git',
a = { '<cmd>Gitsigns stage_hunk<cr>', 'Stage Hunk' },
A = { '<cmd>Gitsigns stage_buffer<cr>', 'Stage Buffer' },
b = { "<cmd>lua require('gitsigns').blame_line({full = true})<cr>", 'Blame' },
c = { '<cmd>Telescope git_commits<cr>', 'Find Commits' },
C = { '<cmd>CoAuthor<cr>', 'Co-Authors' },
d = { '<cmd>Gitsigns diffthis HEAD<cr>', 'Diff' },
f = { '<cmd>Git<cr>', 'Fugitive Panel' },
g = { '<cmd>Fterm lazygit<cr>', 'Lazygit' },
i = { '<cmd>Gitsigns preview_hunk<cr>', 'Hunk Info' },
j = { '<cmd>Gitsigns next_hunk<cr>', 'Next Hunk' },
k = { '<cmd>Gitsigns prev_hunk<cr>', 'Prev Hunk' },
l = { '<cmd>Git log<cr>', 'Log' },
p = { '<cmd>Git pull<cr>', 'Pull' },
P = { '<cmd>Git push<cr>', 'Push' },
r = { '<cmd>Gitsigns reset_hunk<cr>', 'Reset Hunk' },
R = { '<cmd>Gitsigns reset_buffer<cr>', 'Reset Buffer' },
s = { '<cmd>Telescope git_branches<cr>', 'Switch Branch' },
S = { '<cmd>Telescope git_stash<cr>', 'Stashed Changes' },
t = {
name = 'Toggle',
b = { '<cmd>Gitsigns toggle_current_line_blame<cr>', 'Blame' },
d = { '<cmd>Gitsigns toggle_deleted<cr>', 'Deleted' },
l = { '<cmd>Gitsigns toggle_linehl<cr>', 'Line HL' },
n = { '<cmd>Gitsigns toggle_numhl<cr>', 'Number HL' },
s = { '<cmd>Gitsigns toggle_signs<cr>', 'Signs' },
w = { '<cmd>Gitsigns toggle_word_diff<cr>', 'Word Diff' },
},
u = { '<cmd>Gitsigns undo_stage_hunk<cr>', 'Undo Stage Hunk' },
v = { '<cmd>Gitsigns select_hunk<cr>', 'Select Hunk' },
},
h = {
name = icons.ui.Question .. 'Help',
h = { '<cmd>Telescope help_tags<cr>', 'Help Pages' },
i = { vim.show_pos, 'Inspect Position' },
k = { '<cmd>Lspsaga hover_doc<cr>', 'Hover Doc' },
m = { '<cmd>Telescope man_pages<cr>', 'Man Pages' },
},
i = {
name = icons.ui.Download .. 'Insert',
d = { "<cmd>put =strftime('## %a, %d %b, %Y, %r')<cr>", 'Date' },
e = { '<cmd>Telescope symbols<cr>', 'Emojis' },
f = { "<cmd>put =expand('%:t')<cr>", 'File Name' },
n = { '<cmd>Nerdy<cr>', 'Nerd Glyphs' },
P = { '<cmd>put %:p<cr>', 'Absolute Path' },
p = { '<cmd>put %<cr>', 'Relative Path' },
r = { '<cmd>Telescope registers<cr>', 'Registers' },
t = { "<cmd>put =strftime('## %r')<cr>", 'Time' },
},
j = {
name = icons.ui.Jump .. 'Jump',
c = { '*', 'Word' },
d = { '<cmd>FlashDiagnostics<cr>', 'Diagnostics' },
f = { '<cmd>Telescope jumplist<cr>', 'Jumplist' },
h = { '<C-o>', 'Backward' },
j = { "<cmd>lua require('flash').remote()<cr>", 'Remote' },
k = { "<cmd>lua require('flash').treesitter()<cr>", 'Treesitter' },
l = { '<C-i>', 'Forward' },
n = {
"<cmd>lua require('flash').jump({search = { forward = true, wrap = false, multi_window = false },})<cr>",
'Search Forward',
},
N = {
"<cmd>lua require('flash').jump({search = { forward = false, wrap = false, multi_window = false },})<cr>",
'Search Backward',
},
p = { "<cmd>lua require('flash').jump({continue = true})<cr>", 'Previous Jump' },
s = { "<cmd>lua require('flash').jump()<cr>", 'Search' },
t = { "<cmd>lua require('flash').treesitter_search()<cr>", 'Remote Treesitter' },
w = { '<cmd>lua require("flash").jump({ pattern = vim.fn.expand("<cword>")})<cr>', 'Current Word' },
},
k = {
name = icons.ui.Keyboard .. 'Keys',
c = { '<cmd>Telescope commands<cr>', 'Commands' },
h = { '<cmd>Telescope command_history<cr>', 'Command History' },
k = { '<cmd>Telescope keymaps<cr>', 'Keymaps' },
s = { '<cmd>Telescope search_history<cr>', 'Search History' },
},
l = {
name = icons.kind.TypeParameter .. 'LSP',
a = { '<cmd>Lspsaga code_action<cr>', 'Code Action' },
d = { '<cmd>Lspsaga peek_definition<cr>', 'Peek Definition' },
f = { '<cmd>Lspsaga finder<cr>', 'Finder' },
F = { '<cmd>Telescope lsp_references layout_strategy=vertical<cr>', 'References' },
g = { '<cmd>Lspsaga goto_definition<cr>', 'Goto Definition' },
h = { '<cmd>Lspsaga hover_doc<cr>', 'Hover' },
i = { '<cmd>LspInfo<cr>', 'LSP Info' },
j = { '<cmd>Lspsaga diagnostic_jump_next<cr>', 'Next Diagnostic' },
k = { '<cmd>Lspsaga diagnostic_jump_prev<cr>', 'Prev Diagnostic' },
L = { '<cmd>Lspsaga show_workspace_diagnostics<cr>', 'Workspace Diagnostics' },
l = { '<cmd>Telescope diagnostics layout_strategy=vertical<cr>', 'File Diagnostics' },
o = { '<cmd>Lspsaga outline<cr>', 'Outline' },
p = { '<cmd>Telescope lsp_incoming_calls<cr>', 'Incoming Calls' },
P = { '<cmd>Telescope lsp_outgoing_calls<cr>', 'Outgoing Calls' },
q = { '<cmd>LspStop<cr>', 'Stop LSP' },
Q = { '<cmd>LspRestart<cr>', 'Restart LSP' },
R = { '<cmd>Lspsaga project_replace<cr>', 'Replace' },
r = { '<cmd>Lspsaga rename<cr>', 'Rename' },
s = { '<cmd>Telescope lsp_document_symbols theme=get_ivy<cr>', 'Document Symbols' },
S = { '<cmd>Telescope lsp_dynamic_workspace_symbols<cr>', 'Workspace Symbols' },
T = { '<cmd>Lspsaga goto_type_definition<cr>', 'Goto Type Definition' },
t = { '<cmd>Lspsaga peek_type_definition<cr>', 'Peek Type Definition' },
},
m = {
name = icons.ui.Bookmark .. 'Marks',
b = { "<cmd>lua require('telescope').extensions.marks_nvim.bookmarks_list_all()<cr>", 'Bookmarks' },
d = { "<cmd>lua require('marks').delete_line()<cr>", 'Delete Line' },
D = { "<cmd>lua require('marks').delete_buf()<cr>", 'Delete Buffer' },
h = { "<cmd>lua require('marks').next_bookmark()<cr>", 'Next Bookmark' },
j = { "<cmd>lua require('marks').next()<cr>", 'Next' },
k = { "<cmd>lua require('marks').prev()<cr>", 'Previous' },
l = { "<cmd>lua require('marks').prev_bookmark()<cr>", 'Previous Bookmark' },
m = { '<cmd>Telescope marks<cr>', 'All Marks' },
P = { "<cmd>lua require('marks').preview()<cr>", 'Preview' },
s = { "<cmd>lua require('marks').set_next()<cr>", 'Set Next' },
t = { "<cmd>lua require('marks').toggle()<cr>", 'Toggle' },
x = { "<cmd>lua require('marks').delete_bookmark()<cr>", 'Delete Bookmark' },
['1'] = { "<cmd>lua require('marks').toggle_bookmark1()<cr>", 'Toggle Bookmark 0' },
['2'] = { "<cmd>lua require('marks').toggle_bookmark2()<cr>", 'Toggle Bookmark 2' },
['3'] = { "<cmd>lua require('marks').toggle_bookmark3()<cr>", 'Toggle Bookmark 3' },
['4'] = { "<cmd>lua require('marks').toggle_bookmark4()<cr>", 'Toggle Bookmark 4' },
n = {
name = 'Next Bookmark Group',
['1'] = { "<cmd>lua require('marks').next_bookmark1()<cr>", 'Next Bookmark 1' },
['2'] = { "<cmd>lua require('marks').next_bookmark2()<cr>", 'Next Bookmark 2' },
['3'] = { "<cmd>lua require('marks').next_bookmark3()<cr>", 'Next Bookmark 3' },
['4'] = { "<cmd>lua require('marks').next_bookmark4()<cr>", 'Next Bookmark 4' },
},
p = {
name = 'Previous Bookmark Group',
['1'] = { "<cmd>lua require('marks').prev_bookmark1()<cr>", 'Previous Bookmark 1' },
['2'] = { "<cmd>lua require('marks').prev_bookmark2()<cr>", 'Previous Bookmark 2' },
['3'] = { "<cmd>lua require('marks').prev_bookmark3()<cr>", 'Previous Bookmark 3' },
['4'] = { "<cmd>lua require('marks').prev_bookmark4()<cr>", 'Previous Bookmark 4' },
},
},
n = {
name = icons.ui.Note .. 'Notes',
d = { '<cmd>Tdo<cr>', "Today's Todo" },
e = { '<cmd>TdoEntry<cr>', "Today's Entry" },
f = { '<cmd>TdoFiles<cr>', 'All Notes' },
g = { '<cmd>TdoFind<cr>', 'Find Notes' },
h = { '<cmd>Tdo -1<cr>', "Yesterday's Todo" },
l = { '<cmd>Tdo 1<cr>', "Tomorrow's Todo" },
n = { '<cmd>TdoNote<cr>', 'New Note' },
s = {
'<cmd>lua require("tdo").run_with("commit " .. vim.fn.expand("%:p")) vim.notify("Committed!")<cr>',
'Commit Note',
},
t = { '<cmd>TdoTodos<cr>', 'Incomplete Todos' },
x = { '<cmd>TdoToggle<cr>', 'Toggle Todo' },
},
o = {
name = icons.ui.Gear .. 'Options',
c = { '<cmd>Telescope colorscheme<cr>', 'Colorscheme' },
h = { '<cmd>Telescope highlights<cr>', 'Highlight Colors' },
n = { '<cmd>set relativenumber!<cr>', 'Relative Numbers' },
o = { '<cmd>Telescope vim_options<cr>', 'All Options' },
},
p = {
name = icons.ui.Package .. 'Packages',
c = { '<cmd>Lazy check<cr>', 'Check' },
d = { '<cmd>Lazy debug<cr>', 'Debug' },
i = { '<cmd>Lazy install<cr>', 'Install' },
l = { '<cmd>Lazy log<cr>', 'Log' },
m = { '<cmd>Mason<cr>', 'Mason' },
P = { '<cmd>Lazy profile<cr>', 'Profile' },
p = { '<cmd>Lazy<cr>', 'Plugins' },
r = { '<cmd>Lazy restore<cr>', 'Restore' },
s = { '<cmd>Lazy sync<cr>', 'Sync' },
u = { '<cmd>Lazy update<cr>', 'Update' },
x = { '<cmd>Lazy clean<cr>', 'Clean' },
},
q = {
name = icons.ui.Close .. 'Quit',
a = { '<cmd>qall<cr>', 'Quit All' },
b = { '<cmd>bw<cr>', 'Close Buffer' },
d = { '<cmd>bdelete<cr>', 'Delete Buffer' },
f = { '<cmd>qall!<cr>', 'Force Quit' },
q = { '<cmd>q<cr>', 'Quit' },
s = { '<C-w>c', 'Close Split' },
w = { '<cmd>wq<cr>', 'Write and Quit' },
},
r = {
name = icons.ui.Code .. 'Refactor',
b = { "<cmd>lua require('spectre').open_file_search()<cr>", 'Replace Buffer' },
d = { '', 'Go To Definition' },
e = { "<cmd>lua require('refactoring').refactor('Extract Block')<CR>", 'Extract Block' },
f = { "<cmd>lua require('refactoring').refactor('Extract Block To File')<CR>", 'Extract To File' },
h = { '', 'List Definition Head' },
i = { "<cmd>lua require('refactoring').refactor('Inline Variable')<CR>", 'Inline Variable' },
j = { '', 'Next Usage' },
k = { '', 'Previous Usage' },
l = { '', 'List Definition' },
n = { '', 'Swap Next' },
p = { '', 'Swap Previous' },
R = { "<Esc><cmd>lua require('telescope').extensions.refactoring.refactors()<CR>", 'Refactor Commands' },
r = { '', 'Smart Rename' },
S = { "<cmd>lua require('spectre').open()<cr>", 'Replace' },
s = { [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]], 'Replace Word' },
v = { "<cmd>lua require('refactoring').refactor('Extract Variable')<CR>", 'Extract Variable' },
w = { "<cmd>lua require('spectre').open_visual({select_word=true})<cr>", 'Replace Word' },
},
s = {
name = icons.ui.Windows .. 'Split',
['`'] = { '<C-w>p', 'Previous Window' },
['\\'] = { '<C-w>v', 'Split Right' },
['/'] = { '<C-w>s', 'Split Below' },
['-'] = { '<cmd>vertical resize -20<cr>', 'Decrease window width' },
['='] = { '<cmd>vertical resize +20<cr>', 'Increase window width' },
['_'] = { '<cmd>resize -10<cr>', 'Decrease window height' },
['+'] = { '<cmd>resize +10<cr>', 'Increase window height' },
a = { '<cmd>split<cr>', 'Horizontal Split' },
c = { '<cmd>tabclose<cr>', 'Close Tab' },
f = { '<cmd>tabfirst<cr>', 'First Tab' },
h = { '<C-w>h', 'Move Left' },
H = { '<cmd>vertical resize -10<cr>', 'Decrease window width' },
j = { '<C-w>j', 'Move Down' },
J = { '<cmd>resize -5<cr>', 'Decrease window height' },
k = { '<C-w>k', 'Move Up' },
K = { '<cmd>resize +5<cr>', 'Increase window height' },
l = { '<C-w>l', 'Move Right' },
L = { '<cmd>vertical resize +10<cr>', 'Increase window width' },
p = { '<cmd>NavigatorPrevious<cr>', 'Previous Pane' },
q = { '<C-w>c', 'Close Split' },
s = { '<cmd>vsplit<cr>', 'Vertical Split' },
},
t = {
name = icons.ui.Terminal .. 'Terminal',
['`'] = { '<cmd>Sterm<cr>', 'Horizontal Terminal' },
c = { '<cmd>Sterm bundle exec rails console<cr>', 'Rails Console' },
d = { '<cmd>Sterm dexe<cr>', 'Exe Launcher' },
n = { '<cmd>Sterm node<cr>', 'Node' },
p = { '<cmd>Sterm bpython<cr>', 'Python' },
r = { '<cmd>Sterm irb<cr>', 'Ruby' },
s = { '<cmd>Sterm<cr>', 'Horizontal Terminal' },
t = { '<cmd>Fterm<cr>', 'Terminal' },
v = { '<cmd>Vterm<cr>', 'Vertical Terminal' },
w = { '<cmd>Sterm dexe --wait-before-exit<cr>', 'Exe Launcher, Wait' },
},
u = {
name = icons.ui.Test .. 'Test',
c = { '<cmd>lua require("neotest").run.run()<cr>', 'Run Current Test' },
f = { '<cmd>lua require("neotest").run.run(vim.fn.expand("%"))<cr>', 'Run Test File' },
o = { '<cmd>Neotest output-panel<cr>', 'Test Output' },
s = { '<cmd>Neotest summary<cr>', 'Test Summary' },
},
v = {
name = icons.ui.Star .. 'Select',
B = { 'vab', 'Around Bracket' },
b = { 'vib', 'Bracket' },
P = { 'vap', 'Around Para' },
p = { 'vip', 'Paragraph' },
Q = { 'vaq', 'Around Quote' },
q = { 'viq', 'Quote' },
},
w = {
name = icons.kind.File .. 'Writing',
c = { '<cmd>set spell!<cr>', 'Spellcheck' },
f = { "<cmd>lua require'utils'.sudo_write()<cr>", 'Force Write' },
j = { ']s', 'Next Misspell' },
k = { '[s', 'Prev Misspell' },
q = { '<cmd>wq<cr>', 'Write and Quit' },
s = { '<cmd>Telescope spell_suggest<cr>', 'Suggestions' },
t = { '<cmd>Twilight<cr>', 'Twilight' },
w = { '<cmd>w<cr>', 'Write and Quit' },
z = { '<cmd>ZenMode<cr>', 'ZenMode' },
},
x = { '<cmd>x<cr>', icons.ui.SignOut .. 'Save and Quit' },
y = {
name = icons.ui.Clipboard .. 'Yank',
a = { '<cmd>%y+<cr>', 'Copy Whole File' },
f = { '<cmd>CopyFileName<cr>', 'File Name' },
g = { '<cmd>lua require"gitlinker".get_buf_range_url()<cr>', 'Copy Git URL' },
P = { '<cmd>CopyAbsolutePath<cr>', 'Absolute Path' },
p = { '<cmd>CopyRelativePath<cr>', 'Relative Path' },
},
}
local vopts = {
local v_mappings = {
mode = 'v',
prefix = '<leader>',
buffer = nil,
silent = true,
noremap = true,
nowait = true,
}
{ '<leader>c', group = ' Code' },
{ '<leader>cS', ':sort!<cr>', desc = 'Sort Desc' },
{ '<leader>ci', ':sort i<cr>', desc = 'Sort Case Insensitive' },
{ '<leader>cs', ':sort<cr>', desc = 'Sort Asc' },
{ '<leader>cu', ':!uniq<cr>', desc = 'Unique' },
{ '<leader>cx', "<esc><cmd>'<,'>SnipRun<cr>", desc = 'Run Code' },
local vmappings = {
c = {
name = icons.ui.Neovim .. 'Code',
i = { ':sort i<cr>', 'Sort Case Insensitive' },
S = { ':sort!<cr>', 'Sort Desc' },
s = { ':sort<cr>', 'Sort Asc' },
u = { ':!uniq<cr>', 'Unique' },
x = { "<esc><cmd>'<,'>SnipRun<cr>", 'Run Code' },
},
g = {
name = icons.git.Octoface .. 'Git',
a = { '<cmd>Gitsigns stage_hunk<cr>', 'Stage Hunk' },
r = { '<cmd>Gitsigns reset_hunk<cr>', 'Reset Hunk' },
},
j = {
name = icons.ui.Jump .. 'Jump',
d = { '<cmd>FlashDiagnostics<cr>', 'Diagnostics' },
j = { "<cmd>lua require('flash').remote()<cr>", 'Remote' },
k = { "<cmd>lua require('flash').treesitter()<cr>", 'Treesitter' },
n = {
"<cmd>lua require('flash').jump({search = { forward = true, wrap = false, multi_window = false },})<cr>",
'Search Forward',
},
N = {
"<cmd>lua require('flash').jump({search = { forward = false, wrap = false, multi_window = false },})<cr>",
'Search Backward',
},
p = { "<cmd>lua require('flash').jump({continue = true})<cr>", 'Previous Jump' },
s = { "<cmd>lua require('flash').jump()<cr>", 'Search' },
t = { "<cmd>lua require('flash').treesitter_search()<cr>", 'Remote Treesitter' },
w = { '<cmd>lua require("flash").jump({ pattern = vim.fn.expand("<cword>")})<cr>', 'Current Word' },
},
l = {
name = icons.kind.TypeParameter .. 'LSP',
a = '<cmd><C-U>Lspsaga range_code_action<CR>',
},
r = {
name = icons.ui.Code .. 'Refactor',
r = { "<Esc><cmd>lua require('telescope').extensions.refactoring.refactors()<CR>", 'Refactor Commands' },
e = { "<esc><cmd>lua require('refactoring').refactor('Extract Function')<CR>", 'Extract Function' },
f = { "<esc><cmd>lua require('refactoring').refactor('Extract Function To File')<CR>", 'Extract To File' },
v = { "<esc><cmd>lua require('refactoring').refactor('Extract Variable')<CR>", 'Extract Variable' },
i = { "<esc><cmd>lua require('refactoring').refactor('Inline Variable')<CR>", 'Inline Variable' },
},
y = {
name = icons.ui.Clipboard .. 'Yank',
g = { '<cmd>lua require"gitlinker".get_buf_range_url("v")<cr>', 'Copy Git URL' },
},
}
{ '<leader>g', group = ' Git' },
{ '<leader>ga', '<cmd>Gitsigns stage_hunk<cr>', desc = 'Stage Hunk' },
{ '<leader>gr', '<cmd>Gitsigns reset_hunk<cr>', desc = 'Reset Hunk' },
local no_leader_opts = {
mode = 'n',
prefix = '',
buffer = nil,
silent = true,
noremap = true,
nowait = true,
{ '<leader>j', group = ' Jump' },
{
'<leader>jN',
"<cmd>lua require('flash').jump({search = { forward = false, wrap = false, multi_window = false },})<cr>",
desc = 'Search Backward',
},
{ '<leader>jd', '<cmd>FlashDiagnostics<cr>', desc = 'Diagnostics' },
{ '<leader>jj', "<cmd>lua require('flash').remote()<cr>", desc = 'Remote' },
{ '<leader>jk', "<cmd>lua require('flash').treesitter()<cr>", desc = 'Treesitter' },
{
'<leader>jn',
"<cmd>lua require('flash').jump({search = { forward = true, wrap = false, multi_window = false },})<cr>",
desc = 'Search Forward',
},
{ '<leader>jp', "<cmd>lua require('flash').jump({continue = true})<cr>", desc = 'Previous Jump' },
{ '<leader>js', "<cmd>lua require('flash').jump()<cr>", desc = 'Search' },
{ '<leader>jt', "<cmd>lua require('flash').treesitter_search()<cr>", desc = 'Remote Treesitter' },
{
'<leader>jw',
'<cmd>lua require("flash").jump({ pattern = vim.fn.expand("<cword>")})<cr>',
desc = 'Current Word',
},
{ '<leader>l', group = ' LSP' },
{ '<leader>la', desc = '<cmd><C-U>Lspsaga range_code_action<CR>' },
{ '<leader>r', group = ' Refactor' },
{
'<leader>re',
"<esc><cmd>lua require('refactoring').refactor('Extract Function')<CR>",
desc = 'Extract Function',
},
{
'<leader>rf',
"<esc><cmd>lua require('refactoring').refactor('Extract Function To File')<CR>",
desc = 'Extract To File',
},
{ '<leader>ri', "<esc><cmd>lua require('refactoring').refactor('Inline Variable')<CR>", desc = 'Inline Variable' },
{
'<leader>rr',
"<Esc><cmd>lua require('telescope').extensions.refactoring.refactors()<CR>",
desc = 'Refactor Commands',
},
{
'<leader>rv',
"<esc><cmd>lua require('refactoring').refactor('Extract Variable')<CR>",
desc = 'Extract Variable',
},
{ '<leader>y', group = ' Yank' },
{ '<leader>yg', '<cmd>lua require"gitlinker".get_buf_range_url("v")<cr>', desc = 'Copy Git URL' },
}
local no_leader_mappings = {
K = { '<cmd>Lspsaga hover_doc<cr>', 'LSP Hover' },
Q = { '<cmd>qall!<cr>', 'Force Quit!' },
U = { '<cmd>redo<cr>', 'Redo' },
mode = 'n',
{ '<C-Down>', '<cmd>resize -10<cr>', desc = 'Decrease window height' },
{ '<C-Left>', '<cmd>vertical resize -10<cr>', desc = 'Decrease window width' },
{ '<C-Right>', '<cmd>vertical resize +10<cr>', desc = 'Increase window width' },
{ '<C-Up>', '<cmd>resize +10<cr>', desc = 'Increase window height' },
{ '<C-f>', '<cmd>Telescope find_files<cr>', desc = 'Find Files' },
{ '<C-g>', '<cmd>Fterm lazygit<cr>', desc = 'Lazygit' },
['<S-h>'] = { '<cmd>bprevious<cr>', 'Previous Buffer' },
['<S-l>'] = { '<cmd>bnext<cr>', 'Next Buffer' },
{ '<C-h>', '<C-w>h', desc = 'Move Left' },
{ '<C-j>', '<C-w>j', desc = 'Move Down' },
{ '<C-k>', '<C-w>k', desc = 'Move Up' },
{ '<C-l>', '<C-w>l', desc = 'Move Right' },
{ '<C-\\>', '<C-w>p', desc = 'Previous Pane' },
['<C-f>'] = { '<cmd>Telescope find_files<cr>', 'Find Files' },
['<C-g>'] = { '<cmd>Fterm lazygit<cr>', 'Lazygit' },
{ '<S-h>', '<cmd>bprevious<cr>', desc = 'Previous Buffer' },
{ '<S-l>', '<cmd>bnext<cr>', desc = 'Next Buffer' },
['<C-h>'] = { '<C-w>h', 'Move Left' },
['<C-j>'] = { '<C-w>j', 'Move Down' },
['<C-k>'] = { '<C-w>k', 'Move Up' },
['<C-l>'] = { '<C-w>l', 'Move Right' },
['<C-\\>'] = { '<C-w>p', 'Previous Pane' },
{ 'K', '<cmd>Lspsaga hover_doc<cr>', desc = 'LSP Hover' },
{ 'Q', '<cmd>qall!<cr>', desc = 'Force Quit!' },
{ 'U', '<cmd>redo<cr>', desc = 'Redo' },
['<C-Up>'] = { '<cmd>resize +10<cr>', 'Increase window height' },
['<C-Down>'] = { '<cmd>resize -10<cr>', 'Decrease window height' },
['<C-Left>'] = { '<cmd>vertical resize -10<cr>', 'Decrease window width' },
['<C-Right>'] = { '<cmd>vertical resize +10<cr>', 'Increase window width' },
{ '[', group = ' Previous' },
{ '[B', '<cmd>bfirst<cr>', desc = 'First Buffer' },
{ '[b', '<cmd>bprevious<cr>', desc = 'Buffer' },
{ '[d', '<cmd>Lspsaga diagnostic_jump_prev<cr>', desc = 'Diagnostic' },
{ '[e', 'g;', desc = 'Edit' },
{ '[g', '<cmd>Gitsigns prev_hunk<cr>', desc = 'Git Hunk' },
{ '[j', '<C-o>', desc = 'Jump' },
['['] = {
name = icons.ui.ArrowLeft .. 'Previous',
b = { '<cmd>bprevious<cr>', 'Buffer' },
B = { '<cmd>bfirst<cr>', 'First Buffer' },
d = { '<cmd>Lspsaga diagnostic_jump_prev<cr>', 'Diagnostic' },
e = { 'g;', 'Edit' },
g = { '<cmd>Gitsigns prev_hunk<cr>', 'Git Hunk' },
j = { '<C-o>', 'Jump' },
},
[']'] = {
name = icons.ui.ArrowRight .. 'Next',
b = { '<cmd>bnext<cr>', 'Buffer' },
B = { '<cmd>blast<cr>', 'Buffer' },
d = { '<cmd>Lspsaga diagnostic_jump_next<cr>', 'Diagnostic' },
e = { 'g,', 'Edit' },
g = { '<cmd>Gitsigns next_hunk<cr>', 'Git Hunk' },
j = { '<C-i>', 'Jump' },
},
{ ']', group = ' Next' },
{ ']B', '<cmd>blast<cr>', desc = 'Buffer' },
{ ']b', '<cmd>bnext<cr>', desc = 'Buffer' },
{ ']d', '<cmd>Lspsaga diagnostic_jump_next<cr>', desc = 'Diagnostic' },
{ ']e', 'g,', desc = 'Edit' },
{ ']g', '<cmd>Gitsigns next_hunk<cr>', desc = 'Git Hunk' },
{ ']j', '<C-i>', desc = 'Jump' },
}
if vim.fn.exists('$TMUX') == 1 then
local tmux_mappings = {
['<C-h>'] = { '<cmd>NavigatorLeft<cr>', 'Move Left' },
['<C-j>'] = { '<cmd>NavigatorDown<cr>', 'Move Down' },
['<C-k>'] = { '<cmd>NavigatorUp<cr>', 'Move Up' },
['<C-l>'] = { '<cmd>NavigatorRight<cr>', 'Move Right' },
['<C-\\>'] = { '<cmd>NavigatorPrevious<cr>', 'Previous Pane' },
{ '<C-h>', '<cmd>NavigatorLeft<cr>', desc = 'Move Left' },
{ '<C-j>', '<cmd>NavigatorDown<cr>', desc = 'Move Down' },
{ '<C-k>', '<cmd>NavigatorUp<cr>', desc = 'Move Up' },
{ '<C-l>', '<cmd>NavigatorRight<cr>', desc = 'Move Right' },
{ '<C-\\>', '<cmd>NavigatorPrevious<cr>', desc = 'Previous Pane' },
}
no_leader_mappings = vim.tbl_extend('force', no_leader_mappings, tmux_mappings)
end
which_key.setup(setup)
which_key.register(mappings, opts)
which_key.register(vmappings, vopts)
which_key.register(no_leader_mappings, no_leader_opts)
which_key.register({ mode = { 'o', 'x' }, i = i, a = a })
which_key.add(n_mappings)
which_key.add(v_mappings)
which_key.add(no_leader_mappings)