Open MrSebastian opened 3 weeks ago
Kann man dies eventuell mit unseren Lintingtools abdecken?
Ich habe eine noch generischere regexp gefunden die auch private Methoden abdeckt:
\(.*\)\s*\{\s*\n\s*\n
Erfolgreicher Versuch im checkstyle.xml mit:
`
<property name="format" value="\(.*\)\s*\{\s*\n\s*\n"/>
</module>`
@MrSebastian Macht es Sinn, das in jedem Projekt zum checkstyle.xml hinzuzufügen? Das Zusammenspiel spotless/checkstyle/IntelliJ ist mir noch nicht ganz klar
Wir werden es wohl in jedes File im Projekt einbauen müssen da jeder Services ein eigenes Maven-Projekt ist. Bei einem Multi-Modul-Projekt dürfte es an zentraler Stelle ausreichen.
Der RegeEx funktioniert leider nicht in folgenden Fällen
Das Verhalten bestimmter RegExp-Ausdrücke im Suchfeld von IntelliJ, bei der Verwendung in checkstyle.xml und in einem Web-Tester wie https://regex101.com/ ist unterschiedlich und nicht nachvollziehbar. Es handelt sich um ein reines Trial&Error-Spiel.
So funktioniert folgende RegExp z.B. mit dem WebTester für obige Code-Beispiele:
(public|private|protected) (?!(record)).*\((.|\n)*\).*\{\n\n
Aber leider nicht in der IntelliJ-Suche und über Checkstyle.
Mein Vorschlag wäre:
(public|private|protected) (?!(record)).*\(.*\).*\{
RegEx zum Auffinden:
ja die Leerzeilen im Regex sind wichtig
Mit dem RegEx können die Methoden gefunden werden die die mit einer Leerzeile beginnen.
Wir sollte keine Leerzeile zum Beginn der Methode haben. Leerzeilen gehören zwischen Methoden oder in Methoden zu Trennung von logischen Blöcken, Kommentare nach Statemens, Definition lokaler Variablen von ersten Statement.
Todo