From 97b7fb70b027aa55f8e92380b77c04a7ed45afd1 Mon Sep 17 00:00:00 2001 From: Gustaf Rydholm Date: Thu, 13 Jan 2022 21:58:01 +0100 Subject: Add spectre --- lua/config/spectre.lua | 137 +++++++++++++++++++++++++++++++++++++++++++++++++ lua/plugins.lua | 1 + 2 files changed, 138 insertions(+) create mode 100644 lua/config/spectre.lua (limited to 'lua') 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 = "lua require('spectre').toggle_line()", + desc = "toggle current item", + }, + ["enter_file"] = { + map = "", + cmd = "lua require('spectre.actions').select_entry()", + desc = "goto current file", + }, + ["send_to_qf"] = { + map = "Q", + cmd = "lua require('spectre.actions').send_to_qf()", + desc = "send all item to quickfix", + }, + ["replace_cmd"] = { + map = "c", + cmd = "lua require('spectre.actions').replace_cmd()", + desc = "input replace vim command", + }, + ["show_option_menu"] = { + map = "o", + cmd = "lua require('spectre').show_options()", + desc = "show option", + }, + ["run_replace"] = { + map = "R", + cmd = "lua require('spectre.actions').run_replace()", + desc = "replace all", + }, + ["change_view_mode"] = { + map = "m", + cmd = "lua require('spectre').change_view()", + desc = "change result view mode", + }, + ["toggle_ignore_case"] = { + map = "I", + cmd = "lua require('spectre').change_options('ignore-case')", + desc = "toggle ignore case", + }, + ["toggle_ignore_hidden"] = { + map = "H", + cmd = "lua require('spectre').change_options('hidden')", + 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 +} diff --git a/lua/plugins.lua b/lua/plugins.lua index 9cbb5ca..f0edd41 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -52,4 +52,5 @@ return { } end }, + { "windwp/nvim-spectre" }, } -- cgit v1.2.3-70-g09d2