Commit Graph
22 Commits
Author SHA1 Message Date
Nicolas GBandGitHub 138044c7e3 feat(browse): add :Jbrowse to open current file on remote (#89) 2026-02-22 09:05:13 -08:00
Nicolas GBandGitHub 19db4e8178 feat(tag): Implement set/delete/push (push only colocated repistories) (#84) 2026-02-22 08:53:51 -08: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
Trung LamandNicolas 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 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 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
Nicolas GBandGitHub 335663c3ee Feat: Rewrite diff module to allow for external dependencies as jj.nvim's diff tool (#74)
- Refactor diff into modular architecture (native, diffview, codediff)
- Add the possibility for users to define their own diff backend
- Support external diff tools like diffview.nvim codediff.nvim
- Enable visual mode selection to diff two changes in log buffer
- Add summary tooltip integration with terminal
- Update documentation with new diff workflows
2026-01-25 09:39:31 -08:00
Nicolas GBandGitHub 8ed2aa52aa feat(log): Add summary view (#70)
Display a summary of changed files for any revision in the log buffer
using a floating tooltip. From the tooltip, users can diff or edit
specific files directly.

- Add summary tooltip triggered by <S-k> in log buffer
- Integrate tooltip as stateful component of terminal
- Make summary keymaps configurable
- Add documentation and demo gif
2026-01-25 09:25:06 -08:00
NicolasGB b32ba1aa5e fix(utils): get_all_bookmarks returns only local and non deleted ones 2025-11-27 21:29:37 +01:00
NicolasGB 8350606dab feat(cmd): add platform-agnostic PR/MR opening functionality 2025-11-27 20:58:34 +01:00
NicolasGB e22bf5ec4e feat: Add fetch/push commands and log keybinds, make long-running operations non-blocking
Convert blocking jj commands to async using vim.fn.jobstart() to prevent UI
freezing during fetch, push, rebase, squash, and other heavy operations.

Changes:
- Implement execute_command_async() in runner with proper error handling
  - Captures stdout from job and passes to success callback
  - Supports stdin input for commands that require it
  - Includes silent flag to suppress error notifications
  - Replicates sync version's error handling behavior

- Convert blocking operations to async:
  - handle_log_fetch, handle_log_push_all, handle_log_new
  - handle_log_edit, handle_log_abandon, handle_log_describe
  - describe.execute_describe, all init.lua commands

- Add push/fetch as public commands with CLI support:
  - M.fetch() - fetch from remote
  - M.push(opts) - push all changes or specific bookmark
  - CLI: :J push, :J push <bookmark>, :J fetch

- Implement handle_log_push_bookmark() for revision under cursor:
  - Retrieves and strips modified bookmark indicator (*)
  - Pushes specific bookmark to remote
  - Keybind: Shift+p in log buffer

- Update README with new keybinds:
  - a: abandon revision under cursor
  - f: fetch from remote
  - p: push all changes
  - Shift+p: push revision's bookmark

- Add Lua API docs for push command options
2025-11-27 20:58:34 +01:00
NicolasGB e545d02ceb refactor: restructure the whole plugin following a better separation of concers 2025-11-23 16:34:42 +01:00
NicolasGB f6982a7716 fix: split with the same logic as the editor 2025-11-23 16:34:42 +01:00
Nicolas GBandGitHub d385501067 fix: Improve default command parsing logic and allow for toml array definition. (#37) 2025-11-20 13:21:15 +01:00
Sivansh GuptaandGitHub 3f6049b17c feat: D to describe a change in log buffer (#23) 2025-11-20 10:03:06 +01:00
NicolasGB af6dbbc3a7 fix(cmd): Improve default command parsing logic, to allow for builtin functionalities to be used 2025-11-18 14:00:34 +01:00
NicolasGB 756ad1da4a fix(describe): Handle "C" case status in files 2025-10-28 09:45:08 +01:00
NicolasGB fb43a3f33d fix: Move a helper function to the utils file 2025-10-02 10:20:36 +02:00
ea4fa1ff06 Change the :J describe behaviour to open an editable buffer instead of an input box (#6)
Co-authored-by: fautore <fautore@protonmail.com>
2025-10-02 09:43:04 +02:00
NicolasGB 59c0750437 feat(diff): Add options to diff command to allow diffing only current buffer 2025-07-03 19:04:00 +02:00
NicolasGB b258574092 feat(picker): Add a snacks picker with jj status command 2025-06-30 17:42:54 +02:00
NicolasGB 5df7f4f0e5 feat: Initial commit with basic commands and first functionalities 2025-06-24 17:57:55 +02:00