diff options
author | Luc Sinet <[email protected]> | 2021-06-26 19:20:07 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2021-06-26 13:20:07 -0400 |
commit | 918a26ebc070ba21e5073b85a0addac867057617 (patch) | |
tree | 0bef5cc4b3075189b4a3ebbca930d84d1393db51 | |
parent | 257b6051e745f218c530784bdc8d0d74ffaf7606 (diff) |
Fix spectre (#520)
* Correctly require Spectre plugin.
Configure backslash as key for interacting with spectre's results.
* Refactor + add Spectre mapping
Map all keys using the mapping variables.
Explicitly specify virtual mappings.
* Remove already prepended character from mapping keys
Co-authored-by: Christian Chiarulli <[email protected]>
-rw-r--r-- | init.lua | 1 | ||||
-rw-r--r-- | lua/lv-spectre/init.lua | 51 | ||||
-rw-r--r-- | lua/lv-which-key/init.lua | 65 | ||||
-rw-r--r-- | lua/plugins.lua | 2 |
4 files changed, 101 insertions, 18 deletions
@@ -30,6 +30,7 @@ if O.extras then require('lv-dial') require('lv-hop') require('lv-colorizer') + require('lv-spectre') require('lv-symbols-outline') end diff --git a/lua/lv-spectre/init.lua b/lua/lv-spectre/init.lua new file mode 100644 index 00000000..aaa411bc --- /dev/null +++ b/lua/lv-spectre/init.lua @@ -0,0 +1,51 @@ +require('spectre').setup({ + mapping={ + ['toggle_line'] = { + map = "dd", + cmd = "<cmd>lua require('spectre').toggle_line()<CR>", + desc = "toggle current item" + }, + ['enter_file'] = { + map = "<cr>", + cmd = "<cmd>lua require('spectre.actions').select_entry()<CR>", + desc = "goto current file" + }, + ['send_to_qf'] = { + map = "<Blash>q", + cmd = "<cmd>lua require('spectre.actions').send_to_qf()<CR>", + desc = "send all item to quickfix" + }, + ['replace_cmd'] = { + map = "<Bslash>c", + cmd = "<cmd>lua require('spectre.actions').replace_cmd()<CR>", + desc = "input replace vim command" + }, + ['show_option_menu'] = { + map = "<Bslash>o", + cmd = "<cmd>lua require('spectre').show_options()<CR>", + desc = "show option" + }, + ['run_replace'] = { + map = "<Bslash>R", + cmd = "<cmd>lua require('spectre.actions').run_replace()<CR>", + desc = "replace all" + }, + ['change_view_mode'] = { + map = "<Bslash>v", + cmd = "<cmd>lua require('spectre').change_view()<CR>", + desc = "change result view mode" + }, + ['toggle_ignore_case'] = { + map = "ti", + cmd = "<cmd>lua require('spectre').change_options('ignore-case')<CR>", + desc = "toggle ignore case" + }, + ['toggle_ignore_hidden'] = { + map = "th", + cmd = "<cmd>lua require('spectre').change_options('hidden')<CR>", + desc = "toggle search hidden" + }, + -- you can put your mapping here it only use normal mode + } +}) + diff --git a/lua/lv-which-key/init.lua b/lua/lv-which-key/init.lua index 3713a262..27f1b406 100644 --- a/lua/lv-which-key/init.lua +++ b/lua/lv-which-key/init.lua @@ -47,6 +47,7 @@ local opts = { vim.api.nvim_set_keymap('n', '<Space>', '<NOP>', {noremap = true, silent = true}) vim.g.mapleader = ' ' + -- no hl vim.api.nvim_set_keymap('n', '<Leader>h', ':let @/=""<CR>', {noremap = true, silent = true}) @@ -69,26 +70,28 @@ vim.api.nvim_set_keymap("n", "<leader>c", ":BufferClose<CR>", {noremap = true, s -- open projects vim.api.nvim_set_keymap('n', '<leader>p', ":lua require'telescope'.extensions.project.project{}<CR>", {noremap = true, silent = true}) + -- TODO create entire treesitter section local mappings = { - ["/"] = "Comment", - ["c"] = "Close Buffer", - ["e"] = "Explorer", - ["f"] = "Find File", - ["h"] = "No Highlight", - ["p"] = "Projects", + ["/"] = {"<cmd>CommentToggle<cr>", "Comment"}, + [";"] = {"<cmd>Dashboard<cr>", "Dashboard"}, + ["c"] = {"<cmd>BufferClose<cr>", "Close Buffer"}, + ["e"] = {"<cmd>NvimTreeToggle<cr>", "Explorer"}, + ["f"] = {"<cmd>Telescope find_files<cr>", "Find File"}, + ["h"] = {"<cmd>set hlsearch!<cr>", "No Highlight"}, + ["p"] = {"<cmd>lua require'telescope'.extensions.project.project{}<cr>", "Projects"}, d = { - name = "+Diagnostics", + name = "Diagnostics", t = {"<cmd>TroubleToggle<cr>", "trouble"}, w = {"<cmd>TroubleToggle lsp_workspace_diagnostics<cr>", "workspace"}, d = {"<cmd>TroubleToggle lsp_document_diagnostics<cr>", "document"}, q = {"<cmd>TroubleToggle quickfix<cr>", "quickfix"}, l = {"<cmd>TroubleToggle loclist<cr>", "loclist"}, - r = {"<cmd>TroubleToggle lsp_references<cr>", "references"}, + r = {"<cmd>TroubleToggle lsp_references<cr>", "references"} }, D = { - name = "+Debug", + name = "Debug", b = {"<cmd>DebugToggleBreakpoint<cr>", "Toggle Breakpoint"}, c = {"<cmd>DebugContinue<cr>", "Continue"}, i = {"<cmd>DebugStepInto<cr>", "Step Into"}, @@ -97,7 +100,7 @@ local mappings = { s = {"<cmd>DebugStart<cr>", "Start"} }, g = { - name = "+Git", + name = "Git", j = {"<cmd>NextHunk<cr>", "Next Hunk"}, k = {"<cmd>PrevHunk<cr>", "Prev Hunk"}, p = {"<cmd>PreviewHunk<cr>", "Preview Hunk"}, @@ -108,10 +111,10 @@ local mappings = { o = {"<cmd>Telescope git_status<cr>", "Open changed file"}, b = {"<cmd>Telescope git_branches<cr>", "Checkout branch"}, c = {"<cmd>Telescope git_commits<cr>", "Checkout commit"}, - C = {"<cmd>Telescope git_bcommits<cr>", "Checkout commit(for current file)"}, + C = {"<cmd>Telescope git_bcommits<cr>", "Checkout commit(for current file)"} }, l = { - name = "+LSP", + name = "LSP", a = {"<cmd>Lspsaga code_action<cr>", "Code Action"}, A = {"<cmd>Lspsaga range_code_action<cr>", "Selected Action"}, d = {"<cmd>Telescope lsp_document_diagnostics<cr>", "Document Diagnostics"}, @@ -128,8 +131,13 @@ local mappings = { s = {"<cmd>Telescope lsp_document_symbols<cr>", "Document Symbols"}, S = {"<cmd>Telescope lsp_dynamic_workspace_symbols<cr>", "Workspace Symbols"} }, + r = { + name = "Replace", + f = {"<cmd>lua require('spectre').open_file_search()<cr>", "Current File"}, + p = {"<cmd>lua require('spectre').open()<cr>", "Project"} + }, s = { - name = "+Search", + name = "Search", b = {"<cmd>Telescope git_branches<cr>", "Checkout branch"}, c = {"<cmd>Telescope colorscheme<cr>", "Colorscheme"}, d = {"<cmd>Telescope lsp_document_diagnostics<cr>", "Document Diagnostics"}, @@ -141,16 +149,39 @@ local mappings = { R = {"<cmd>Telescope registers<cr>", "Registers"}, t = {"<cmd>Telescope live_grep<cr>", "Text"} }, - S = {name = "+Session", s = {"<cmd>SessionSave<cr>", "Save Session"}, l = {"<cmd>SessionLoad<cr>", "Load Session"}}, - + S = { + name = "Session", + s = {"<cmd>SessionSave<cr>", "Save Session"}, + l = {"<cmd>SessionLoad<cr>", "Load Session"} + }, -- extras z = { - name = "+Zen", + name = "Zen", s = {"<cmd>TZBottom<cr>", "toggle status line"}, t = {"<cmd>TZTop<cr>", "toggle tab bar"}, - z = {"<cmd>TZAtaraxis<cr>", "toggle zen"}, + z = {"<cmd>TZAtaraxis<cr>", "toggle zen"} + } +} + +local visualOpts = { + mode = "v", -- Visual mode + prefix = "<leader>", + 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 = { + ["/"] = {"<cmd>CommentToggle<cr>", "Comment"}, + r = { + name = "Replace", + f = {"<cmd>lua require('spectre').open_visual({path = vim.fn.expand('%')})<cr>", "File"}, + p = {"<cmd>lua require('spectre').open_visual()<cr>", "Project"} } } local wk = require("which-key") wk.register(mappings, opts) +wk.register(visualMappings, visualOpts) + diff --git a/lua/plugins.lua b/lua/plugins.lua index d4b017de..5488b3e7 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -142,7 +142,7 @@ return require("packer").startup(function(use) use {'norcalli/nvim-colorizer.lua', opt = true} require_plugin('nvim-colorizer.lua') use {'windwp/nvim-spectre', opt = true} - require_plugin('windwp/nvim-spectre') + require_plugin('nvim-spectre') use {'simrat39/symbols-outline.nvim', opt = true} require_plugin('symbols-outline.nvim') use {'nvim-treesitter/playground', opt = true} |