cspell

Damit sich während der Programmierung im Quellcode keine Rechtschreibfehler einschleichen, nutze ich die Code Spell Checker Erweiterung in Visual Studio Code. Damit werden schon während des Programmierens falsche oder unbekannte Wörter blau unterkringelt. Ich habe mich nun gefragt, ob ich mit pre-commit die gleiche Überprüfung machen kann, damit ich quasi gezwungen bin korrekte Rechtschreibung abzuliefern, und ich habe mich gefragt, wie eigentlich die Erweiterung unter der Decke funktioniert. Beides erfahrt ihr im Folgenden.

Die Erweiterung nutzt ein Tool cspell, welches ihr euch einfach mit npm als Command-line-Tool installieren könnt. Vorher müsst ihr noch sicherstellen, dass ihr NodeJS installiert habt, welches npm enthält.

npm install -g cspell@latest

Nachdem könnt ihr einfach in dem Verzeichnis, in welchem ihr die Rechtschreibung prüfen möchtet, cspell ausführen.

# all files
cspell **/*
# all md (Markdown) files
cspell **/*.md

Damit könnt ihr jetzt Englisch prüfen. cspell lässt sich aber auch um andere Sprachen erweitern. Einfach bei npm nach beispielsweise @cspell/dict-de-de suchen und für andere Sprachen als Deutsch dann das de-de eben ersetzen. Die Installation der Sprache besteht dann aus den folgenden Befehlen.

npm install -g @cspell/dict-de-de
cspell link add @cspell/dict-de-de

Jetzt könnt ihr mit den Befehlen von oben auch andere Sprachen prüfen. cspell verwendet automatisch ein paar Dictionaries, wie unter anderem ein companies mit bekannten Firmennamen.

Es fehlt nun nur noch die Integration in pre-commit. Hierfür hat cspell ein eigenes Repository angelegt: https://github.com/streetsidesoftware/cspell-cli, welches ihr dann in eurer .pre-commit-config.yaml wie folgt referenzieren könnt.

repos:
-   repo: https://github.com/streetsidesoftware/cspell-cli
    rev: v8.3.0
    hooks:
    -   id: cspell

So wird dann bei jedem Commit auf Englisch geprüft. Die Anpassung an beispielsweise Deutsch folgt über eine zusätzliche Datei cspell.config.yaml im Wurzelverzeichnis eures Repositories, hier könnt ihr dann auch Wörter hinzufügen, die ihr von der Überprüfung ausnehmen wollt.

version: "0.2"
dictionaries:
- de-de
ignoreWords: []

Das war der kleine Ausflug mit cspell. Ich hoffe, das Tool hilft euch auch weiter, um möglichst wenig Rechtschreibfehler in euer Sourcecode einzubauen. Wie immer könnt ihr gerne Kommentare schreiben, wenn ihr Anregungen oder Fragen habt. Ansonsten freue ich mich über einen virtuellen Kaffee ☕.


[1]: https://github.com/streetsidesoftware/vscode-spell-checker

[2]: http://cspell.org/

[3]: https://github.com/streetsidesoftware/cspell-cli