From 540268d618627079c9b958a955b586e1888b46a8 Mon Sep 17 00:00:00 2001 From: Gustaf Rydholm Date: Tue, 10 Aug 2021 23:15:04 +0200 Subject: Major refactor of nvim --- .config/nvim/lua/extra/spectre.lua | 144 +++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 .config/nvim/lua/extra/spectre.lua (limited to '.config/nvim/lua/extra/spectre.lua') diff --git a/.config/nvim/lua/extra/spectre.lua b/.config/nvim/lua/extra/spectre.lua new file mode 100644 index 0000000..12133d8 --- /dev/null +++ b/.config/nvim/lua/extra/spectre.lua @@ -0,0 +1,144 @@ +local M = {} +local Log = require "core.log" + +M.config = function() + 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 + } +end + +return M -- cgit v1.2.3-70-g09d2