dev: automated commit - 2025-10-12 17:49:26
This commit is contained in:
parent
8846fe8a52
commit
332c6aa6d6
4 changed files with 80 additions and 26 deletions
73
lua/plugins/grug-far.lua
Normal file
73
lua/plugins/grug-far.lua
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
local M = {
|
||||
"MagicDuck/grug-far.nvim",
|
||||
cmd = "GrugFar",
|
||||
keys = {
|
||||
{ "<leader>S", "<cmd>GrugFar<CR>", desc = "GrugFar: Find and Replace" },
|
||||
},
|
||||
}
|
||||
|
||||
M.config = function()
|
||||
require("grug-far").setup({
|
||||
-- Basic configuration
|
||||
minSearchLength = 2,
|
||||
debounceMs = 300,
|
||||
|
||||
-- UI configuration
|
||||
ui = {
|
||||
border = "rounded",
|
||||
size = {
|
||||
width = 0.8,
|
||||
height = 0.8,
|
||||
},
|
||||
},
|
||||
|
||||
-- Search configuration
|
||||
search = {
|
||||
engines = { "ripgrep", "astgrep", "astgrep-rules" },
|
||||
defaultEngine = "ripgrep",
|
||||
},
|
||||
|
||||
-- History configuration - simplified to avoid the autoSave bug
|
||||
history = {
|
||||
enabled = true,
|
||||
maxEntries = 50,
|
||||
},
|
||||
|
||||
-- Result configuration
|
||||
resultLocation = {
|
||||
showNumberLabel = true,
|
||||
},
|
||||
})
|
||||
|
||||
-- Additional keybindings for enhanced functionality
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
group = vim.api.nvim_create_augroup("grug-far-custom-keybinds", { clear = true }),
|
||||
pattern = { "grug-far" },
|
||||
callback = function()
|
||||
-- Toggle --fixed-strings flag
|
||||
vim.keymap.set("n", "<localleader>w", function()
|
||||
local state = unpack(require("grug-far").get_instance(0):toggle_flags({ "--fixed-strings" }))
|
||||
vim.notify("grug-far: toggled --fixed-strings " .. (state and "ON" or "OFF"))
|
||||
end, { buffer = true, desc = "Toggle fixed strings" })
|
||||
|
||||
-- Open result location and close grug-far
|
||||
vim.keymap.set("n", "<C-enter>", function()
|
||||
require("grug-far").get_instance(0):open_location()
|
||||
require("grug-far").get_instance(0):close()
|
||||
end, { buffer = true, desc = "Open location and close" })
|
||||
|
||||
-- Jump back to first input
|
||||
vim.keymap.set("n", "<left>", function()
|
||||
require("grug-far").get_instance(0):goto_first_input()
|
||||
end, { buffer = true, desc = "Jump to first input" })
|
||||
|
||||
-- Toggle multiline mode
|
||||
vim.keymap.set("n", "<localleader>m", function()
|
||||
local state = unpack(require("grug-far").get_instance(0):toggle_flags({ "--multiline" }))
|
||||
vim.notify("grug-far: toggled --multiline " .. (state and "ON" or "OFF"))
|
||||
end, { buffer = true, desc = "Toggle multiline mode" })
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
return M
|
||||
Loading…
Add table
Add a link
Reference in a new issue