| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| Jantrit source code.tar.gz | 2026-01-28 | 35.3 MB | |
| Jantrit source code.zip | 2026-01-28 | 35.6 MB | |
| README.md | 2026-01-28 | 3.4 kB | |
| Totals: 3 Items | 71.0 MB | 0 | |
Splice Primitive, Text Processing Overhaul & Editor Upgrades
This release introduces a powerful new sequence manipulation primitive, significantly overhauls text replacement logic for better performance, and adds new navigation features to the Editor and Viewer applications.
✨ New Features
Core Primitives
- New
spliceprimitive: Added(splice seq1 seq2 idxs) -> seq. This is a powerful vector-based operation.idxsis provided as a:numsvector; slices are taken from the source sequences in turn based on these indices.- Note: You can provide the same source sequence for both arguments. The returned sequence maintains the type of the sources.
- Macro Safety: Added
(msafe? %0) -> :t | :nilpredicate to check if a parameter is macro-safe (i.e., ensures it will not lead to double evaluation). - Text Compression: Added
(compress str tab_width) -> strto complement the existingexpandfunction.
Editor & Viewer
- Form Selection: Added support for selecting Lisp forms.
- New method:
:select_formadded toDocument. - New actions:
action-select-form,action-copy-form, andaction-cut-form.
- New method:
- Whitespace Navigation: Added ability to jump over whitespace.
- New methods:
:left_white_spaceand:right_white_spaceadded toBuffer. - New actions:
action-left-white-spaceandaction-right-white-space.
- New methods:
🚀 Improvements & Refactoring
Text Processing & Search
- Replace Compiler: Implemented a suite of text replace compiler functions. These generate a single
splicecommand to perform entire text replacement operations efficiently.- Functions:
replace-compile,replace-matches,replace-edits,replace-regex-edits,replace-str-edits,replace-regex, andreplace-str.
- Functions:
- Adoption: The Editor app,
sed, andgrepcommands have been updated to utilize the newreplacecompiler. - Reflow: Moved
:reflowmethod out ofSyntaxclass and intoroot.incutils. Signature is now(reflow words line_width) -> lines.
System & TUI
- TUI Upgrades: The TUI now shares command history with the GUI Terminal app and includes improved line editing handling.
- Sequence Operations:
erase,insert,replace, androtatehave been converted to macros that utilize the newspliceprimitive. - Installer: The install process now utilizes 10 VP nodes (updated to reflect current hardware capabilities).
- Document Class: Tidied up multi-cursor merging logic on floored operations.
- List Class: Added
:ref_allmethod. Moved several list methods to inlines-calls ending with a jump to:ref_all.
⚠️ Breaking Changes & API Cleanups
- Slice Reversal: Removed the
:rslicemethod. The standard:slicemethod now detects and handles slice reversal automatically.:slicenow strictly returns a new slice object. - String Cleanup: Removed
:str :append,:str :init1, and:str :init3methods during a rewrite of:str :cat. - Search Signatures: The signatures for Search classes,
:search, and:match?have changed. They now take the pattern (or compiled meta data) as a single non-optional argument. - Renames:
lisp-elem-indexhas been renamed toseq-elem-index.
Enjoy
Chris