diff --git a/nvim/init.lua b/nvim/init.lua index c6b078d..1732de7 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -16,5 +16,6 @@ require("plugins.telescope").setup_keymaps() require("plugins.mini").setup() require("plugins.ui").setup() require("plugins.autotag").setup() -require("plugins.tools").setup() +require("plugins.error-viewer").setup() +require("plugins.search-replace").setup() require("plugins.ai").setup() diff --git a/nvim/lua/plugins/error-viewer.lua b/nvim/lua/plugins/error-viewer.lua new file mode 100644 index 0000000..685d34d --- /dev/null +++ b/nvim/lua/plugins/error-viewer.lua @@ -0,0 +1,33 @@ +local M = {} + +local lazy = require("utils.lazy") +local pack = require("utils.pack") + +local function with_trouble(fn) + lazy.load_once("trouble", pack.registry({ "trouble.nvim" }), function() + require("trouble").setup({}) + end) + fn() +end + +function M.setup() + vim.keymap.set("n", "xx", function() + with_trouble(function() + vim.cmd("Trouble diagnostics toggle") + end) + end, { desc = "Diagnostics (Trouble)" }) + + vim.keymap.set("n", "xX", function() + with_trouble(function() + vim.cmd("Trouble diagnostics toggle filter.buf=0") + end) + end, { desc = "Buffer diagnostics" }) + + vim.keymap.set("n", "xQ", function() + with_trouble(function() + vim.cmd("Trouble qflist toggle") + end) + end, { desc = "Quickfix list" }) +end + +return M diff --git a/nvim/lua/plugins/search-replace.lua b/nvim/lua/plugins/search-replace.lua new file mode 100644 index 0000000..d6393ec --- /dev/null +++ b/nvim/lua/plugins/search-replace.lua @@ -0,0 +1,35 @@ +local M = {} + +local lazy = require("utils.lazy") +local pack = require("utils.pack") + +-- grug guide +-- navigate splits: or +local function with_grug(fn) + lazy.load_once("grug-far", pack.registry({ "grug-far.nvim" }), function() + require("grug-far").setup({}) + end) + fn(require("grug-far")) +end + +function M.setup() + vim.keymap.set("n", "S", function() + with_grug(function() + vim.cmd("GrugFar") + end) + end, { desc = "Search/replace project" }) + + vim.keymap.set("n", "s", function() + with_grug(function(grug) + grug.open({ prefills = { paths = vim.fn.expand("%") } }) + end) + end, { desc = "Search/replace current file" }) + + vim.keymap.set("x", "s", function() + with_grug(function(grug) + grug.open({ visualSelectionUsage = "operate-within-range" }) + end) + end, { desc = "Search/replace in selection" }) +end + +return M