diff options
Diffstat (limited to 'lua/core/binds.lua')
-rw-r--r-- | lua/core/binds.lua | 94 |
1 files changed, 61 insertions, 33 deletions
diff --git a/lua/core/binds.lua b/lua/core/binds.lua index 4afc57c..f27c87d 100644 --- a/lua/core/binds.lua +++ b/lua/core/binds.lua @@ -1,5 +1,8 @@ local function map(mode, bind, cmd, opts) - opts = opts or {noremap = true, silent = true} + opts = opts or {} + opts['noremap'] = true + opts['silent'] = true + if type(bind) == 'table' then for i in pairs(bind) do vim.keymap.set(mode, bind[i], cmd, opts) @@ -23,12 +26,12 @@ end -- vim binds ------------------------------------------------------------------ g.mapleader = ' ' -- set leader key -map('x', '<leader>p', [["_dP]]) -- greatest remap ever -map('n', '<ESC>', ':nohlsearch<Bar>:echo<CR>') -- clear search -map('t', '<ESC>', '<C-\\><C-n>') -- make <ESC> work in terminals +map('x', '<leader>p', [["_dP]], { desc = 'Greatest remap of all time.' }) +map('n', '<esc>', ':nohlsearch<Bar>:echo<CR>', { desc = 'Clear search.' }) +map('t', '<esc>', '<C-\\><C-n>', { desc = 'make <esc> work in terminals.' }) -- move selected text up/down -map('v', '<S-k>', ":m '<-2<CR>gv=gv") -map('v', '<S-j>', ":m '>+1<CR>gv=gv") +map('v', '<S-k>', ":m '<-2<CR>gv=gv", { desc = 'Move selected text up.' }) +map('v', '<S-j>', ":m '>+1<CR>gv=gv", { desc = 'Move selected text down.' }) -- the cursor STAYS IN THE MIDDLE map('n', '<S-j>', 'mzJ`z<cmd>delm z<CR>') -- when combining lines @@ -50,10 +53,16 @@ a.nvim_create_autocmd('FileType', { bind('l', '<CR>') -- Go down a directory / open a file bind('.', 'gh') -- Toggle dotfiles bind('P', '<C-w>z') -- Close preview window - bind('<ESC>', '<cmd>q<CR>') -- Close netrw + bind('<esc>', '<cmd>q<CR>') -- Close netrw end }) +-- tabs +map('n', '<C-q>n', '<cmd>tabnew<CR>') +map('n', '<C-q>w', '<cmd>tabclose<CR>') +map('n', '<C-q>h', '<cmd>tabprev<CR>') +map('n', '<C-q>l', '<cmd>tabnext<CR>') + -- plugin binds --------------------------------------------------------------- -- pretty lsp view @@ -62,41 +71,56 @@ map('n', 'gr', '<CMD>Glance references<CR>') map('n', 'gy', '<CMD>Glance type_definitions<CR>') map('n', 'gi', '<CMD>Glance implementations<CR>') -local treesj = require('treesj') -- treesj -map('n', '<leader>j', treesj.toggle) - -local telebuilt = require('telescope.builtin') -- telescope -map('n', '<leader>sf', telebuilt.find_files) -map('n', '<leader>sg', telebuilt.git_files) -map('n', '<leader>sp', function() - telebuilt.grep_string({ search = vim.fn.input('Find string in project > ') }) -end) -map('n', '<leader>so', telebuilt.oldfiles) +if pcall(require, "treesj") then + local treesj = require('treesj') -- treesj + map('n', '<leader>j', treesj.toggle) +end -local intellitab = require('intellitab') -- intellitab -map('n', '<Tab>', intellitab.indent) +if pcall(require, "telescope") then + local telebuilt = require('telescope.builtin') -- telescope + map('n', '<leader>sf', telebuilt.find_files, { desc = 'Find files.' }) + map('n', '<leader>sg', telebuilt.git_files, { desc = 'Find git files.' }) + map('n', '<leader>sp', function() + telebuilt.grep_string({ search = vim.fn.input( + 'Find string in project > ' + ) }) + end, { desc = 'Find string in project.' }) + map('n', '<leader>so', telebuilt.oldfiles, { desc = 'Find old files.' }) +end -map('n', '<leader>u', '<cmd>UndotreeToggle<CR>') -- undo tree -map('n', '<leader>f', '<cmd>SFMToggle<CR>') -- sfm -map('n', '<leader>b', '<cmd>JABSOpen<CR>') -- switch between previous buffers -map('n', '<leader>tt', '<cmd>TroubleToggle<CR>') -- trouble (lsp error view) -map('n', '<leader>tc', '<cmd>TodoTrouble<CR>') -- todo trouble -map('n', '<C-e>', '<cmd>IconPickerYank<CR>') -- icon picker +map('n', '<leader>u', '<cmd>UndotreeToggle<CR>', { desc = 'Open undo tree.' }) +map('n', '<leader>f', '<cmd>SFMToggle<CR>', { desc = 'Open file tree view.' }) +map('n', '<leader>b', '<cmd>JABSOpen<CR>', { desc = 'Switch between buffers.' }) +map('n', '<leader>tt', '<cmd>TroubleToggle<CR>', { desc = 'Diagnostic list.' }) +map('n', '<leader>tc', '<cmd>TodoTrouble<CR>', { desc = 'Comment list.' }) +map('n', '<C-e>', '<cmd>IconPickerYank<CR>', { desc = 'Icon picker list.' }) -local dapui = require('dapui') -- dap ui -map('n', '<leader>d', dapui.toggle) +if pcall(require, "dapui") then + local dapui = require('dapui') -- dap ui + map('n', '<leader>d', dapui.toggle, { desc = 'Debuging ui.' }) +end -local smartsplits = require('smart-splits') -- resizing buffers (toggleable) -map('n', '<leader>r', smartsplits.start_resize_mode) +if pcall(require, "smart-splits") then + local smartsplits = require('smart-splits') -- resizing buffers (toggleable) + map('n', '<leader>r', smartsplits.start_resize_mode) +end -- toggle term (don't use leader key in these binds) map({'n', 't'}, '<C-\\>', '<cmd>ToggleTerm direction=float<CR>') map({'n', 't'}, '<C-g>', '<cmd>lua _glow()<CR>') -- true zen -map('n', '<leader>zf', '<cmd>lua require("true-zen.focus").toggle()<CR>') -map('n', '<leader>zm', '<cmd>lua require("true-zen.minimalist").toggle()<CR>') -map('n', '<leader>za', '<cmd>lua require("true-zen.ataraxis").toggle()<CR>') +if pcall(require, "true-zen") then + map('n', '<leader>zf', require("true-zen.focus").toggle, { + desc = 'fullscreen', + }) + map('n', '<leader>zm', require("true-zen.minimalist").toggle, { + desc = 'minimal', + }) + map('n', '<leader>za', require("true-zen.ataraxis").toggle, { + desc = 'zen', + }) +end -- Git map('n', '<leader>gph', '<cmd>Gitsigns preview_hunk_inline<CR>') @@ -104,4 +128,8 @@ map('n', '<leader>gsh', '<cmd>Gitsigns stage_hunk<CR>') map('n', '<leader>gb', '<cmd>Gitsigns blame_line<CR>') -- neogen -map('n', '<leader>df', '<cmd>lua require("neogen").generate()<CR>') +if pcall(require, "neogen") then + map('n', '<leader>df', require("neogen").generate, { + desc = 'Generate anootations', + }) +end |