diff options
author | Squibid <me@zacharyscheiman.com> | 2024-08-09 02:45:31 -0400 |
---|---|---|
committer | Squibid <me@zacharyscheiman.com> | 2024-08-09 02:45:31 -0400 |
commit | c489d393695e90d424f9ae51e35c4d42358e6a71 (patch) | |
tree | 12ea97ec4684fd82cd6b73dd127d0137b115837b /lua/conf/binds.lua | |
parent | ad76983d969c318e6e234bc82384b4b025d70447 (diff) | |
download | nvim-c489d393695e90d424f9ae51e35c4d42358e6a71.tar.gz nvim-c489d393695e90d424f9ae51e35c4d42358e6a71.tar.bz2 nvim-c489d393695e90d424f9ae51e35c4d42358e6a71.zip |
yes there's a bit of java in my nvim config why do you ask?
Diffstat (limited to '')
-rw-r--r-- | lua/conf/binds.lua | 165 |
1 files changed, 20 insertions, 145 deletions
diff --git a/lua/conf/binds.lua b/lua/conf/binds.lua index 42c609e..2031852 100644 --- a/lua/conf/binds.lua +++ b/lua/conf/binds.lua @@ -1,25 +1,11 @@ -local conf = require('core.conf') +local misc = require('core.misc') +local map, auto = misc.map, misc.auto -local function map(mode, bind, cmd, opts) - 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) - end - elseif type(bind) == 'string' then - vim.keymap.set(mode, bind, cmd, opts) - end -end - --- vim binds ------------------------------------------------------------------ -g.mapleader = ' ' -- set leader key +-- vim binds +vim.g.mapleader = ' ' -- set leader key 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", { desc = 'Move selected text up.' }) map('v', '<S-j>', ":m '>+1<CR>gv=gv", { desc = 'Move selected text down.' }) @@ -45,22 +31,7 @@ map('n', '<leader>x', function() -- execute order 111 else vim.notify("File doesn't exist", vim.log.levels.INFO, { title = misc.appid }) end -end) - --- add some keybinds to the file view (netrw) -a.nvim_create_autocmd('FileType', { - pattern = 'netrw', - callback = function() - local function bind(lhs, rhs) - vim.keymap.set('n', lhs, rhs, { remap = true, buffer = true }) - end - bind('h', '-^') -- Go up a directory - bind('l', '<CR>') -- Go down a directory / open a file - bind('.', 'gh') -- Toggle hidden files - bind('P', '<C-w>z') -- Close preview window - bind('<esc>', '<cmd>q<CR>') -- Close netrw - end -}) +end, { desc = 'toggle executable flag of the file' }) -- tabs map('n', '[]', '<cmd>tabnew<CR>') @@ -68,118 +39,22 @@ map('n', '][', '<cmd>tabc<CR>') map('n', '[[', '<cmd>tabp<CR>') map('n', ']]', '<cmd>tabn<CR>') --- config binds --------------------------------------------------------------- -map('n', '<leader>m', conf.configmenu, { desc = 'Neovim config manager menu', }) - --- plugin binds --------------------------------------------------------------- - --- pretty lsp view -map('n', 'gd', '<CMD>Glance definitions<CR>') -map('n', 'gr', '<CMD>Glance references<CR>') -map('n', 'gy', '<CMD>Glance type_definitions<CR>') -map('n', 'gi', '<CMD>Glance implementations<CR>') - -if pcall(require, "treesj") then - local treesj = require('treesj') -- treesj - map('n', '<leader>j', treesj.toggle) -end - -if pcall(require, "telescope") then - local telebuilt = require('telescope.builtin') -- telescope - -- local telexten = require('telescope').extensions - map('n', '<leader>sf', telebuilt.find_files, { desc = 'Find files.' }) - map('n', '<leader>so', telebuilt.oldfiles, { desc = 'Find old files.' }) - map('n', '<leader>sg', telebuilt.git_files, { desc = 'Find git files.' }) - -- search urls in buffer - map('n', '<leader>su', '<Cmd>UrlView<CR>', { desc = 'Find urls in buffer.' }) - -- search lsp symbols - map('n', '<leader>ss', telebuilt.lsp_document_symbols, - { desc = 'Find LSP Symbols.' }) - -- search for keybinds - map('n', '<leader>sk', telebuilt.keymaps, - { desc = 'Find nvim Keymaps.' }) - -- search for highlights - map('n', '<leader>sh', telebuilt.highlights, - { desc = 'Find nvim Highlights.' }) - -- search for autocommands - map('n', '<leader>sa', telebuilt.autocommands, - { desc = 'Find nvim Autocommands.' }) - -- search for vim options - map('n', '<leader>sv', telebuilt.vim_options, { desc = 'Find vim options.' }) - -- search for string in project - map('n', '<leader>sp', telebuilt.live_grep, { desc = 'Find string in project.' }) - - -- Code Actions (requires telescope) - if pcall(require, "actions-preview") then - map({ "n", "v" }, "<leader>ca", require("actions-preview").code_actions, { - desc = 'preview code actions' - }) +-- good spell suggestion ui +-- (stolen from https://github.com/neovim/neovim/pull/25833) +local spell_on_choice = vim.schedule_wrap(function(_, idx) + if type(idx) == 'number' then + vim.cmd('normal! ' .. idx .. 'z=') end -end - --- todo list -if pcall(require, "todo-comments") then - map("n", "<leader>td", "<cmd>TodoQuickFix<CR>", { desc = 'open up list of TODO\'s' }) -end - --- harpoon -if (pcall(require, 'harpoon')) then - local harpoon = require("harpoon") - - map("n", "<leader>a", function() - harpoon:list():append() - vim.notify('added new file to quickmarks', vim.log.levels.INFO, { - title = misc.appid, - }) - end) - map('n', '<C-q>', function() harpoon:list():select(1) end) - map('n', '<C-g>', function() harpoon:list():select(2) end) - map('n', '<C-h>', function() harpoon:list():select(3) end) - map('n', '<C-i>', function() harpoon:list():select(4) end) - - map("n", "<C-S-P>", function() harpoon:list():prev() end) - map("n", "<C-S-N>", function() harpoon:list():next() end) - - map("n", "<C-e>", function() require("core.harpoon").switcher() end) -end - -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', '<C-j>', '<cmd>JABSOpen<CR>', { desc = 'Switch between buffers.' }) - -if pcall(require, "smart-splits") then - local smartsplits = require('smart-splits') -- resizing buffers (toggleable) - map('n', '<leader>r', smartsplits.start_resize_mode) -end - --- neogen -if pcall(require, "neogen") then - map('n', '<leader>df', require("neogen").generate, { - desc = 'Generate anotations', - }) -end +end) --- venn -function _G.Toggle_venn() - local mapb = vim.api.nvim_buf_set_keymap - local venn_enabled = vim.inspect(vim.b.venn_enabled) - if venn_enabled == "nil" then - vim.notify("Enabled venn mode", vim.log.levels.LOW, { title = misc.appid }) - vim.b.venn_enabled = true - vim.cmd([[setlocal ve=all]]) - -- draw a line on HJKL keystokes - mapb(0, "n", "J", "<C-v>j:VBox<CR>", { noremap = true }) - mapb(0, "n", "K", "<C-v>k:VBox<CR>", { noremap = true }) - mapb(0, "n", "L", "<C-v>l:VBox<CR>", { noremap = true }) - mapb(0, "n", "H", "<C-v>h:VBox<CR>", { noremap = true }) - -- draw a box by pressing "f" with visual selection - mapb(0, "v", "f", ":VBox<CR>", { noremap = true }) - else - vim.notify("Disabled venn mode", vim.log.levels.LOW, { title = misc.appid }) - vim.cmd[[setlocal ve=]] - vim.cmd[[mapclear <buffer>]] - vim.b.venn_enabled = nil +local spellsuggest_select = function() + if vim.v.count > 0 then + spell_on_choice(nil, vim.v.count) + return end + local cword = vim.fn.expand('<cword>') + local prompt = 'Change ' .. vim.inspect(cword) .. ' to:' + vim.ui.select(vim.fn.spellsuggest(cword, vim.o.lines), { prompt = prompt }, spell_on_choice) end --- toggle keymappings for venn using <leader>v -map('n', '<leader>v', ":lua Toggle_venn()<CR>") + +vim.keymap.set('n', 'z=', spellsuggest_select, { desc = 'Shows spelling suggestions' }) |