Installation
FinDSL gibt es in vier Varianten — wähle die für deinen Anwendungsfall passende:
| Variante | Für wen | Bezugsquelle |
|---|---|---|
| VS-Code-Extension | Sachbearbeiter:innen, Fachreferent:innen | aus VS Code heraus bzw. .vsix-Datei |
| IntelliJ-/JetBrains-Plugin | Nutzer:innen von IntelliJ IDEA & Co. | Plugin-.zip (GitHub Releases) |
| Natives CLI-Binary | Kommandozeile, CI/CD-Pipelines ohne Node | GitHub Releases |
npm-Paket (@findsl/cli) | Entwickler:innen mit Node-Toolchain | npm-Registry |
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- VS-Code-Extension: Visual Studio Code (oder ein kompatibler Editor wie VSCodium/Cursor). Der Sprachserver ist enthalten — kein separates CLI nötig.
- IntelliJ-/JetBrains-Plugin: IntelliJ IDEA (Community oder Ultimate) bzw. eine andere JetBrains-IDE ab Version 2024.2 sowie das LSP4IJ-Plugin. Der native Sprachserver wird beim ersten Start automatisch geladen — kein separates CLI nötig.
- Natives CLI-Binary: keine. Das Binary ist self-contained (enthält die Laufzeit) und läuft ohne Node-Installation.
- npm-Paket: Node.js (aktuelle LTS, mindestens Version 20).
Version
Abschnitt betitelt „Version“Alle Befehle unten verwenden <version> als Platzhalter. Setze dort die gewünschte Versionsnummer ein — die jeweils aktuelle findest du auf der Releases-Seite.
VS-Code-Extension
Abschnitt betitelt „VS-Code-Extension“Der empfohlene Weg für die meisten Anwender:innen — bringt Syntax-Hervorhebung, Hover mit Bezug auf die gesetzliche Quelle, Inlay-Hints für Geldeinheiten und ausführbare Prüffälle direkt in den Editor.
Während der Vorabphase wird die Extension als .vsix-Datei am GitHub-Release ausgeliefert (die öffentlichen Marktplätze akzeptieren keine SemVer-Vorabversionen).
-
Die Datei
findsl-<version>.vsixvon der Releases-Seite herunterladen. -
In VS Code installieren — entweder über die Kommandozeile:
Terminal-Fenster code --install-extension findsl-<version>.vsixOder in VS Code: Befehlspalette (
Strg+Umschalt+P/Cmd+Umschalt+P) → „Extensions: VSIX installieren…” → die Datei auswählen. -
Eine
.findsl-Datei öffnen — die Extension aktiviert sich automatisch.
IntelliJ-/JetBrains-Plugin
Abschnitt betitelt „IntelliJ-/JetBrains-Plugin“Für IntelliJ IDEA (Community & Ultimate) und alle JetBrains-IDEs ab Version 2024.2. Das Plugin bindet denselben Sprachserver wie die VS-Code-Extension an — über LSP4IJ. Funktionen und Bedienung sind unter IntelliJ-/JetBrains-Plugin beschrieben.
-
LSP4IJ installieren. Das FinDSL-Plugin setzt es zwingend voraus und zieht es bei der Installation aus einer Datei nicht automatisch mit. In der IDE: Settings/Preferences → Plugins → Marketplace, nach
LSP4IJsuchen, Install. -
Die Datei
findsl-intellij-<version>.zipvon der Releases-Seite herunterladen. -
Das Plugin aus der Datei installieren: Settings/Preferences → Plugins → ⚙ → „Install Plugin from Disk…” → die
.zipauswählen. Anschließend die IDE neu starten. -
Eine
.findsl-Datei öffnen. Beim ersten Mal lädt das Plugin den passenden Sprachserver einmalig vom Release nach (SHA-256-verifiziert, danach aus dem Cache).
Natives CLI-Binary
Abschnitt betitelt „Natives CLI-Binary“Vorgefertigte, eigenständige Binaries für Linux, macOS und Windows liegen auf der Releases-Seite. Sie enthalten alles Nötige und laufen ohne Node-Installation — ideal für CI/CD und Build-Server.
# Beispiel: x64curl -L -o findsl.tar.gz \ https://github.com/findsl/findsl/releases/download/v<version>/findsl-<version>-linux-x64.tar.gztar -xzf findsl.tar.gzsudo mv findsl-*/findsl /usr/local/bin/findsl --helpDas Linux-Tarball ist mit dem GPG-Schlüssel der FinDSL-Maintainer signiert — siehe Sicherheit & Signaturen.
# Beispiel: Apple Silicon (arm64)curl -L -o findsl.tar.gz \ https://github.com/findsl/findsl/releases/download/v<version>/findsl-<version>-darwin-arm64.tar.gztar -xzf findsl.tar.gzsudo mv findsl-*/findsl /usr/local/bin/Die macOS-Binaries sind nicht von Apple notarisiert — beim ersten Start ist ein einmaliger Freischaltschritt nötig. Siehe macOS freischalten.
findsl-<version>-windows-x64.zipvon der Releases-Seite herunterladen und entpacken.findsl.exeausführen. Die Datei ist nicht signiert — siehe Windows freischalten.- Optional
findsl.exein einen Ordner imPATHkopieren (z. B.%USERPROFILE%\bin).
npm-Paket
Abschnitt betitelt „npm-Paket“Für Entwickler:innen mit Node-Toolchain. Die npm-Pakete sind mit Sigstore-Provenance signiert — die signierte Alternative für alle, die unsignierten Binaries nicht vertrauen wollen.
npm install -g @findsl/clifindsl --helpnpm install @findsl/clinpx findsl --helpSicherheit & Signaturen
Abschnitt betitelt „Sicherheit & Signaturen“FinDSL ist ein freies Projekt. Auf kostenpflichtige Code-Signing-Zertifikate für macOS (Apple Developer ID) und Windows (Authenticode) wird bewusst verzichtet — die Integrität lässt sich stattdessen über offene, kostenfreie Verfahren prüfen.
| Artefakt | Signatur |
|---|---|
| npm-Pakete | Sigstore-Provenance (SLSA Level 3) |
| Linux-Tarball | GPG (detached, .asc) |
SHA256SUMS (alle) | GPG-signiert (SHA256SUMS.asc) |
| macOS-/Windows-Binary | unsigniert — Prüfung über SHA256SUMS |
macOS freischalten
Abschnitt betitelt „macOS freischalten“Beim ersten Aufruf eines nicht notarisierten Binaries meldet macOS sinngemäß: „Apple konnte nicht verifizieren, dass ‚findsl‘ frei von Schadsoftware ist.” Das ist erwartet. Der Schritt ist einmalig pro Binary.
xattr -d com.apple.quarantine /usr/local/bin/findslfindsl --help- Das Binary einmal starten — es wird blockiert.
- Systemeinstellungen → Datenschutz & Sicherheit öffnen. Ganz unten erscheint „‚findsl‘ wurde blockiert…” → „Trotzdem öffnen”.
- Beim erneuten Start „Öffnen” bestätigen. macOS merkt sich die Freigabe.
Windows freischalten
Abschnitt betitelt „Windows freischalten“Bei der .exe zeigt SmartScreen: „Der Computer wurde durch Windows geschützt.” Die Datei ist trotzdem ausführbar:
- Im Dialog „Weitere Informationen” anklicken.
- „Trotzdem ausführen” wählen.
Integrität prüfen
Abschnitt betitelt „Integrität prüfen“Jedes Release enthält eine SHA256SUMS-Datei (Prüfsummen aller Artefakte) plus die GPG-signierte SHA256SUMS.asc.
gpg --keyserver keys.openpgp.org --recv-keys <SCHLÜSSEL_ID>curl -L -o findsl.tar.gz.asc \ https://github.com/findsl/findsl/releases/download/v<version>/findsl-<version>-linux-x64.tar.gz.ascgpg --verify findsl.tar.gz.asc findsl.tar.gzGet-FileHash findsl-<version>-windows-x64.zip -Algorithm SHA256# Den Hash mit dem Eintrag in SHA256SUMS vergleichen.# Sigstore-Provenance einsehen (Herkunft: Repo + Commit):npm view @findsl/cli --json | jq ".dist.attestations"Versionierung
Abschnitt betitelt „Versionierung“Alle Artefakte werden im Lockstep veröffentlicht: Eine FinDSL-Version X.Y.Z bedeutet, dass @findsl/cli@X.Y.Z, das .vsix und das native Binary exakt zusammenpassen. Versionen zu mischen ist nicht unterstützt.