From 20064600161ad27980c4a32c647c695520e4fb2c Mon Sep 17 00:00:00 2001 From: christianchiarulli Date: Mon, 28 Jun 2021 12:45:45 -0400 Subject: more lazyload --- lua/lv-which-key/init.lua | 529 ++++++++++++++++++++++++++-------------------- 1 file changed, 296 insertions(+), 233 deletions(-) (limited to 'lua/lv-which-key/init.lua') diff --git a/lua/lv-which-key/init.lua b/lua/lv-which-key/init.lua index ab3a8dca..1ead82d4 100644 --- a/lua/lv-which-key/init.lua +++ b/lua/lv-which-key/init.lua @@ -1,241 +1,304 @@ -require("which-key").setup { - plugins = { - marks = true, -- shows a list of your marks on ' and ` - registers = true, -- shows your registers on " in NORMAL or in INSERT mode - -- the presets plugin, adds help for a bunch of default keybindings in Neovim - -- No actual key bindings are created - presets = { - operators = false, -- adds help for operators like d, y, ... - motions = false, -- adds help for motions - text_objects = false, -- help for text objects triggered after entering an operator - windows = true, -- default bindings on - nav = true, -- misc bindings to work with windows - z = true, -- bindings for folds, spelling and others prefixed with z - g = true -- bindings for prefixed with g +local M = {} + +M.config = function() + require("which-key").setup { + plugins = { + marks = true, -- shows a list of your marks on ' and ` + registers = true, -- shows your registers on " in NORMAL or in INSERT mode + -- the presets plugin, adds help for a bunch of default keybindings in Neovim + -- No actual key bindings are created + presets = { + operators = false, -- adds help for operators like d, y, ... + motions = false, -- adds help for motions + text_objects = false, -- help for text objects triggered after entering an operator + windows = true, -- default bindings on + nav = true, -- misc bindings to work with windows + z = true, -- bindings for folds, spelling and others prefixed with z + g = true -- bindings for prefixed with g + } + }, + icons = { + breadcrumb = "»", -- symbol used in the command line area that shows your active key combo + separator = "➜", -- symbol used between a key and it's label + group = "+" -- symbol prepended to a group + }, + window = { + border = "single", -- none, single, double, shadow + position = "bottom", -- bottom, top + margin = {1, 0, 1, 0}, -- extra window margin [top, right, bottom, left] + padding = {2, 2, 2, 2} -- extra window padding [top, right, bottom, left] + }, + layout = { + height = {min = 4, max = 25}, -- min and max height of the columns + width = {min = 20, max = 50}, -- min and max width of the columns + spacing = 3 -- spacing between columns + }, + hidden = { + "", "", "", "", "call", "lua", "^:", "^ " + }, -- hide mapping boilerplate + show_help = true -- show help message on the command line when the popup is visible + } + + -- Set leader + if O.leader_key == ' ' or O.leader_key == 'space' then + vim.api.nvim_set_keymap('n', '', '', + {noremap = true, silent = true}) + vim.g.mapleader = ' ' + else + vim.api.nvim_set_keymap('n', O.leader_key, '', + {noremap = true, silent = true}) + vim.g.mapleader = O.leader_key + end + + local opts = { + mode = "n", -- NORMAL mode + prefix = "", + buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings + silent = true, -- use `silent` when creating keymaps + noremap = true, -- use `noremap` when creating keymaps + nowait = false -- use `nowait` when creating keymaps + } + + -- no hl + vim.api.nvim_set_keymap('n', 'h', ':let @/=""', + {noremap = true, silent = true}) + + -- explorer + vim.api.nvim_set_keymap('n', 'e', ":NvimTreeToggle", + {noremap = true, silent = true}) + + -- telescope + vim.api.nvim_set_keymap('n', 'f', ':Telescope find_files', + {noremap = true, silent = true}) + + -- dashboard + vim.api.nvim_set_keymap('n', ';', ':Dashboard', + {noremap = true, silent = true}) + + -- Comments + vim.api.nvim_set_keymap("n", "/", ":CommentToggle", + {noremap = true, silent = true}) + vim.api.nvim_set_keymap("v", "/", ":CommentToggle", + {noremap = true, silent = true}) + + -- close buffer + vim.api.nvim_set_keymap("n", "c", ":BufferClose", + {noremap = true, silent = true}) + + -- open projects + vim.api.nvim_set_keymap('n', 'p', + ":lua require'telescope'.extensions.project.project{}", + {noremap = true, silent = true}) + + vim.api.nvim_set_keymap("n", "z", ":TZAtaraxis", + {noremap = true, silent = true}) + -- z = {"TZAtaraxis", "toggle zen"} + + -- TODO create entire treesitter section + + local mappings = { + + ["/"] = "Comment", + ["c"] = "Close Buffer", + ["e"] = "Explorer", + ["f"] = "Find File", + ["h"] = "No Highlight", + ["p"] = "Projects", + ["z"] = "Zen", + [";"] = "Dashboard", + b = { + name = "+Buffers", + j = {"BufferPick", "jump to buffer"}, + w = {"BufferWipeout", "wipeout buffer"}, + e = { + "BufferCloseAllButCurrent", + "close all but current buffer" + }, + h = { + "BufferCloseBuffersLeft", + "close all buffers to the left" + }, + l = { + "BufferCloseBuffersRight", + "close all BufferLines to the right" + }, + D = { + "BufferOrderByDirectory", + "sort BufferLines automatically by directory" + }, + L = { + "BufferOrderByLanguage", + "sort BufferLines automatically by language" + } + }, + + d = { + name = "Diagnostics", + t = {"TroubleToggle", "trouble"}, + w = { + "TroubleToggle lsp_workspace_diagnostics", "workspace" + }, + d = {"TroubleToggle lsp_document_diagnostics", "document"}, + q = {"TroubleToggle quickfix", "quickfix"}, + l = {"TroubleToggle loclist", "loclist"}, + r = {"TroubleToggle lsp_references", "references"} + }, + + -- " Available Debug Adapters: + -- " https://microsoft.github.io/debug-adapter-protocol/implementors/adapters/ + -- " + -- " Adapter configuration and installation instructions: + -- " https://github.com/mfussenegger/nvim-dap/wiki/Debug-Adapter-installation + -- " + -- " Debug Adapter protocol: + -- " https://microsoft.github.io/debug-adapter-protocol/ + -- " Debugging + -- command! DebugToggleBreakpoint lua require'dap'.toggle_breakpoint() + -- command! DebugStart lua require'dap'.continue() + -- command! DebugContinue lua require'dap'.continue() + -- command! DebugStepOver lua require'dap'.step_over() + -- command! DebugStepOut lua require'dap'.step_out() + -- command! DebugStepInto lua require'dap'.step_into() + -- command! DebugToggleRepl lua require'dap'.repl.toggle() + -- command! DebugGetSession lua require'dap'.session() + D = { + name = "Debug", + b = {"DebugToggleBreakpoint", "Toggle Breakpoint"}, + c = {"DebugContinue", "Continue"}, + i = {"DebugStepInto", "Step Into"}, + o = {"DebugStepOver", "Step Over"}, + r = {"DebugToggleRepl", "Toggle Repl"}, + s = {"DebugStart", "Start"} + }, + g = { + name = "Git", + j = {"lua require 'lv-utils'.next_hunk()", "Next Hunk"}, + k = {"lua require 'lv-utils'.prev_hunk()", "Prev Hunk"}, + l = {"lua require 'lv-utils'.blame_line()", "Blame"}, + p = { + "lua require 'lv-utils'.preview_hunk()", "Preview Hunk" + }, + r = {"lua require 'lv-utils'.reset_hunk()", "Reset Hunk"}, + R = { + "lua require 'lv-utils'.reset_buffer()", "Reset Buffer" + }, + s = {"lua require 'lv-utils'.stage_hunk()", "Stage Hunk"}, + u = { + "lua require 'lv-utils'.undo_stage_hunk()", + "Undo Stage Hunk" + }, + o = {"Telescope git_status", "Open changed file"}, + b = {"Telescope git_branches", "Checkout branch"}, + c = {"Telescope git_commits", "Checkout commit"}, + C = { + "Telescope git_bcommits", + "Checkout commit(for current file)" + } + }, + l = { + name = "LSP", + a = {"Lspsaga code_action", "Code Action"}, + A = {"Lspsaga range_code_action", "Selected Action"}, + d = { + "Telescope lsp_document_diagnostics", + "Document Diagnostics" + }, + D = { + "Telescope lsp_workspace_diagnostics", + "Workspace Diagnostics" + }, + f = {"lua require 'lv-utils'.formatting()", "Format"}, + h = {"Lspsaga hover_doc", "Hover Doc"}, + i = {"LspInfo", "Info"}, + l = {"Lspsaga lsp_finder", "LSP Finder"}, + L = {"Lspsaga show_line_diagnostics", "Line Diagnostics"}, + p = {"Lspsaga preview_definition", "Preview Definition"}, + q = {"Telescope quickfix", "Quickfix"}, + r = {"Lspsaga rename", "Rename"}, + t = {"LspTypeDefinition", "Type Definition"}, + x = {"cclose", "Close Quickfix"}, + s = {"Telescope lsp_document_symbols", "Document Symbols"}, + S = { + "Telescope lsp_dynamic_workspace_symbols", + "Workspace Symbols" + } + }, + r = { + name = "Replace", + f = { + "lua require('spectre').open_file_search()", + "Current File" + }, + p = {"lua require('spectre').open()", "Project"} + }, + s = { + name = "Search", + b = {"Telescope git_branches", "Checkout branch"}, + c = {"Telescope colorscheme", "Colorscheme"}, + d = { + "Telescope lsp_document_diagnostics", + "Document Diagnostics" + }, + D = { + "Telescope lsp_workspace_diagnostics", + "Workspace Diagnostics" + }, + f = {"Telescope find_files", "Find File"}, + h = {"Telescope help_tags", "Find Help"}, + m = {"Telescope marks", "Marks"}, + M = {"Telescope man_pages", "Man Pages"}, + r = {"Telescope oldfiles", "Open Recent File"}, + R = {"Telescope registers", "Registers"}, + t = {"Telescope live_grep", "Text"} + }, + S = { + name = "Session", + s = {"SessionSave", "Save Session"}, + l = {"SessionLoad", "Load Session"} } - }, - icons = { - breadcrumb = "»", -- symbol used in the command line area that shows your active key combo - separator = "➜", -- symbol used between a key and it's label - group = "+" -- symbol prepended to a group - }, - window = { - border = "single", -- none, single, double, shadow - position = "bottom", -- bottom, top - margin = {1, 0, 1, 0}, -- extra window margin [top, right, bottom, left] - padding = {2, 2, 2, 2} -- extra window padding [top, right, bottom, left] - }, - layout = { - height = {min = 4, max = 25}, -- min and max height of the columns - width = {min = 20, max = 50}, -- min and max width of the columns - spacing = 3 -- spacing between columns - }, - hidden = {"", "", "", "", "call", "lua", "^:", "^ "}, -- hide mapping boilerplate - show_help = true -- show help message on the command line when the popup is visible -} - --- Set leader -if O.leader_key == ' ' or O.leader_key == 'space' then - vim.api.nvim_set_keymap('n', '', '', {noremap = true, silent = true}) - vim.g.mapleader = ' ' -else - vim.api.nvim_set_keymap('n', O.leader_key, '', {noremap = true, silent = true}) - vim.g.mapleader = O.leader_key -end + -- extras + -- z = { + -- name = "Zen", + -- s = {"TZBottom", "toggle status line"}, + -- t = {"TZTop", "toggle tab bar"}, + -- z = {"TZAtaraxis", "toggle zen"} + -- } + } -local opts = { - mode = "n", -- NORMAL mode - prefix = "", - buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings - silent = true, -- use `silent` when creating keymaps - noremap = true, -- use `noremap` when creating keymaps - nowait = false -- use `nowait` when creating keymaps -} - --- no hl -vim.api.nvim_set_keymap('n', 'h', ':let @/=""', {noremap = true, silent = true}) - --- explorer -vim.api.nvim_set_keymap('n', 'e', ":NvimTreeToggle", {noremap = true, silent = true}) - --- telescope -vim.api.nvim_set_keymap('n', 'f', ':Telescope find_files', {noremap = true, silent = true}) - --- dashboard -vim.api.nvim_set_keymap('n', ';', ':Dashboard', {noremap = true, silent = true}) - --- Comments -vim.api.nvim_set_keymap("n", "/", ":CommentToggle", {noremap = true, silent = true}) -vim.api.nvim_set_keymap("v", "/", ":CommentToggle", {noremap = true, silent = true}) - --- close buffer -vim.api.nvim_set_keymap("n", "c", ":BufferClose", {noremap = true, silent = true}) - --- open projects -vim.api.nvim_set_keymap('n', 'p', ":lua require'telescope'.extensions.project.project{}", - {noremap = true, silent = true}) - -vim.api.nvim_set_keymap("n", "z", ":TZAtaraxis", {noremap = true, silent = true}) --- z = {"TZAtaraxis", "toggle zen"} - --- TODO create entire treesitter section - -local mappings = { - - ["/"] = "Comment", - ["c"] = "Close Buffer", - ["e"] = "Explorer", - ["f"] = "Find File", - ["h"] = "No Highlight", - ["p"] = "Projects", - ["z"] = "Zen", - [";"] = "Dashboard", - b = { - name = "+Buffers", - j = {"BufferPick", "jump to buffer"}, - w = {"BufferWipeout", "wipeout buffer"}, - e = {"BufferCloseAllButCurrent", "close all but current buffer"}, - h = {"BufferCloseBuffersLeft", "close all buffers to the left"}, - l = {"BufferCloseBuffersRight", "close all BufferLines to the right"}, - D = {"BufferOrderByDirectory", "sort BufferLines automatically by directory"}, - L = {"BufferOrderByLanguage", "sort BufferLines automatically by language"}, - }, - - - d = { - name = "Diagnostics", - t = {"TroubleToggle", "trouble"}, - w = {"TroubleToggle lsp_workspace_diagnostics", "workspace"}, - d = {"TroubleToggle lsp_document_diagnostics", "document"}, - q = {"TroubleToggle quickfix", "quickfix"}, - l = {"TroubleToggle loclist", "loclist"}, - r = {"TroubleToggle lsp_references", "references"} - }, - --- " Available Debug Adapters: --- " https://microsoft.github.io/debug-adapter-protocol/implementors/adapters/ --- " --- " Adapter configuration and installation instructions: --- " https://github.com/mfussenegger/nvim-dap/wiki/Debug-Adapter-installation --- " --- " Debug Adapter protocol: --- " https://microsoft.github.io/debug-adapter-protocol/ --- " Debugging --- command! DebugToggleBreakpoint lua require'dap'.toggle_breakpoint() --- command! DebugStart lua require'dap'.continue() --- command! DebugContinue lua require'dap'.continue() --- command! DebugStepOver lua require'dap'.step_over() --- command! DebugStepOut lua require'dap'.step_out() --- command! DebugStepInto lua require'dap'.step_into() --- command! DebugToggleRepl lua require'dap'.repl.toggle() --- command! DebugGetSession lua require'dap'.session() - D = { - name = "Debug", - b = {"DebugToggleBreakpoint", "Toggle Breakpoint"}, - c = {"DebugContinue", "Continue"}, - i = {"DebugStepInto", "Step Into"}, - o = {"DebugStepOver", "Step Over"}, - r = {"DebugToggleRepl", "Toggle Repl"}, - s = {"DebugStart", "Start"} - }, - g = { - name = "Git", - j = {"lua require 'lv-utils'.next_hunk()", "Next Hunk"}, - k = {"lua require 'lv-utils'.prev_hunk()", "Prev Hunk"}, - l = {"lua require 'lv-utils'.blame_line()", "Blame"}, - p = {"lua require 'lv-utils'.preview_hunk()", "Preview Hunk"}, - r = {"lua require 'lv-utils'.reset_hunk()", "Reset Hunk"}, - R = {"lua require 'lv-utils'.reset_buffer()", "Reset Buffer"}, - s = {"lua require 'lv-utils'.stage_hunk()", "Stage Hunk"}, - u = {"lua require 'lv-utils'.undo_stage_hunk()", "Undo Stage Hunk"}, - o = {"Telescope git_status", "Open changed file"}, - b = {"Telescope git_branches", "Checkout branch"}, - c = {"Telescope git_commits", "Checkout commit"}, - C = {"Telescope git_bcommits", "Checkout commit(for current file)"} - }, - l = { - name = "LSP", - a = {"Lspsaga code_action", "Code Action"}, - A = {"Lspsaga range_code_action", "Selected Action"}, - d = {"Telescope lsp_document_diagnostics", "Document Diagnostics"}, - D = {"Telescope lsp_workspace_diagnostics", "Workspace Diagnostics"}, - f = {"lua require 'lv-utils'.formatting()", "Format"}, - h = {"Lspsaga hover_doc", "Hover Doc"}, - i = {"LspInfo", "Info"}, - l = {"Lspsaga lsp_finder", "LSP Finder"}, - L = {"Lspsaga show_line_diagnostics", "Line Diagnostics"}, - p = {"Lspsaga preview_definition", "Preview Definition"}, - q = {"Telescope quickfix", "Quickfix"}, - r = {"Lspsaga rename", "Rename"}, - t = {"LspTypeDefinition", "Type Definition"}, - x = {"cclose", "Close Quickfix"}, - s = {"Telescope lsp_document_symbols", "Document Symbols"}, - S = {"Telescope lsp_dynamic_workspace_symbols", "Workspace Symbols"} - }, - r = { - name = "Replace", - f = {"lua require('spectre').open_file_search()", "Current File"}, - p = {"lua require('spectre').open()", "Project"} - }, - s = { - name = "Search", - b = {"Telescope git_branches", "Checkout branch"}, - c = {"Telescope colorscheme", "Colorscheme"}, - d = {"Telescope lsp_document_diagnostics", "Document Diagnostics"}, - D = {"Telescope lsp_workspace_diagnostics", "Workspace Diagnostics"}, - f = {"Telescope find_files", "Find File"}, - h = {"Telescope help_tags", "Find Help"}, - m = {"Telescope marks", "Marks"}, - M = {"Telescope man_pages", "Man Pages"}, - r = {"Telescope oldfiles", "Open Recent File"}, - R = {"Telescope registers", "Registers"}, - t = {"Telescope live_grep", "Text"} - }, - S = { - name = "Session", - s = {"SessionSave", "Save Session"}, - l = {"SessionLoad", "Load Session"} - }, - -- extras - -- z = { - -- name = "Zen", - -- s = {"TZBottom", "toggle status line"}, - -- t = {"TZTop", "toggle tab bar"}, - -- z = {"TZAtaraxis", "toggle zen"} + if O.extras then + mappings["L"] = { + name = "+Latex", + c = {"VimtexCompile", "Toggle Compilation Mode"}, + f = {"call vimtex#fzf#run()", "Fzf Find"}, + i = {"VimtexInfo", "Project Information"}, + s = {"VimtexStop", "Stop Project Compilation"}, + t = {"VimtexTocToggle", "Toggle Table Of Content"}, + v = {"VimtexView", "View PDF"} + } + end + -- TODO come back and fix visual mappings + -- local visualOpts = { + -- mode = "v", -- Visual mode + -- prefix = "", + -- buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings + -- silent = true, -- use `silent` when creating keymaps + -- noremap = true, -- use `noremap` when creating keymaps + -- nowait = false -- use `nowait` when creating keymaps -- } -} - -if O.extras then - mappings["L"] = { - name = "+Latex", - c = {"VimtexCompile", "Toggle Compilation Mode"}, - f = {"call vimtex#fzf#run()", "Fzf Find"}, - i = {"VimtexInfo", "Project Information"}, - s = {"VimtexStop", "Stop Project Compilation"}, - t = {"VimtexTocToggle", "Toggle Table Of Content"}, - v = {"VimtexView", "View PDF"} - } -end --- TODO come back and fix visual mappings --- local visualOpts = { --- mode = "v", -- Visual mode --- prefix = "", --- buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings --- silent = true, -- use `silent` when creating keymaps --- noremap = true, -- use `noremap` when creating keymaps --- nowait = false -- use `nowait` when creating keymaps --- } - --- local visualMappings = { + + -- local visualMappings = { -- ["/"] = {"CommentToggle", "Comment"}, -- r = { - -- name = "Replace", - -- f = {"lua require('spectre').open_visual({path = vim.fn.expand('%')})", "File"}, - -- p = {"lua require('spectre').open_visual()", "Project"} + -- name = "Replace", + -- f = {"lua require('spectre').open_visual({path = vim.fn.expand('%')})", "File"}, + -- p = {"lua require('spectre').open_visual()", "Project"} -- } --- } + -- } + + local wk = require("which-key") + wk.register(mappings, opts) + -- wk.register(visualMappings, visualOpts) +end -local wk = require("which-key") -wk.register(mappings, opts) --- wk.register(visualMappings, visualOpts) +return M -- cgit v1.2.3