A quick maintenance release with a few improvements and fixes.
Features
Absorb operation
Absorb is now an operation, similar to rebase, revert, duplicate, and other revision operations, instead of immediately running jj absorb with jj's default destination set.
Default absorb targets are preselected and shown with << into >>. Use space to toggle candidate targets, enter to apply, and esc to cancel. Leaving the target set unchanged keeps the previous plain absorb behaviour; changing the set constrains absorb to the selected targets.
Directory entries in fuzzy file search
Fuzzy file/path search now includes directory entries such as src/ and src/pkg/, not only leaf file paths. This makes it easier to filter or jump by directory in larger trees.
(#642)
Improvements
Better theme control for selected rows
Selected-row styling is now theme-owned for revset completion, target picker, details lists, and menu shortcuts. Themes can customise selected sub-roles such as "revset completion selected matched", "revset completion selected text", "revset completion selected dimmed", "picker selected matched", and "picker selected text".
This fixes cases where "revset completion selected" changed the selected row background but not the selected foreground or bold styling. Default selected backgrounds for revset completion and target picker now also align with revision details.
(#637)
Consistent preview position toggle in details
shift+p now toggles the preview between side and bottom positions in the details view, matching the existing behaviour in revisions, evolog, and oplog views.
(#649)
Fixes
Lua revset actions outside the revset editor
Lua scripts can now dispatch revset actions such as revset.set(...) even when the revset editor is not open. This fixes custom revision-scoped Lua actions that update the current revset.
Stale file selection after closing details
Closing the details view now clears stale selected-file state, and restoring an existing details operation resynchronises file selection. This fixes cases where a later command error could make Esc behave incorrectly instead of dismissing the visible flash message.
(#643)
Bookmark names with special characters
Bookmark operations now match bookmark names exactly. This fixes deleting bookmarks whose names contain characters that jj would otherwise interpret as string pattern syntax, such as 1.3.63-+-json-length-fix.
What's Changed
- feat(absorb): add target picker for jj absorb --into by @manusajith in #640
- feat: include directories in path entries for fuzzy_files by @baggiiiie in #642
- Remove unused struct fields, methods, and functions by @nikosavola in #648
- fix(details): add shift+p binding for preview_toggle_bottom by @ansel1 in #649
- fix(ui): unable to dismiss flash message after split command error by @baggiiiie in #643
- fix(bookmarks): match bookmark names exactly by @baggiiiie in #650
New Contributors
- @manusajith made their first contribution in #640
- @nikosavola made their first contribution in #648
- @ansel1 made their first contribution in #649
Full Changelog: v0.10.3...v0.10.4