In den Extension Settings sollten noch folgende Einstellungen überprüft werden:
- Formatting Provider:
ormolu
- Manage HLS:
GHCup
- Ghcup Executable Path: expl. Angabe, wenn
ghcup
nicht im PATH vorhanden
Die Extension übernimmt dann automatisch die notwendigen Installationen (GHC, HLS).
Bei korrektem Setup sollten z.B folgende Features von HLS in VScode funktionieren:
- Linter (als Anmerkungen im Code)
- Formatter
Shift-Alt-F
- Typinformationen
Hover
- Sprung zur Deklaration
Ctrl-Click
Insert Final Newline
aktivieren- der Formatchecker über github erwartet diese, lokal fügt Ormolu diese nicht automatisch hinzu
Auto Save
undFormat on Save
aktivieren
Der Branch main
stellt den Entwicklungsstand dar.
Der Zustand auf release
wird auf den GitHub Runner ausgeliefert und ist somit der Production-Branch.
Beim Entwickeln eines neuen Features ist stets ein eigener Branch anzulegen.
Dieser zweigt von main
ab und folgt der Namenskonvention feature-<issue>
, wobei <issue>
für die ID des Tickets steht.
Zu neuen Regeln sollten immer entsprechende Testfälle mitentwickelt werden (Ordner: test
). Dazu gehören Java-Beispieldateien, die eigentlichen Tests und der jeweilige Eintrag in test/Spec.hs
.
Um neue Regeln in der Anwendung zu integrieren, müssen diese in src/Language/Java/Rules.hs
angegeben werden.
stack build
- Laden der Dependencies und Builden des Projektsstack test
- Führt die Test-Suite ausstack exec jlint <srcpath>
- Ausführen der Executable- nützliche Entwickler-Optionen: (zusätzlich
--
zum Escapen der Optionen vonstack
)-t/--show-ast
- nur Anzeige von AST, keine Analyse--pretty
- printet formatierten Java-Code
- Beispiel 1:
stack exec jlint -- /test/java
führt die Analyse aller .java Files im angegebenen Ordner durch - Beispiel 2:
stack exec jlint -- /test/java/UseElse.java -t
zeigt den AST der Datei
- nützliche Entwickler-Optionen: (zusätzlich