... also das mit dem Einrücken funktioniert wie erwartet
Wer mal einen kleinen Einblick möchte:
Delphi-Quellcode:
if SupportsIn(lItemBlockStart, [IDetectThen, IDetectElse, IDetectDo]) then
begin
if Supports(lItemBlockStart, IDetectElse, lDetectElse) then
lDetectCaseFlag := Supports(lDetectElse.ItemBlockStartLink, IDetectCase)
else
lDetectCaseFlag := False;
if (lDetectCaseFlag) then
currentRealAlign.LeftSpaceNext := currentRealAlign.LeftSpaceNext + 1 // Sonderfall Else zum Case --> NEU <--
else
if (not lDetectExceptFlag) then
currentRealAlign.IncLeftSpaceMove; // sonst nach then/else/do eine Zeile/Anweisung einrücken (wenn Zeilenende)
end;
Zu den Format-Sonderfällen ist jetzt ein neuer Sonderfall hinzu gekommen.
Ich versuche das halt alles durch zugewiesene Eigenschaften zu deklarieren, die der Formatierer dann entsprechend umsetzt.
Da spielen dann noch die ganzen Verschachtelungen und Blöcke hinein.