A linter that checks whether you spelled "Lechlitner" correctly.
That's it. That's the whole tool.
$ lech-linter .git/config
.git/config:2:8: possible misspelling "Lechniter" (did you mean "Lechlitner"?)
.git/config:7:2: possible misspelling "Lechlitnre" (did you mean "Lechlitner"?)
Error: 2 possible misspellings
lech-linter [file ...] [flags]
Pass one or more files to check them. Pass nothing to read from stdin.
# Check a file
lech-linter CONTRIBUTORS.md
# Check several files
lech-linter docs/*.md
# Pipe something in
git log --oneline | lech-linterExit code is 0 if nothing is wrong, 1 if Lechlitner has been wronged.
Output format: file:line:col: possible misspelling "X" (did you mean "Lechlitner"?)
All packages include shell completions (bash, fish, zsh) and a man page. No extra steps required.
Nix (flakes)
# flake.nix inputs
lech-linter.url = "github:asphaltbuffet/lech-linter";# home-manager
imports = [ inputs.lech-linter.homeManagerModules.default ];Or try it without installing:
nix run github:asphaltbuffet/lech-linter -- --helpDebian / Ubuntu
dpkg -i lech-linter_*.debRHEL / Fedora
rpm -i lech-linter_*.rpmAlpine
apk add --allow-untrusted lech-linter_*.apkTarball (macOS, Linux, Windows)
Download from the releases page, extract, and put the binary somewhere on your PATH.
Go
go install github.com/asphaltbuffet/lech-linter@latestCompletions and man page not included. You get what you pay for.
Any word between 7 and 13 characters with a Levenshtein distance ≤ 3 from "lechlitner" (case-insensitive) is flagged — unless it actually is "lechlitner", in which case well done.
The length filter exists so the tool doesn't flag "lech" or "supercalifragilistic" as possible misspellings. You're welcome.
Column numbers are byte offsets, not character offsets. If your source file contains multi-byte UTF-8 characters before a misspelling on the same line, the reported column will be slightly off. Given that the target name is ASCII and this tool exists to catch typos in people's names rather than parse Unicode poetry, this seems fine.
If you've found a word that is or isn't being flagged and you feel strongly about it, open an issue. The threshold and length filter are tunable if there's a compelling case.
This project uses Jujutsu for version control, mise as the task runner, and Nix flakes for reproducible builds.
mise run test # run tests
mise run lint # lint
mise run build # build to ./dist/Named after Ben Lechlitner, who presumably got tired of seeing his name mangled.