feat(neovim): add which-key mappings
This commit is contained in:
parent
af37d88f90
commit
51f2778efc
|
@ -1,9 +1,16 @@
|
||||||
vim.keymap.set("n", "<leader>dc", require"dap".continue)
|
local wk = require("which-key")
|
||||||
vim.keymap.set("n", "<leader>db", require"dap".toggle_breakpoint)
|
|
||||||
vim.keymap.set("n", "<leader>do", require"dap".step_over)
|
wk.register({
|
||||||
vim.keymap.set("n", "<leader>di", require"dap".step_into)
|
d = {
|
||||||
vim.keymap.set("n", "<leader>dO", require"dap".step_out)
|
name = "Debugging",
|
||||||
vim.keymap.set("n", "<leader>dh", require"dap".goto_)
|
c = { require"dap".continue, "Continue" },
|
||||||
vim.keymap.set("n", "<leader>dk", require"dap.ui.widgets".hover)
|
b = { require"dap".toggle_breakpoint, "Toggle breakpoint" },
|
||||||
vim.keymap.set("n", "<leader>dr", require"dap".repl.open)
|
o = { require"dap".step_over, "Step over" },
|
||||||
vim.keymap.set("n", "<leader>dl", require"dap".run_last)
|
i = { require"dap".step_into, "Step into" },
|
||||||
|
O = { require"dap".step_out, "Step out" },
|
||||||
|
h = { require"dap".goto_, "Go to" },
|
||||||
|
k = { require"dap.ui.widgets".hover, "Show info" },
|
||||||
|
r = { require"dap".repl.open, "Open repl" },
|
||||||
|
l = { require"dap".run_last, "Run last" },
|
||||||
|
},
|
||||||
|
}, { mode = "n", prefix = "<leader>" })
|
||||||
|
|
|
@ -23,15 +23,29 @@ vim.diagnostic.config {
|
||||||
float = true,
|
float = true,
|
||||||
}
|
}
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader>q", vim.diagnostic.setloclist, { silent = true })
|
local wk = require("which-key")
|
||||||
vim.keymap.set("n", "<leader>i", function()
|
|
||||||
vim.diagnostic.open_float({ format = format })
|
wk.register({
|
||||||
end, { silent = true })
|
q = { vim.diagnostic.setloclist, "Show diagnostics in file" },
|
||||||
vim.keymap.set("n", "[d", function()
|
i = {
|
||||||
vim.diagnostic.goto_prev({ format = format })
|
function()
|
||||||
end, { silent = true })
|
vim.diagnostic.open_float({ format = format })
|
||||||
vim.keymap.set("n", "]d", function()
|
end,
|
||||||
vim.diagnostic.goto_next({ format = format })
|
"Show diagnostics in line",
|
||||||
end, { silent = true })
|
},
|
||||||
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, { silent = true })
|
}, { mode = "n", prefix = "<leader>" })
|
||||||
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, { silent = true })
|
|
||||||
|
wk.register({
|
||||||
|
["[d"] = {
|
||||||
|
function()
|
||||||
|
vim.diagnostic.goto_prev({ format = format })
|
||||||
|
end,
|
||||||
|
"Go to next diagnostic",
|
||||||
|
},
|
||||||
|
["]d"] = {
|
||||||
|
function()
|
||||||
|
vim.diagnostic.goto_next({ format = format })
|
||||||
|
end,
|
||||||
|
"Go to previous diagnostic",
|
||||||
|
},
|
||||||
|
}, { mode = "n" })
|
||||||
|
|
|
@ -1,32 +1,45 @@
|
||||||
|
local wk = require("which-key")
|
||||||
|
|
||||||
require("gitsigns").setup {
|
require("gitsigns").setup {
|
||||||
on_attach = function(bufnr)
|
on_attach = function(bufnr)
|
||||||
local function map(mode, l, r, opts)
|
|
||||||
opts = opts or {}
|
|
||||||
opts.buffer = bufnr
|
|
||||||
vim.keymap.set(mode, l, r, opts)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Navigation
|
-- Navigation
|
||||||
map("n", "]c", "&diff ? ']c' : '<cmd>Gitsigns next_hunk<CR>'", { expr = true })
|
wk.register({
|
||||||
map("n", "[c", "&diff ? '[c' : '<cmd>Gitsigns prev_hunk<CR>'", { expr = true })
|
["]c"] = { "&diff ? ']c' : '<cmd>Gitsigns next_hunk<CR>'", "Go to next git sign" },
|
||||||
|
["[c"] = { "&diff ? '[c' : '<cmd>Gitsigns prev_hunk<CR>'", "Go to previous git sign" },
|
||||||
|
}, { mode = "n", buffer = bufnr })
|
||||||
|
|
||||||
-- Actions
|
-- Actions
|
||||||
map("n", "<leader>hs", ":Gitsigns stage_hunk<CR>")
|
wk.register({
|
||||||
map("v", "<leader>hs", ":Gitsigns stage_hunk<CR>")
|
h = {
|
||||||
map("n", "<leader>hr", ":Gitsigns reset_hunk<CR>")
|
name = "Git signs",
|
||||||
map("v", "<leader>hr", ":Gitsigns reset_hunk<CR>")
|
s = { ":Gitsigns stage_hunk<CR>", "Stage hunk" },
|
||||||
map("n", "<leader>hS", "<cmd>Gitsigns stage_buffer<CR>")
|
r = { ":Gitsigns reset_hunk<CR>", "Reset hunk" },
|
||||||
map("n", "<leader>hu", "<cmd>Gitsigns undo_stage_hunk<CR>")
|
S = { "<cmd>Gitsigns stage_buffer<CR>", "Stage buffer" },
|
||||||
map("n", "<leader>hR", "<cmd>Gitsigns reset_buffer<CR>")
|
u = { "<cmd>Gitsigns undo_stage_hunk<CR>", "Unstage hunk" },
|
||||||
map("n", "<leader>hp", "<cmd>Gitsigns preview_hunk<CR>")
|
R = { "<cmd>Gitsigns reset_buffer<CR>", "Reset buffer" },
|
||||||
map("n", "<leader>hb", "<cmd>lua require'gitsigns'.blame_line{full=true}<CR>")
|
p = { "<cmd>Gitsigns preview_hunk<CR>", "Preview hunk" },
|
||||||
map("n", "<leader>tb", "<cmd>Gitsigns toggle_current_line_blame<CR>")
|
b = { require"gitsigns".blame_line({ full = true }), "Blame line" },
|
||||||
map("n", "<leader>hd", "<cmd>Gitsigns diffthis<CR>")
|
d = { "<cmd>Gitsigns diffthis<CR>", "Diff" },
|
||||||
map("n", "<leader>hD", "<cmd>lua require'gitsigns'.diffthis('~')<CR>")
|
D = { require"gitsigns".diffthis('~'), "Diff" },
|
||||||
map("n", "<leader>td", "<cmd>Gitsigns toggle_deleted<CR>")
|
},
|
||||||
|
t = {
|
||||||
|
name = "Git sign toggles",
|
||||||
|
b = { "<cmd>Gitsigns toggle_current_line_blame<CR>", "Toggle current line" },
|
||||||
|
d = { "<cmd>Gitsigns toggle_deleted<CR>", "Toggle deleted" },
|
||||||
|
},
|
||||||
|
}, { mode = "n", prefix = "<leader>", buffer = bufnr })
|
||||||
|
wk.register({
|
||||||
|
h = {
|
||||||
|
name = "Git signs",
|
||||||
|
s = { ":Gitsigns stage_hunk<CR>", "Stage hunk" },
|
||||||
|
r = { ":Gitsigns reset_hunk<CR>", "Reset hunk" },
|
||||||
|
},
|
||||||
|
}, { mode = "v", prefix = "<leader>", buffer = bufnr })
|
||||||
|
|
||||||
-- Text object
|
-- Text object
|
||||||
map("o", "ih", ":<C-U>Gitsigns select_hunk<CR>")
|
wk.register({
|
||||||
map("x", "ih", ":<C-U>Gitsigns select_hunk<CR>")
|
ih = { ":<C-U>Gitsigns select_hunk<CR>", "Select hunk", mode = "o" },
|
||||||
|
oh = { ":<C-U>Gitsigns select_hunk<CR>", "Select hunk", mode = "x" },
|
||||||
|
}, { buffer = bufnr })
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,11 +35,17 @@ vim.g.closetag_regions = {
|
||||||
["javascript.jsx"] = "jsxRegion",
|
["javascript.jsx"] = "jsxRegion",
|
||||||
}
|
}
|
||||||
|
|
||||||
vim.keymap.set("n", ";", require("telescope.builtin").find_files)
|
local wk = require("which-key")
|
||||||
vim.keymap.set("n", ",", require("telescope.builtin").live_grep)
|
|
||||||
|
wk.register({
|
||||||
|
[";"] = { require("telescope.builtin").find_files, "Find files" },
|
||||||
|
[","] = { require("telescope.builtin").live_grep, "Find content" },
|
||||||
|
}, { mode = "n" })
|
||||||
|
|
||||||
require("nvim-tree").setup {}
|
require("nvim-tree").setup {}
|
||||||
vim.keymap.set("n", "<C-p>", require("nvim-tree").toggle)
|
wk.register({
|
||||||
|
["<C-p>"] = { require("nvim-tree").toggle, "Toggle NVimTree" },
|
||||||
|
}, { mode = "n" })
|
||||||
|
|
||||||
vim.g.netrw_banner = 0
|
vim.g.netrw_banner = 0
|
||||||
vim.g.netrw_liststyle = 3
|
vim.g.netrw_liststyle = 3
|
||||||
|
|
|
@ -1,16 +1,33 @@
|
||||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, { silent = true })
|
local wk = require("which-key")
|
||||||
vim.keymap.set("n", "gp", peek_definition, { silent = true })
|
|
||||||
vim.keymap.set("n", "gy", vim.lsp.buf.type_definition, { silent = true })
|
wk.register({
|
||||||
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, { silent = true })
|
g = {
|
||||||
vim.keymap.set("n", "gr", vim.lsp.buf.references, { silent = true })
|
name = "Go to",
|
||||||
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { silent = true })
|
d = { vim.lsp.buf.definition, "Go to definition" },
|
||||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, { silent = true })
|
p = { vim.lsp.buf.peek_definition, "Show definition" },
|
||||||
vim.keymap.set("n", "<c-k>", vim.lsp.buf.signature_help, { silent = true })
|
y = { vim.lsp.buf.type_definition, "Go to type definition" },
|
||||||
vim.keymap.set("n", "<leader>sd", vim.lsp.buf.document_symbol, { silent = true })
|
|
||||||
vim.keymap.set("n", "<leader>sw", vim.lsp.buf.workspace_symbol, { silent = true })
|
i = { vim.lsp.buf.implementation, "Go to implementation" },
|
||||||
vim.keymap.set("n", "<leader>f", function()
|
r = { vim.lsp.buf.references, "Show references" },
|
||||||
vim.lsp.buf.formatting_seq_sync(nil, nil, { "tsserver", "diagnosticls" })
|
D = { vim.lsp.buf.declaration, "Show declarations" },
|
||||||
end, { silent = true })
|
},
|
||||||
vim.keymap.set("n", "<leader>a", vim.lsp.buf.code_action, { silent = true })
|
K = { vim.lsp.buf.hover, "Show info" },
|
||||||
vim.keymap.set("n", "<leader>r", vim.lsp.buf.rename, { silent = true })
|
["<c-k>"] = { vim.lsp.buf.signature_help, "Show signature" },
|
||||||
vim.keymap.set("n", "<leader>l", vim.lsp.codelens.run, { silent = true })
|
}, { mode = "n" })
|
||||||
|
|
||||||
|
wk.register({
|
||||||
|
s = {
|
||||||
|
name = "Symbols",
|
||||||
|
d = { vim.lsp.buf.document_symbol, "Document symbol" },
|
||||||
|
w = { vim.lsp.buf.workspace_symbol, "Workspace symbol" },
|
||||||
|
},
|
||||||
|
f = {
|
||||||
|
function()
|
||||||
|
vim.lsp.buf.formatting_seq_sync(nil, nil, { "tsserver", "diagnosticls" })
|
||||||
|
end,
|
||||||
|
"Format file",
|
||||||
|
},
|
||||||
|
a = { vim.lsp.buf.code_action, "Code actions" },
|
||||||
|
r = { vim.lsp.buf.rename, "Rename" },
|
||||||
|
l = { vim.lsp.codelens.run, "Run codelens" },
|
||||||
|
}, { mode = "n", prefix = "<leader>" })
|
||||||
|
|
Loading…
Reference in a new issue