Releases: ikozyris/kri
0.8.1
TL;DR: Search/replace and reduced memory usage per line
New features:
- Find/replace strings with range (9acc88e, 0ae5ef1, 769d458)
- Boyer Moore algorithm or multithreaded character search (b9a4878)
- Warn for unsaved changes (02d161d)
- Delete whole line with Ctrl-K (9cfd730)
- Syntax highlighting for more types (f32de98)
- Command for terminal commands are inline, except from replace (fd8ae71)
- Compile with
$(nproc)
threads, don't reinstall packages on Arch (3a0b6b4)
Optimizations:
- Reduce memory usage of empty line by 50%
- Shrink gap buffer struct to 16 bytes, 128-bit with bit packing (4b2e6d5)
- Arrays > 1KiB are heap-allocated (360a96e)
Bug fixes:
- Delete on EOF does backspace (7d95b51)
- Snap to tab on x after maxx (9809917)
- Insert character at x = maxx; cut line (1f154b6)
- Reprint characters after deleting, if line is cut (e11b9e3)
- Syntax highlighting on new files (e11b9e3)
Kri packaged for Arch Linux by @adamperkowsk, available in the AUR (#27)
Full Changelog: b89f695...v0.8.1
0.8
Finally, the first stable release is here!
New features:
- Go to previous/next word with shift + arrow key (379e04b, 00a7446)
- Build faster by allowing parallel compilation
Optimizations:
- 42% (19ns) faster syntax highlighting (7570974)
Bug fixes:
- Memory leak when resizing window, saving (8af9b81, 3519a33)
- Go back from tab + space rather than pure tab (659636b)
Refactorings / Cleanups:
- Add function descriptions comments where missing (b55fea7)
- Apply highlighting macro to function
- Declarations on header files, definition on source files (2b179dd)
Full Changelog: v0.8-rc2...v0.8
0.8 rc 2
Optimizations:
- Resize buffer on next power of 2 (a5d2f41)
Missing features:
- Indicate line has been cut by adding a highlighted > character. (7cc45c8)
- Print rest of line after inserting at maxx (26f27e5)
- Use actual tab by default
Bug fixes:
- Delete key on unicode (4f67029)
- Merge lines with delete (41f959c)
- Go to last char of last line (68c591f)
- Window resize signal handled (1020191)
- Backspace on tab (eedf4e5)
- Uncut line with unicode or tab cut in half (c54cd69. 9f7fa1e)
- Syntax highlighting regression (96db7ba)
Refactor/Cleanup:
- Merge usual patterns of move+print to a macro (68bc256)
- ifdef highlight + highlight into macro (b90c309)
- Refactor key_left, key_right (eedf4e5, 7cc45c8)
View more info about release schedule.
Full Changelog: v0.8-rc1...v0.8-rc2
0.8 rc 1
No significant new features as this is release focused on bug fixing (mostly tabs and offsets).
New:
shrink
command now also show how many bytes were freed (64b091b)
Fixes:
- Tabs (e1c91be, cea7f27, 4e18543)
- Calculate offset of tab when traversing
- Properly delete tabs
- Better home/end
- Print enough spaces to match tab
- Do not scroll when inserting before tab
- Go to end-of-line with trailing whitespace, tabs, or unicode (d28b970, 0102bbd, 8c42dab)
data()
function in gap buffer (97b68be)- Cut lines multiple times (227359f, 73d93eb, 28ad86c)
- Merge lines with delete key (cca4041)
- Shrink lines (64b091b)
- Calculate offset of x by up/down arrow (ed65eea)
- Various bugs in
wizard.sh
(59e2fbc, 64b091b)- Detect correctly install/uninstall path
- Fix hard-coded strings/paths for configurations
printline()
with offset > 2x bytes (73d93eb, d28b970)
Removed obsolete commands: setgap
, fixgap
and fixstr
(59e2fbc, 5ea0b9a)
Full Changelog: v0.8-beta4...v0.8-rc1
0.8 beta 4
New:
- Syntax highlighting (48333d7)
- RAM usage now is the PSS (0ccdc12)
- View line after wrap point (when line length > maxx) (0ccdc12)
- Shrink buffers to just fit lines (gap = 0) (a08bcc0)
Optimizations:
- 2.5x performance boost in reading (3edb996)
data
function with zero memory allocations
Fixes:
- Line wrapping with unicode characters
- Memory leaks and errors (as detected by valgrind)
Full Changelog: v0.8-beta3...v0.8-beta4
0.8 beta 3
New:
- Optimizations
- Scroll to specific line command (
scroll
) - Renamed some commands (628e3f2)
- Read-only mode (no processing of text) (bcfb3a1)
--help
to view usage guide
Fixes:
- Compilation on ncurses 6 and GCC 13 (42bb91c)
- Install/Uninstall via wizard script (284a938)
- Insert newline at non-end of line and text
Full Changelog: v0.8-beta2...v0.8-beta3
0.8 beta 2
New:
- Performance improvements on moving cursor (5de99e7, 2d50028, ba611a8)
- Improve reading performance by 36% (e46bcf2)
- Open another file (ba611a8)
Fixes:
- Backspace when cursor is at x=0 merges the two line (bb9b251)
- Save multiple times (89f10aa)
- Memory leaks (15510f6, e46bcf2)
Full Changelog: v0.8-beta1...v0.8-beta2
0.8 beta 1
First Beta of 0.8
Gapped buffer data structure #23
Switch to a custom gap buffer, rather than rope
Benefits:
- Less RAM usage
- multithreaded with OpenMP
- faster amortized insertion
The container which wraps lines is now a linked list for O(1) insertion of lines.
Other changes include:
- performance gains
- better handling of newlines
- command prompt in top bar
- more robust reading/saving/printing
- modular code
Full Changelog: v0.8-alpha3...v0.8-beta1
0.8 alpha 3
New features:
- Customizable keybindings
Bug fixes:
- Enter
- Line numbering
Full Changelog: v0.8-alpha2...v0.8-alpha3
0.8 alpha 2
Changes Include:
- Makefile
- Rope data structure
- Completely fixed writing
- Unicode supported with
wchar_t
Full Changelog: v0.8-alpha1...v0.8-alpha2