Commit Graph
11 Commits
Author SHA1 Message Date
ca6d751de6 fix(file): show files added since the diffed revision as empty instead of erroring (#130)
Co-authored-by: Roman Konoval <roman@jiko.io>
2026-06-23 09:52:02 +02:00
Nicolas GBandGitHub 7fc91fe6d2 feat(resolve): add resolve command and log integration (#125)
Add first-class conflict resolution support to jj.nvim.

   - add `jj.cmd.resolve` to run `jj resolve` in a floating terminal or via an
     external tool
   - add `:J resolve` with support for `-r/--revision`, `--tool`,
     `--external/--ext`, and positional filesets
   - integrate resolve into the log buffer with the `gr` mapping and optional
     `resolve_strategies` picker
   - add `utils.is_change_conflicted()` and avoid opening resolve when the
     selected revision has no conflicts
   - document resolve usage, config, and keymaps in the README
   - add tests for resolve arg parsing and conflict detection helpers
2026-06-16 19:06:33 +02:00
Lars HansenandGitHub 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
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 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 KimandGitHub 69679f2e15 feat: use sync describe when the log buffer should be re-opened (#91) 2026-02-23 11:26:13 +01:00
Nicolas GBandGitHub 6eb41f631e Feat: Annotation by file and line (#55) 2025-12-29 11:46:35 -08:00
NicolasGB 5dc6fbafa7 fix(runner): use sh -c wrapper for safe command execution 2025-12-19 16:57:38 +10:00
Nicolas GBandGitHub d63761e1bf feat(bookmark): add bookmark management from log buffer and bookmark_move API (#51) 2025-11-27 22:07:22 +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