Release Notes
Lint's output pointed at advice that did not exist: every per-rule code it
printed answered "Unknown error code" when passed to lash explain. This
release closes that loop, stops W_INDEX_ORPHAN from reporting files the
root index plainly references, and stops lash lint from crashing outright
when a long note carries a multi-byte character at the truncation point.
Added
lash explainnow knows every codelash lintemits. The per-rule syntax,
semantic and cross-file codes (E_SYNTAX_*,E_SEM_*,E_NOTE_*,
E_LINK_*,W_INDEX_ORPHAN, and theW_/I_variants) previously answered
"Unknown error code", so following the advice in lint's own output was a dead
end. Warnings and info-level codes are also labelled as such rather than
introduced as errors.- Lint's summary names one of the codes it just reported alongside the
lash explaininvocation for it.
Fixed
-
lash lintno longer panics while renderingW_NOTE_TOO_LONG. The
warning's snippet truncated the note by byte index, so a multi-byte
character straddling the cut point — an em dash, an accented letter, a CJK
character — crashed the whole run with exit 101 instead of printing a
warning. Truncation now lands on a character boundary, here and in every
other place that shortens user text for display (#70, #71). -
W_INDEX_ORPHANno longer fires for files the root index does reference. A
link destination ended at the last)on the line, so an entry annotated
with a parenthetical —- [Alpha](tasks/alpha.md) (superseded)— recorded a
path matching no file, and only the first link on a line was read at all, so
two links on one line reported both files as orphans. Destinations now end at
the parenthesis that closes their own link, parentheses inside a path are
balanced, angle-bracketed and titled destinations are understood, and every
link on a line is collected (#60). -
.lashignoreis reachable from where users hit it. TheW_INDEX_ORPHAN
warning names it in the message text,lash lint --helpandlash --help
describe file discovery, and the README, user guide and error-code reference
document it. The mechanism already worked; nothing pointed at it (#58). -
lash explain --listno longer drops codes whose prefix matched no category.
EveryW_andI_code was silently missing from the listing.
Install lash 0.5.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/fixture-dev/lash/releases/download/v0.5.0/lash-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/fixture-dev/lash/releases/download/v0.5.0/lash-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install fixture-dev/tap/lashDownload lash 0.5.0
| File | Platform | Checksum |
|---|---|---|
| lash-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| lash-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| lash-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| lash-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| lash-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |