this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 99713eddf3a39d4f4b07b0cf7878393202ffccdf 170 lines 8.0 kB view raw
1local wk = require("which-key") 2 3local function qflist_is_open() 4 local is_open = false 5 for _, win in ipairs(vim.fn.getwininfo()) do 6 if win.quickfix == 1 then 7 is_open = true 8 break 9 end 10 end 11 return is_open 12end 13local function toggle_qf_list() 14 if qflist_is_open() then 15 vim.cmd("cclose") 16 else 17 vim.cmd("copen") 18 end 19end 20 21wk.add({ 22 { "<C-h>", "<C-w>h", desc = "Move focus to left pane" }, 23 { "<C-j>", "<C-w>j", desc = "Move focus to below pane" }, 24 { "<C-k>", "<C-w>k", desc = "Move focus to above pane" }, 25 { "<C-l>", "<C-w>l", desc = "Move focus to right pane" }, 26 27 { "<M-h>", "5zh", desc = "Scroll left" }, 28 { "<M-l>", "5zl", desc = "Scroll right" }, 29 30 { "H", ":bp<cr>", desc = "Switch to previous buffer" }, 31 { "L", ":bn<cr>", desc = "Switch to next buffer" }, 32 33 -- Prevents the pane from being removed when closing a buffer 34 { "<leader>d", "<cmd>bp<bar>sp<bar>bn<bar>bd<cr>", desc = "Close buffer" }, 35 { "<leader>D", "<cmd>bp<bar>sp<bar>bn<bar>bd!<cr>", desc = "Close buffer (force)" }, 36 -- { "<leader>d", "<cmd>bd<cr>", desc = "Close buffer" }, 37 -- { "<leader>D", "<cmd>bd!<cr>", desc = "Close buffer (force)" }, 38 { "<leader>BD", "<cmd>bufdo bd<cr>", desc = "Close all buffers" }, 39 40 { "<leader>n", "<cmd>vnew<CR>", desc = "New buffer" }, 41 42 { "<C-t>", "<cmd>tabnext<cr>", desc = "Next tab", group = "tab" }, 43 { "<leader>tn", "<cmd>tabnew<cr>", desc = "New Tab", group = "tab" }, 44 { "<leader>td", "<cmd>tabclose<cr>", desc = "Close Tab", group = "tab" }, 45 46 { "<leader>LC", "<cmd>ConfigLocalEdit<cr>", desc = "Edit local nvim config" }, 47 -- { "<leader>N", "<cmd>vsp<cr><C-w>l<cmd>e NOTES.sethetter.md<cr>", desc = "Open personal notes" }, 48 { "<leader>N", "<cmd>e NOTES.sethetter.md<cr>", desc = "Open personal notes" }, 49 50 { 51 "<leader>/", 52 "<cmd>CommentToggle<cr>", 53 desc = "Toggle comment", 54 mode = { "n" }, 55 }, 56 { 57 "<leader>/", 58 ":'<,'>CommentToggle<cr>", 59 desc = "Toggle comment", 60 mode = { "v" }, 61 }, 62 63 -- { "E", "<cmd>Neotree position=current toggle reveal<cr>", desc = "Open file explorer" }, 64 { "E", "<cmd>Neotree toggle reveal position=current<cr>", desc = "Open file explorer" }, 65 { "<leader>e", "<cmd>Neotree toggle position=current<cr>", desc = "Open file explorer" }, 66 -- { "<leader>E", "<cmd>Neotree focus reveal position=current<cr>", desc = "Open file explorer" }, 67 68 { "<leader>h", "<cmd>noh<cr>", desc = "Clear highlight" }, 69 { "<leader>v/", "<cmd>vsp<cr>", desc = "Split vertical", group = "split" }, 70 { "<leader>v?", "<cmd>sp<cr>", desc = "Split horizontal", group = "split" }, 71 72 { 73 "<leader>f", 74 "<cmd>Telescope find_files find_command=rg,--ignore,--hidden,--files,--iglob=!.git sort_mru=true<cr>", 75 desc = "Find files", 76 }, 77 { "<leader>b", "<cmd>Telescope buffers<cr>", desc = "Buffers" }, 78 { "<leader>sp", "<cmd>Telescope live_grep<cr>", desc = "Live grep" }, 79 { "<leader>sh", "<cmd>Telescope help_tags<cr>", desc = "Help tags" }, 80 { "<leader>sc", "<cmd>Telescope commands<cr>", desc = "Commands" }, 81 82 { 83 "<leader>cl", 84 toggle_qf_list, 85 desc = "Toggle quickfix list", 86 group = "quickfix", 87 }, 88 { "<leader>cn", "<cmd>cnext<cr>", desc = "Next QF item", group = "quickfix" }, 89 { "<leader>cp", "<cmd>cprev<cr>", desc = "Prev QF item", group = "quickfix" }, 90 91 { 92 "<leader>m", 93 function() 94 vim.diagnostic.setqflist({ open = true, focus = true }) 95 end, 96 desc = "Diagnostics in qf list", 97 }, 98 99 { "<leader>M", "<cmd>messages<cr>", desc = "Messages" }, 100 101 { "<leader>T", ":term ", desc = "Run a terminal command" }, 102 103 { "<leader>o", "<cmd>AerialToggle<cr>", desc = "Symbols outline" }, 104 105 { "<leader>Z", "<cmd>Goyo<cr>", desc = "Goyo toggle" }, 106 107 { "<leader>w", "<cmd>w<cr>", desc = "Save" }, 108 { "<leader>X", "<cmd>x<cr>", desc = "Save and close" }, 109 { "<leader>q", "<cmd>q<cr>", desc = "Quit" }, 110 { "<leader>Q", "<cmd>qa<cr>", desc = "Quit all" }, 111 112 { 113 "<leader>y", 114 function() 115 local filepath = vim.fn.expand('%:.') 116 local line = vim.fn.line('.') 117 local ref = filepath .. ':' .. line 118 vim.fn.system('pbcopy', ref) 119 vim.notify('Copied: ' .. ref, vim.log.levels.INFO) 120 end, 121 desc = "Copy filepath:line to clipboard" 122 }, 123 124 { "[d", "<cmd>lua vim.diagnostic.goto_prev()<cr>", desc = "Previous diagnostic" }, 125 { "]d", "<cmd>lua vim.diagnostic.goto_next()<cr>", desc = "Next diagnostic" }, 126 { "[g", "<cmd>Gitsigns prev_hunk<cr>", desc = "Previous change" }, 127 { "]g", "<cmd>Gitsigns next_hunk<cr>", desc = "Next change" }, 128 129 { "K", "<cmd>lua vim.lsp.buf.hover()<cr>", desc = "Hover" }, 130 131 { "g", group = "goto" }, 132 { "gs", "<cmd>Telescope lsp_document_symbols<cr>", desc = "Document symbols" }, 133 { "gS", "<cmd>Telescope lsp_dynamic_workspace_symbols<cr>", desc = "Workspace symbols" }, 134 { "gD", "<cmd>lua vim.lsp.buf.declaration()<cr>", desc = "Declaration" }, 135 { "gd", "<cmd>lua vim.lsp.buf.definition()<cr>", desc = "Definition" }, 136 { "gi", "<cmd>lua vim.lsp.buf.implementation()<cr>", desc = "Implementation" }, 137 { "gr", "<cmd>lua vim.lsp.buf.references()<cr>", desc = "References" }, 138 { "g.", "<cmd>lua vim.lsp.buf.code_action()<cr>", desc = "Code action" }, 139 { "<leader>R", "<cmd>lua vim.lsp.buf.rename()<cr>", desc = "Rename symbol" }, 140 { "<leader>F", "<cmd>Format<CR>", desc = "Format buffer" }, 141 142 { "<leader>gg", "<cmd>LazyGit<cr>", desc = "Lazygit", group = "git" }, 143 { "<leader>gs", "<cmd>Telescope git_status<cr>", desc = "Git status", group = "git" }, 144 { "<leader>gd", "<cmd>Gitsigns diffthis vertical=true HEAD<cr>", desc = "File diff", group = "git" }, 145 { "<leader>Gd", ":Gitsigns diffthis vertical=true ", desc = "File diff provided ref", group = "git" }, 146 { "<leader>GD", ":DiffviewOpen ", desc = "Diff provided ref", group = "git" }, 147 { "<leader>gh", "<cmd>DiffviewFileHistory %<cr>", desc = "File history", group = "git" }, 148 { "<leader>gH", "<cmd>DiffviewFileHistory<cr>", desc = "Git history", group = "git" }, 149 { "<leader>gb", "<cmd>Gitsigns toggle_current_line_blame<cr>", desc = "Git history", group = "git" }, 150 { 151 "<leader>gl", 152 '<cmd>lua require("gitlinker").get_buf_range_url("n", {action_callback = require("gitlinker.actions").copy_to_clipboard})<cr>', 153 desc = "Copy git url", 154 mode = "n", 155 silent = true, 156 }, 157 { 158 "<leader>gl", 159 '<cmd>lua require("gitlinker").get_buf_range_url("v", {action_callback = require("gitlinker.actions").copy_to_clipboard})<cr>', 160 desc = "Copy git url", 161 mode = "v", 162 -- TODO: make this actually silent 163 silent = true, 164 }, 165 166 { "<leader>PP", "<cmd>Lazy<cr>", desc = "Manage plugins", group = "plugin" }, 167 168 { "<leader>CI", ":CodeCompanion<CR>", desc = "Code Companion inline", mode = { "n", "v" }, group = "codecompanion" }, 169 { "<leader>CC", ":CodeCompanionChat<CR>", desc = "Claude edit selection", mode = { "n", "v" }, group = "codecompanion" }, 170})