2023-08-21 14:31:22 +00:00
|
|
|
local M = {}
|
|
|
|
|
2023-01-01 14:16:21 +00:00
|
|
|
local resize = require("my.resize").resize
|
|
|
|
local utils = require "my.utils"
|
|
|
|
local nmap, imap, vmap = utils.nmap, utils.imap, utils.vmap
|
|
|
|
|
|
|
|
-- Window splits
|
|
|
|
nmap("<C-J>", function()
|
|
|
|
utils.winmove "j"
|
|
|
|
end)
|
|
|
|
nmap("<C-K>", function()
|
|
|
|
utils.winmove "k"
|
|
|
|
end)
|
|
|
|
nmap("<C-L>", function()
|
|
|
|
utils.winmove "l"
|
|
|
|
end)
|
|
|
|
nmap("<C-H>", function()
|
|
|
|
utils.winmove "h"
|
|
|
|
end)
|
|
|
|
nmap("<C-Q>", vim.cmd.quit)
|
|
|
|
|
|
|
|
-- Resize splits
|
|
|
|
nmap("<A-Up>", function()
|
|
|
|
resize(false, -2)
|
|
|
|
end)
|
|
|
|
nmap("<A-Down>", function()
|
|
|
|
resize(false, 2)
|
|
|
|
end)
|
|
|
|
nmap("<A-Left>", function()
|
|
|
|
resize(true, -2)
|
|
|
|
end)
|
|
|
|
nmap("<A-Right>", function()
|
|
|
|
resize(true, 2)
|
|
|
|
end)
|
|
|
|
|
|
|
|
-- Easy move lines
|
|
|
|
nmap("<A-j>", ":m+<CR>==")
|
|
|
|
nmap("<A-k>", ":m-2<CR>==")
|
|
|
|
vmap("<A-j>", ":m '>+1<CR>gv=gv")
|
|
|
|
vmap("<A-k>", ":m '<-2<CR>gv=gv")
|
|
|
|
|
|
|
|
nmap("<Esc>", vim.cmd.nohl)
|
|
|
|
nmap("<Tab>", "<C-^>")
|
2023-05-07 11:35:05 +00:00
|
|
|
nmap("<C-i>", "<Tab>") -- Re-bind for jump list
|
2023-01-01 14:16:21 +00:00
|
|
|
-- nmap("<Leader>n", "<Cmd>windo set nu! relativenumber!<CR>")
|
|
|
|
-- nmap("<Leader>t", "<Cmd>windo set expandtab!<CR>")
|
|
|
|
-- nmap("<Leader>.", "<Cmd>w<CR>")
|
|
|
|
-- nmap("S", require("my.nodesplit").split)
|
|
|
|
nmap("[d", vim.diagnostic.goto_prev, "previous diagnostic")
|
|
|
|
nmap("]d", vim.diagnostic.goto_next, "next diagnostic")
|
2023-06-02 18:05:34 +00:00
|
|
|
nmap("[q", vim.cmd.cprevious, "quickfix previous")
|
|
|
|
nmap("]q", vim.cmd.cnext, "quickfix next")
|
2023-01-01 14:16:21 +00:00
|
|
|
nmap("<Leader>q", vim.diagnostic.setqflist, "set diagnostic to quickfix list")
|
|
|
|
-- nmap("<F2>", utils.reload, "reload configuration")
|
|
|
|
nmap("[t", vim.cmd.tabp, "previous tab")
|
|
|
|
nmap("]t", vim.cmd.tabn, "next tab")
|
|
|
|
|
2023-09-21 08:18:48 +00:00
|
|
|
-- imap("<Tab>", require("my.tab").forwards)
|
|
|
|
-- imap("<S-Tab>", require("my.tab").backwards)
|
2023-01-01 14:16:21 +00:00
|
|
|
imap("<C-E>", "<CR><ESC>O")
|
|
|
|
imap("jk", "<Esc>")
|
|
|
|
|
|
|
|
vmap("<Leader>p", '"_dP')
|
|
|
|
vmap(">", ">gv")
|
|
|
|
vmap("<", "<gv")
|
2023-06-14 09:30:11 +00:00
|
|
|
|
2023-08-21 14:31:22 +00:00
|
|
|
M.lsp_keymaps = function(client, bufnr)
|
2023-06-14 09:30:11 +00:00
|
|
|
nmap("<Leader>r", vim.lsp.buf.rename, "Rename", bufnr)
|
|
|
|
nmap("<Leader>cf", vim.lsp.buf.format, "Format document", bufnr)
|
|
|
|
nmap("<Leader>ca", vim.lsp.buf.code_action, "Code actions", bufnr)
|
|
|
|
nmap("<Leader>ci", vim.lsp.buf.implementation, "Go to implementation", bufnr)
|
|
|
|
nmap("<Leader>D", vim.lsp.buf.type_definition, "Go to type definition", bufnr)
|
|
|
|
nmap("gr", "<Cmd>Telescope lsp_references<CR>", "View references", bufnr)
|
|
|
|
|
|
|
|
if client.server_capabilities.hoverProvider then
|
|
|
|
nmap("K", vim.lsp.buf.hover, "LSP hover", bufnr)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2023-08-21 14:31:22 +00:00
|
|
|
M.telescope_keymaps = function(fns)
|
2023-06-15 19:03:46 +00:00
|
|
|
nmap("<C-p>", fns.project, "Find project files")
|
|
|
|
nmap("<Leader>fn", fns.dotfiles, "Dotfiles")
|
|
|
|
nmap("<Leader><C-p>", fns.builtin.git_files, "Find git files")
|
|
|
|
nmap("<Leader>fg", fns.builtin.live_grep, "Live grep")
|
|
|
|
nmap("<Leader>gs", fns.builtin.git_status, "Git status")
|
|
|
|
end
|
|
|
|
|
2023-08-21 14:31:22 +00:00
|
|
|
M.gitsigns_keymaps = function(bufnr)
|
|
|
|
local gs = require "gitsigns"
|
|
|
|
|
|
|
|
nmap("]c", function()
|
|
|
|
if vim.wo.diff then
|
|
|
|
return "]c"
|
|
|
|
end
|
|
|
|
vim.schedule(function()
|
|
|
|
gs.next_hunk()
|
|
|
|
end)
|
|
|
|
return "<Ignore>"
|
|
|
|
end, "next hunk", bufnr)
|
|
|
|
|
|
|
|
nmap("[c", function()
|
|
|
|
if vim.wo.diff then
|
|
|
|
return "[c"
|
|
|
|
end
|
|
|
|
vim.schedule(function()
|
|
|
|
gs.prev_hunk()
|
|
|
|
end)
|
|
|
|
return "<Ignore>"
|
|
|
|
end, "previous hunk", bufnr)
|
|
|
|
end
|
|
|
|
|
|
|
|
return M
|