summaryrefslogtreecommitdiff
path: root/lua/config/spectre.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/config/spectre.lua')
-rw-r--r--lua/config/spectre.lua137
1 files changed, 137 insertions, 0 deletions
diff --git a/lua/config/spectre.lua b/lua/config/spectre.lua
new file mode 100644
index 0000000..874d496
--- /dev/null
+++ b/lua/config/spectre.lua
@@ -0,0 +1,137 @@
+local status_ok, spectre = pcall(require, "spectre")
+if not status_ok then
+Log:get_default().error "Failed to load hop"
+return
+end
+
+spectre.setup {
+
+color_devicons = true,
+highlight = {
+ ui = "String",
+ search = "DiffChange",
+ replace = "DiffDelete",
+},
+mapping = {
+ ["toggle_line"] = {
+ map = "t",
+ 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 = "Q",
+ cmd = "<cmd>lua require('spectre.actions').send_to_qf()<CR>",
+ desc = "send all item to quickfix",
+ },
+ ["replace_cmd"] = {
+ map = "c",
+ cmd = "<cmd>lua require('spectre.actions').replace_cmd()<CR>",
+ desc = "input replace vim command",
+ },
+ ["show_option_menu"] = {
+ map = "o",
+ cmd = "<cmd>lua require('spectre').show_options()<CR>",
+ desc = "show option",
+ },
+ ["run_replace"] = {
+ map = "R",
+ cmd = "<cmd>lua require('spectre.actions').run_replace()<CR>",
+ desc = "replace all",
+ },
+ ["change_view_mode"] = {
+ map = "m",
+ cmd = "<cmd>lua require('spectre').change_view()<CR>",
+ desc = "change result view mode",
+ },
+ ["toggle_ignore_case"] = {
+ map = "I",
+ cmd = "<cmd>lua require('spectre').change_options('ignore-case')<CR>",
+ desc = "toggle ignore case",
+ },
+ ["toggle_ignore_hidden"] = {
+ map = "H",
+ cmd = "<cmd>lua require('spectre').change_options('hidden')<CR>",
+ desc = "toggle search hidden",
+ },
+ -- you can put your mapping here it only use normal mode
+},
+find_engine = {
+ -- rg is map with finder_cmd
+ ["rg"] = {
+ cmd = "rg",
+ -- default args
+ args = {
+ "--color=never",
+ "--no-heading",
+ "--with-filename",
+ "--line-number",
+ "--column",
+ },
+ options = {
+ ["ignore-case"] = {
+ value = "--ignore-case",
+ icon = "[I]",
+ desc = "ignore case",
+ },
+ ["hidden"] = {
+ value = "--hidden",
+ desc = "hidden file",
+ icon = "[H]",
+ },
+ -- you can put any option you want here it can toggle with
+ -- show_option function
+ },
+ },
+ ["ag"] = {
+ cmd = "ag",
+ args = {
+ "--vimgrep",
+ "-s",
+ },
+ options = {
+ ["ignore-case"] = {
+ value = "-i",
+ icon = "[I]",
+ desc = "ignore case",
+ },
+ ["hidden"] = {
+ value = "--hidden",
+ desc = "hidden file",
+ icon = "[H]",
+ },
+ },
+ },
+},
+replace_engine = {
+ ["sed"] = {
+ cmd = "sed",
+ args = nil,
+ },
+ options = {
+ ["ignore-case"] = {
+ value = "--ignore-case",
+ icon = "[I]",
+ desc = "ignore case",
+ },
+ },
+},
+default = {
+ find = {
+ --pick one of item in find_engine
+ cmd = "rg",
+ options = { "ignore-case" },
+ },
+ replace = {
+ --pick one of item in replace_engine
+ cmd = "sed",
+ },
+},
+replace_vim_cmd = "cdo",
+is_open_target_win = true, --open file on opener window
+is_insert_mode = false, -- start open panel on is_insert_mode
+}