Lars Hansen and GitHub
6409ab0a66
fix(encoding): preserve UTF-16/32 content in jj file reads and diffs ( #122 )
...
Use raw command output for jj file reads, add encoding-aware decode/encode
handling, preserve buffer encoding settings across revision buffers, and add
tests for BOMs, endianness, and roundtrip behavior.
2026-06-16 18:35:27 +02:00
Nicolas GB and GitHub
33179e2f15
feat(duplicate): Add a duplication mode ( #118 )
2026-06-08 09:09:28 +02:00
Björn Steinbrink and GitHub
8696843752
fix(picker): run jj without pager to avoid spurious "(END)" marker ( #120 )
2026-06-03 10:40:27 +02:00
Nicolas GB and GitHub
3e151d43c8
feat(browse): fix windows url opening ( #116 )
2026-06-03 09:42:48 +02:00
larpi and GitHub
688616db52
feat(push): add the deleted option for the push operation ( #117 )
2026-06-03 09:21:10 +02:00
NicolasGB
f30eefeaf3
fix(describe): Allow for empty descriptions in the editor
2026-05-26 15:41:11 +02:00
NicolasGB
71f640be45
feat(status,highlights): Handle renamed files in restore and picker flows
...
- Improve status-line parsing to support top-level and nested rename
syntaxes, so actions no longer include trailing braces in paths.
- Update the Snacks status picker integration to pass structured
rename/status metadata and use git_status formatting, preserving
icons/highlighting while showing rename pairs correctly.
- Also tighten renamed-line highlighting in the editor buffer for consistent jjRenamed behavior.
2026-05-19 18:05:17 +02:00
Nicolas GB and GitHub
5558c22471
feat(editor): Add the possibility to configure a window for the editor like in the terminal allowing for "hsplit"/"vsplit"/"tab"/"floating" ( #114 )
2026-05-19 18:04:44 +02:00
b3d449ad41
fix(status): pass --no-pager to jj status ( #113 )
...
Co-authored-by: Tejas Sanap <tejas.sanap@beacon.io >
2026-05-19 11:25:46 +02:00
Nicolas GB and GitHub
fbfff97a18
fix(config): correctly initialize default config and propagate it accordingly to the given submodules ( #111 )
2026-05-15 06:28:00 -07:00
Björn Steinbrink and GitHub
5a0b756570
feat(picker): add <C-d> keybinding to open file and run Jdiff ( #110 )
...
In the status picker, pressing Ctrl-d opens the selected file in the
current window and immediately runs :Jdiff, so the diff view follows
without a second step.
2026-05-15 06:14:24 -07:00
Lars Hansen and GitHub
f5d11a3098
fix(diff): correctly relativize paths for diffing current buffer ( #108 )
2026-05-06 09:34:26 +02:00
larpi and GitHub
a2d194d49e
feat(log): add bookmark deletion command ( #106 )
2026-05-05 17:25:13 +02:00
NicolasGB
46932e5410
feat(log/summary): Add o keymap from the summary that allows users to
...
do the equivalent of `Jtabedit` of the file in under the cursor
2026-04-28 17:52:34 +02:00
NicolasGB
167c206521
feat(diff): Make both codediff/diffview work with the new Jedit
...
command to allow diffing agianst arbitrary revisions in buffer
2026-04-26 19:25:17 +02:00
53a3196210
Feat: Add file module with Jread, Jedit, Jsplit , Jvsplit and Jtabedit similar to fugitive's ( #105 )
...
Co-authored-by: NicolasGB <ngou0210@gmail.com >
2026-04-26 09:50:26 -07:00
NicolasGB
2dbe2c73c5
fix(terminal): make cursor_render_delay optional in the typesystem
v0.6.0
2026-04-07 10:44:02 +02:00
NicolasGB
cbfcdbbf36
fix(terminal): Correctly reset position on floating terminal
2026-04-07 10:31:35 +02:00
Jonas Elhs and GitHub
46141a282e
feat!(terminal): unify terminal window behavior and centralize sizing config ( #102 )
...
- add terminal.window.type support (hsplit, vsplit, floating, tab)
- add terminal.window.split_size for split-based layouts
- rename floating size options to terminal.window.floating_width/floating_height
- validate terminal window ratios during setup
- make terminal.run/run_floating merge default keymaps internally
- remove cmd.split width/height sizing in favor of terminal.window config
- improve floating/log buffer state handling and refresh behavior
- update README examples and configuration docs
BREAKING CHANGE: terminal sizing/config moved to terminal.window.*.
Removed cmd.split.width/cmd.split.height.
Renamed terminal.window.width/height to terminal.window.floating_width/floating_height
2026-04-07 10:31:12 +02:00
NicolasGB
578c5f15df
feat(diff): Now diff command supports <rev1>..<rev2> format
2026-04-04 15:50:52 +02:00
Naoki Mizuno and GitHub
a6e163bcc3
feat(log/keymap): add keymaps to move on revision in log buffer ( #100 )
2026-03-19 11:06:53 +01:00
Naoki Mizuno and GitHub
6580bb93ba
docs(readme): update default config section ( #99 )
2026-03-18 09:41:45 +01:00
Nicolas GB and GitHub
61f123f518
fix(utils): Now getting the commit_id of a revset forces it being unique ( #98 )
...
This will raise an error, as expected, when trying to diff with a revset that has multiple commits associated
2026-03-17 12:11:14 +01:00
NicolasGB
29e4cd054e
fix(bookmark): Always move bookmars with -B to allow the user moving
...
it forward and backwards seemlessly
2026-03-17 11:34:40 +01:00
NicolasGB
d471a03685
docs(readme): Document the bookmark track native usage
2026-03-12 18:10:06 +01:00
NicolasGB
3b6f46b9f6
docs(readme): Document the new editor.auto_insert config option
2026-03-12 18:04:39 +01:00
NicolasGB
d357409268
feat(log): Add change_revset keybind to change the current log revset
...
being displayed in the log command
2026-03-12 18:04:39 +01:00
NicolasGB
80caa923c2
feat(cmd): Implement the bookmark forget as a native function
2026-03-12 18:04:39 +01:00
Nicolas GB and GitHub
1c3d38a626
feat(diff): Add the diff_history command ( #97 )
...
This new command is natively implemented by both the `codediff` and `diffview` backends allowing to easily navigate the changes between two revsets while diffing the.
It also gives a new `:J diff_hisotyr` command that optionally takes a range of revsets formatted `<rev1>..<rev2>` otherwise it prompts the user for the range.
2026-03-12 18:03:23 +01:00
Brad Robinson and GitHub
ec44937e1b
feat(editor): Add auto_insert option for commit/describe buffers ( #88 )
2026-03-12 14:22:02 +01:00
NicolasGB
bbba4051c8
feat(fetch_pr): Introdue the fetch_pr command that allows to pick open
...
Pull requests from github and import them locally
2026-02-24 18:18:59 +01:00
Wonung Kim and GitHub
d6aa067854
fix(keymap): use nowait opts when there are no shared prefixes ( #93 )
2026-02-24 10:17:42 +01:00
Wonung Kim and GitHub
69679f2e15
feat: use sync describe when the log buffer should be re-opened ( #91 )
2026-02-23 11:26:13 +01:00
Wonung Kim and GitHub
f3511cb4b3
feat: refresh buffers when moving the change ( #92 )
2026-02-23 10:11:20 +01:00
5156fa1a3e
fix: prevent duplicate --no-pager in jj log command ( #90 )
...
Co-authored-by: Roman Konoval <rkonoval@rkonoval.com >
2026-02-23 09:44:10 +01:00
NicolasGB
185190909d
fix(terminal): Remove <S-a> keymap that locked the terminal
v0.5.0
2026-02-22 18:06:58 +01:00
Nicolas GB and GitHub
138044c7e3
feat(browse): add :Jbrowse to open current file on remote ( #89 )
2026-02-22 09:05:13 -08:00
Nicolas GB and GitHub
19db4e8178
feat(tag): Implement set/delete/push (push only colocated repistories) ( #84 )
2026-02-22 08:53:51 -08:00
Trung Lam and Nicolas GB
86d15cecec
Add --no-pager for jj log
...
This allows long lists of revisions to be viewable instead of being
truncated.
2026-02-19 16:20:42 +01:00
Roman Konoval and Nicolas GB
d483544483
Fixes default command parsing
2026-02-18 09:22:30 +01:00
NicolasGB
3d78c28f7e
feat(split): add jj split command with interactive floating terminal
...
Add split command that allows splitting a change into multiple revisions
from the log buffer or via :J split. Supports --parallel, --message,
--fileset, and --ignore-immutable flags. Includes immutability checks
with user confirmation and empty change detection.
2026-02-13 18:44:27 +01:00
NicolasGB
3115a0b3f0
fix(parser): use / instead of \ as divergent change separator
...
jj uses / (e.g., rs/1) for divergent changes, not \. Update the parser
to match revsets with /N suffix and update all related tests.
2026-02-13 10:13:30 +01:00
Trung Lam and Nicolas GB
27ab6707be
Use the real files when diffing against current revision
...
This allows users to get lsp functionalities and run `gf` to navigate to
the file in a different tab.
2026-02-13 10:08:15 +01:00
NicolasGB
7827458568
fix(terminal): clamp tooltip dimensions to available screen space
...
Prevent tooltip from overflowing when the cursor is near the bottom or
right edge of the screen by clamping width and height to the remaining
space.
2026-02-11 13:54:41 +01:00
NicolasGB
2318e5ecfc
feat(cmd/bookmark): Add a new bookmark_track command that uses
...
vim.ui.select listing the currently untracked remotes
2026-02-10 17:35:29 +01:00
NicolasGB
6a3ff64116
fix(editor,terminal): Correctly restore log buffer and cursor position
...
A regresion was introduced by #81 where the log buffer was not being
restored when there was no modification after describing from the
log buffer. This has been reworked and now the function `on_done` is
always called not only when there are lines in the buffer giving the
responsibility to check the nilness on the `on_done` function.
There was a bug also when restoring cursor position which was being
wiped when the buffer was closed which is not actually what we want
2026-02-09 13:10:09 +01:00
NicolasGB
149ae9ebc7
fix(commit): Migrate from simulated commit to jj's native command.
...
- This required some improvements on the editor buffer logic,
introduced a `on_write` (previously on_done but it wasn't the
right meaning) hook and an `on_unload` to allow for both
describe and commit correct workflows.
- Introduced an utils function to extract the description text and
clean it post buffer write
2026-02-07 17:32:57 +01:00
NicolasGB
400a3a5263
fix(describe/keymaps): Remove <ESC> from default keymap which may not be a
...
sensitive default after some users feedback
2026-02-02 17:08:39 +01:00
Nicolas GB and GitHub
680d864e11
fix(diff): Correctly compare against @- instead of HEAD~1 when ( #76 )
v0.4.1
2026-01-29 09:28:50 +01:00
NicolasGB
463fd0876a
fix(parser): support for divergent changes
2026-01-25 19:15:06 +01:00