Fast and fuzzy search through your jj diffs
Search jj (Jujutsu) diffs with ripgrep in Neovim.
- test
- Search through
jj diffoutput using ripgrep patterns - Live search with telescope.nvim or snacks.nvim
- Preview diff context for each match
- Jump to files from search results
- Quickfix fallback when no picker is available
Optional:
- telescope.nvim for fuzzy picker
- snacks.nvim for fuzzy picker
{
"username/jjrg",
dependencies = {
"nvim-telescope/telescope.nvim", -- optional
-- or
"folke/snacks.nvim", -- optional
},
config = function()
require("jjrg").setup()
end,
keys = {
{ "<leader>jj", "<cmd>Jjrg<cr>", desc = "Search jj diff" },
{ "<leader>jd", "<cmd>JjrgDiff<cr>", desc = "Show jj diff" },
},
}| Command | Description |
|---|---|
:Jjrg |
Open live search picker |
:JjrgSearch <pattern> |
Search for pattern in jj diff |
:JjrgDiff |
Show full jj diff in a buffer |
:JjrgTelescope |
Force Telescope picker |
:JjrgSnacks |
Force Snacks picker |
local jjrg = require("jjrg")
-- Live search picker
jjrg.live()
-- Search for a pattern
jjrg.search("pattern")
-- Show diff in buffer
jjrg.show_diff()require("jjrg").setup({
-- Additional ripgrep arguments
rg_args = { "--color=never", "--no-heading", "--with-filename", "--line-number" },
-- Additional jj diff arguments
jj_args = {},
-- Use telescope picker if available
use_telescope = true,
-- Use snacks.nvim picker if available (takes priority)
use_snacks = true,
-- Auto-open quickfix after search (fallback)
quickfix_open = true,
})nvim --headless -u tests/minimal_init.lua -c "PlenaryBustedDirectory tests/ {minimal_init = 'tests/minimal_init.lua'}"MIT