Skip to content

Releases: ikozyris/kri

0.8.1

24 Jan 18:49
e5ddcbb
Compare
Choose a tag to compare

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

02 Dec 15:33
b914b70
Compare
Choose a tag to compare
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

15 Nov 09:54
96db7ba
Compare
Choose a tag to compare

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:

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

28 Oct 10:49
4e18543
Compare
Choose a tag to compare

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

27 Jul 22:30
8e84b6a
Compare
Choose a tag to compare

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

04 Jun 15:54
14c87b0
Compare
Choose a tag to compare
0.8 beta 3 Pre-release
Pre-release

New:

  • Optimizations
    • 2x faster reading of file (buffering) (14c87b0)
    • 3x faster in moving cursor (SIMD) (3360e94)
  • 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

06 May 20:41
ba611a8
Compare
Choose a tag to compare
0.8 beta 2 Pre-release
Pre-release

New:

Fixes:

Full Changelog: v0.8-beta1...v0.8-beta2

0.8 beta 1

23 Mar 16:53
Compare
Choose a tag to compare
0.8 beta 1 Pre-release
Pre-release

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

30 Aug 10:16
37d9f48
Compare
Choose a tag to compare
0.8 alpha 3 Pre-release
Pre-release

New features:

  • Customizable keybindings

Bug fixes:

  • Enter
  • Line numbering

Full Changelog: v0.8-alpha2...v0.8-alpha3

0.8 alpha 2

28 Aug 21:03
e8dfe06
Compare
Choose a tag to compare
0.8 alpha 2 Pre-release
Pre-release

Changes Include:

  1. Makefile
  2. Rope data structure
  3. Completely fixed writing
  4. Unicode supported with wchar_t

Full Changelog: v0.8-alpha1...v0.8-alpha2