-- 20_keymaps.lua ---@diagnostic disable: unused-local, unused-function -- stylua: ignore start local map = function(mode, lhs, rhs, desc) vim.keymap.set(mode, lhs, rhs, { noremap = true, desc = desc }) end local nop = function(lhs) map({ "n", "v" }, lhs, "", "") end local nmap = function(lhs, rhs, desc) map("n", lhs, rhs, desc) end local xmap = function(lhs, rhs, desc) map("x", lhs, rhs, desc) end local nmap_leader = function(lhs, rhs, desc) nmap("" .. lhs, rhs, desc) end nop('s') nop('v') nmap_leader(';', 'vsplit', 'vsplit') nmap_leader('-', 'split', 'hsplit') nmap_leader('ca', 'lua vim.lsp.buf.code_action()', 'lsp code action') nmap_leader('ci', 'lua vim.lsp.buf.implementation()', 'lsp find implementation') nmap_leader('cr', 'lua vim.lsp.buf.references()', 'lsp find references') nmap_leader('cR', 'lua vim.lsp.buf.rename()', 'lsp rename') local c = function(rhs) return function() local count = vim.v.count1 for _ = 1, count do vim.cmd(rhs) end end end nmap(">", c("normal! >>"), "indent") nmap("<", c("normal! <<"), "dedent") xmap(">", ">gv", "indent and reselect") xmap("<", "