Releases: k2hyun/jvim
Releases · k2hyun/jvim
Release list
jvim 0.7.4
Changes
- Add normal-mode
esfor editing multiline JSON string values in the embedded editor panel. - Support count prefixes such as
3esto require at least N decoded newline characters. - Preserve nested embedded editing across
es -> ejandes -> esflows. - Add embedded string diff support in
jvimdiff. - Update README/help docs and add regression tests.
Verification
pytest -qpassed: 428 tests.- Built
jvim-0.7.4sdist and wheel.
v0.7.3
v0.7.2
v0.7.1
Bug Fixes
- Fix crash when
prefix_w=0causes negative format specifier in tilde line rendering
Improvements
- Use
FoldMixin._open_fold()API instead of direct_foldsdict manipulation in differ - Use
_sync_folds_to_target()for initial fold copy in diff viewer - Add
cursor_colclamping during diff panel sync - Wrap cursor_row temporary change in try-finally for exception safety
v0.7.0
v0.6.0
What's New
- Diff gutter line numbers - Logical line number (left panel) and JSONL record number (both panels) in jvimdiff
- Active panel indicator - Title bar highlights the focused panel with color
- Cursor sync - Cursor position syncs between left/right panels in jvimdiff
- Tab panel switch -
Tabkey toggles focus between left and right diff panels
Full Changelog
v0.5.0
What's New
- Multi-file navigation: Open multiple files (
jvim a.json b.json c.json) and switch with:n(next),:N(previous),:e#(alternate file) - Binary file defense: Reject binary files (null bytes, non-UTF-8) in both jvim and jvimdiff
Full Changelog
v0.4.0
What's New
- Substitute command —
:s/old/new/gwith JSONPath support - JSONL auto-detect — automatically detect JSONL content in non-
.jsonlfiles
Improvements
- Reorganized internal modules into
mode/andaction/packages (widget.py 1824→1028 lines, -44%) - Fixed newline handling in substitute replacement results
v0.3.3
Performance
- Block-level diff optimization: ~229x faster for large JSON arrays (50K lines: 39s → 171ms)
- Detects indent-based block boundaries in formatted JSON
- Compares segment hashes (~10K) instead of individual lines (~130K)
- Only runs line-level diff on changed segments
- Falls back to full line diff for non-array structures
- Adds 50K-line guard for fallback path (full REPLACE)