Added
- Highlight
HEAD,CONNECT, andOPTIONSHTTP methods by default (#261, thanks @g0l4!) - Add builtin keyword highlighting for
undefined,NULL,nil,NIL,NaN,FALSE, andTRUE - File truncation detection in follow mode
- Support for parentheses in URL paths (e.g. Wikipedia-style URLs) with balanced parenthesis detection
- Clear error message for
--execon Windows instead of a generic
failure (#232)
Fixed
- Fix zombie processes when using
--execby properly waiting on the child process after it exits - Surface the actual error when the stream processor fails during initial read, instead of a generic channel-receive error
- Gracefully handle broken pipe (e.g.
tspin | head) instead of panicking --follownot working on certain filesystems (NFS, FUSE, Docker bind mounts, etc.) by replacinglinemuxwith a polling-based file reader (#240)- Crash when reading files with non-UTF-8 content (#31)
- URLs wrapped in parentheses or single quotes incorrectly including surrounding delimiters in the highlight
- Files with symlinks in their path could not be opened consistently (#244, #134)
- Quoted regions now highlight correctly while preserving inner
highlights (#171)
Crate
HighlighterBuildermethods now take ownedselfinstead of&mut self, enabling full method chaining (e.g.Highlighter::builder().with_number_highlighter(...).build())- Differentiate between Regexp Errors and Aho-Corasick Errors
- Feature-gate CLI dependencies (
tokio,clap,rayon, etc.) so library consumers can usedefault-features = falseto avoid compiling them
Changed
- IPv6 highlighting is now opt-in via
--extras ipv6instead of being enabled by default - Breaking (CLI):
--enable ip-addresses/--disable ip-addressesrenamed to--enable ipv4/--disable ipv4 - Builtin keyword highlighting of
truechanged from red to green - Breaking (config): The
quotes_tokenkey in the[quotes]section of theme config files has been renamed toquote_token. Existing config files using the old key will silently fall back to the default (") - Breaking (crate):
QuotesConfigrenamed toQuoteConfigand itsquotes_tokenfield renamed toquote_token
Performance
- Use SIMD-accelerated
memchrfor newline detection in buffered reader - Cache ANSI escape sequence finders using
LazyLockstatics instead of recreating per call - Reduced string allocations across highlighters by replacing
format!()withwrite!(), eliminating per-match allocations, and increasing pre-allocation buffers
Build
- Enable LTO, single codegen unit, and
strip = truefor release builds - Trimmed and modernized dependencies: replaced
async-traitwith native async traits,miettewithanyhow,ctrlcwith tokio signals; removeduuid