168 lines
6.9 KiB
Lua
168 lines
6.9 KiB
Lua
local wk = require("which-key")
|
|
|
|
local keys = {
|
|
a = {"<cmd>Copilot suggestion accept<cr>", "Accept Copilot"},
|
|
e = {
|
|
name = "Toggle",
|
|
e = {"<cmd>NeoTreeFloatToggle<CR>", "NeoTree"},
|
|
w = {vim.cmd.Ex, "netrw"},
|
|
g = {"<cmd>NeoTreeFloatToggle git_status<CR>", "Git Status"},
|
|
b = {"<cmd>NeoTreeFloatToggle buffers<CR>", "Buffers"},
|
|
c = {"<cmd>NeoTreeClose<CR>" , "Close"},
|
|
u = {vim.cmd.UndotreeToggle, "UndoTree"},
|
|
},
|
|
c = {
|
|
name = "LSP",
|
|
w = {function () vim.lsp.buf.workspace_symbol("") end, "workspace symbol"},
|
|
d = {function () vim.diagnostic.open_float() end, "diagnostic"},
|
|
a = {function () vim.lsp.buf.code_action() end, "code actions"},
|
|
R = {function () vim.lsp.buf.references() end, "references"},
|
|
r = {function () vim.lsp.buf.rename() end, "rename"},
|
|
h = {function () vim.lsp.buf.hover() end, "Hover"},
|
|
t = {function () vim.lsp.buf.type_definition() end,"Type Definition"},
|
|
s = {"<cmd>Navbuddy<cr>", "Navbuddy"},
|
|
S = {require("telescope.builtin").lsp_document_symbols, "Document Symbols"},
|
|
l = {
|
|
name = "LSP",
|
|
k = {"<cmd>LspStop<cr>", "Stop"},
|
|
s = {"<cmd>LspStart<cr>", "Start"},
|
|
r = {"<cmd>LspRestart<cr>", "Restart"},
|
|
},
|
|
c = {
|
|
name = "Copilot",
|
|
a = {"<cmd>Copilot suggestion accept<cr>", "Accept"},
|
|
d = {"<cmd>Copilot suggestion dismiss<cr>", "Dismiss"},
|
|
l = {"<cmd>Copilot suggestion accept_line<cr>", "Line"},
|
|
w = {"<cmd>Copilot suggestion accept_word<cr>", "Word"},
|
|
n = {"<cmd>Copilot suggestion next<cr>", "Next"},
|
|
p = {"<cmd>Copilot suggestion prev<cr>", "Previous"},
|
|
}
|
|
},
|
|
b = {
|
|
name = "Buffer",
|
|
h = {vim.cmd.bprevious, "Previous"},
|
|
l = {vim.cmd.bnext, "Next"},
|
|
H = {vim.cmd.bfirst, "First"},
|
|
L = {vim.cmd.blast, "Last"},
|
|
b = {require("telescope.builtin").buffers, "Picker"},
|
|
c = {"<cmd>:bp | sp | bn | bd<cr>", "Close"},
|
|
},
|
|
f = {
|
|
name = "Telescope & fzf",
|
|
c = {require("telescope.builtin").colorscheme, "Find Colorscheme"},
|
|
d = {require("telescope.builtin").diagnostics, "Find Diagnostics"},
|
|
w = {require("telescope.builtin").grep_string, "Find current Word"},
|
|
f = {require("telescope.builtin").find_files, "telescope find files"},
|
|
g = {require("telescope.builtin").live_grep, "live grep"},
|
|
b = {require("telescope.builtin").buffers, "buffers"},
|
|
h = {require("telescope.builtin").help_tags, "help tags"},
|
|
s = {function () require("telescope.builtin").grep_string({ search = vim.fn.input("Grep > ")}); end, "grep search through files"},
|
|
m = {"<cmd>Maket<cr>", "Make"},
|
|
},
|
|
s = {
|
|
name = "Settings",
|
|
c = {function ()
|
|
vim.opt.scrolloff = 100
|
|
end, "Always center cursor"},
|
|
C = {function ()
|
|
vim.opt.scrolloff = 8
|
|
end, "Disable Cursor center"},
|
|
f = {function ()
|
|
vim.opt.nu = true
|
|
vim.opt.relativenumber = true
|
|
end, "Fix number and relative numbers"},
|
|
m = {function ()
|
|
vim.cmd[[
|
|
highlight CursorColumn guibg=none ctermbg=none
|
|
highlight link CursorColumn CursorLine
|
|
]]
|
|
end, "Fix cursor highlight"},
|
|
},
|
|
h = {
|
|
name = "Hop",
|
|
w = {"<cmd>HopWord<cr>", "Word"},
|
|
a = {"<cmd>HopAnywhere<cr>", "Anywhere"},
|
|
l = {"<cmd>HopLine<cr>", "Line"},
|
|
p = {"<cmd>HopPattern<cr>", "Pattern"},
|
|
c = {"<cmd>HopChar1<cr>", "Char1"},
|
|
x = {"<cmd>HopChar2<cr>", "Char2"},
|
|
h = {vim.cmd.HopChar2, "Hop"},
|
|
},
|
|
d = {
|
|
name = "Debug",
|
|
b = {function () require("dap").toggle_breakpoint() end, "toggle breakpoint"},
|
|
c = {function () require("dap").continue() end, "launch or continue execution"},
|
|
s = {function () require("dap").step_into() end, "step into"},
|
|
o = {function () require("dap").step_over() end, "step over"},
|
|
r = {function () require("dap").repl.open() end, "open repl"},
|
|
w = {"<cmd>DapUIFloat<cr>", "DapUI"},
|
|
},
|
|
w = {
|
|
name = "workspace",
|
|
a = {vim.lsp.buf.add_workspace_folder, "add folder"},
|
|
r = {vim.lsp.buf.remove_workspace_folder, "remove folder"},
|
|
l = {function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, "list folders"},
|
|
},
|
|
q = {
|
|
name = "Quick nav",
|
|
q = {require("harpoon.ui").toggle_quick_menu, "Menu"},
|
|
a = {require("harpoon.mark").add_file, "Add file"},
|
|
r = {require("harpoon.mark").rm_file, "Remove File"},
|
|
},
|
|
|
|
}
|
|
|
|
wk.register(keys, {prefix = "<leader>"})
|
|
wk.register(keys, {prefix = "<C-Space>"})
|
|
wk.register(keys, {prefix = "<C-Space>", mode = "i"})
|
|
wk.register(keys, {prefix = "<C-Space>", mode = "v"})
|
|
|
|
-- LSP
|
|
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, {desc = "goto definition"})
|
|
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, {})
|
|
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, {desc = "goto next"})
|
|
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, {desc = "goto prev"})
|
|
vim.keymap.set("i", "<C-s>", function() vim.lsp.buf.signature_help() end)
|
|
vim.keymap.set("i", "<C-h>", function () vim.lsp.buf.hover() end, {})
|
|
|
|
-- term
|
|
vim.keymap.set("n", "<C-\\>", vim.cmd.ToggleTerm)
|
|
vim.keymap.set("t", "<C-\\>", vim.cmd.ToggleTerm)
|
|
vim.keymap.set("v", "<C-\\>", vim.cmd.ToggleTerm)
|
|
|
|
-- center
|
|
vim.keymap.set("n", "<C-d>", "<C-d>zz")
|
|
vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
|
vim.keymap.set("n", "n", "nzzzv")
|
|
vim.keymap.set("n", "N", "Nzzzv")
|
|
|
|
-- visual move
|
|
vim.keymap.set("x", "K", ":move '<-2<CR>gv=gv")
|
|
vim.keymap.set("x", "J", ":move '>+1<CR>gv=gv")
|
|
|
|
-- me lazy
|
|
vim.keymap.set("i", "<C-c>", "<Esc>")
|
|
|
|
|
|
-- non char keybinds
|
|
vim.keymap.set("n", "<leader>f/", function ()
|
|
require("telescope.builtin").current_buffer_fuzzy_find(require("telescope.themes").get_dropdown {
|
|
winblend = 10,
|
|
previewer = false,
|
|
})
|
|
end, {desc = "fuzzy find"})
|
|
vim.keymap.set('n', '<leader>f?', require('telescope.builtin').oldfiles, { desc = 'Find recently opened files' })
|
|
|
|
vim.keymap.set("i", "<C-Space>f/", function ()
|
|
require("telescope.builtin").current_buffer_fuzzy_find(require("telescope.themes").get_dropdown {
|
|
winblend = 10,
|
|
previewer = false,
|
|
})
|
|
end, {desc = "fuzzy find"})
|
|
vim.keymap.set('i', '<C-Space>f?', require('telescope.builtin').oldfiles, { desc = 'Find recently opened files' })
|
|
|
|
for i = 9, 1, -1 do
|
|
vim.keymap.set("n", "<M-" .. i .. ">", function() require("harpoon.ui").nav_file(i) end, {desc = ""})
|
|
vim.keymap.set("i", "<M-" .. i .. ">", function() require("harpoon.ui").nav_file(i) end, {desc = ""})
|
|
vim.keymap.set("v", "<M-" .. i .. ">", function() require("harpoon.ui").nav_file(i) end, {desc = ""})
|
|
end
|