Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   IDE-Formatter erzeugt vier Leerzeichen bei if-Anweisung (https://www.delphipraxis.net/186277-ide-formatter-erzeugt-vier-leerzeichen-bei-if-anweisung.html)

TiGü 19. Aug 2015 15:12

IDE-Formatter erzeugt vier Leerzeichen bei if-Anweisung
 
Hat jemand eine Idee, welche Einstellung bzw. Kombination von Einstellungen, es verursachen könnte, dass mein Formatter in XE7 für einzeilige if-Anweisungen vier Leerzeichen anstatt zwei erzeugt?
Wenn die folgenden Anweisungen mit begin-end; eingeschlossen sind, ist alles wie gewünscht.

Delphi-Quellcode:
// so ist es zur Zeit
if x = 0 then
    Foo
else
    Bar;
Delphi-Quellcode:
// so hätte ich es gerne (wieder)
if x = 0 then
  Foo
else
  Bar;

Uwe Raabe 19. Aug 2015 16:23

AW: IDE-Formatter erzeugt vier Leerzeichen bei if-Anweisung
 
Dein gewünschtes Verhalten ist eigentlich das Standardverhalten. Hast du irgendwas verstellt?

Du kannst ja die aktuellen Einstellungen mal als Profil speichern und dann die Einstellungen zurücksetzen.

stahli 19. Aug 2015 17:08

AW: IDE-Formatter erzeugt vier Leerzeichen bei if-Anweisung
 
In meinem XE3 (Neuinstallation ohne Änderungen) wird es korrekt eingerückt.

Delphi-Quellcode:
begin
  if x = 0 then
    Foo
  else
    Bar;
  begin
    if x = 0 then
      Foo
    else
      Bar;
  end;

Dejan Vu 19. Aug 2015 19:41

AW: IDE-Formatter erzeugt vier Leerzeichen bei if-Anweisung
 
Kann man die Ident-Tiefe nicht einstellen? Oder wird vielleicht mit Tab statt Spaces eingerückt?

Uwe Raabe 19. Aug 2015 22:07

AW: IDE-Formatter erzeugt vier Leerzeichen bei if-Anweisung
 
Zitat:

Zitat von Dejan Vu (Beitrag 1312780)
Kann man die Ident-Tiefe nicht einstellen? Oder wird vielleicht mit Tab statt Spaces eingerückt?

Ja, das ist der Wert, den man unter Tools - Optionen - Umgebungsoptionen - Editor-Optionen - Quelloptionen angibt.

Ich vermute auch, daß eine Einstellung abweichend vom Standard die Ursache ist.

TiGü 20. Aug 2015 08:54

AW: IDE-Formatter erzeugt vier Leerzeichen bei if-Anweisung
 
Ja, ich hatte den Formatter etwas mehr an meine Vorstellungen angepasst.
Die Idee von Uwe war zielführend. Ich habe mein aktuelles Profil gespeichert und mit der Default-Config verglichen.
Ich konnte das Problem auf die folgende Option zurückführen:
Code:
Tools -> Options -> Formatter -> Delphi -> Line breaks -> Insert line breaks for Begin and Single instructions -> Line breaks before single instructions in control statements
Diese muss auf "Yes" stehen bleiben (Standard), bei "No" oder "As is" kommt es zu dem oben gezeigten Verhalten.

Was aber ein bisschen schade ist, denn dadurch wird folgendes:
Delphi-Quellcode:
  case BiDiMode of
    bdLeftToRight : BiDiMode := bdLeftToRight;
    bdRightToLeft : BiDiMode := bdLeftToRight;
    bdRightToLeftNoAlign : BiDiMode := bdLeftToRight;
  else
    LMsg := 'Hello';
  end;
zu sowas:
Delphi-Quellcode:
  case BiDiMode of
    bdLeftToRight :
    BiDiMode := bdLeftToRight;
    bdRightToLeft :
    BiDiMode := bdLeftToRight;
    bdRightToLeftNoAlign :
    BiDiMode := bdLeftToRight;
  else
  LMsg := 'Hello';
  end;
Ja, ich weiß...eigentlich ein Luxusproblem. :oops:

Uwe Raabe 20. Aug 2015 10:26

AW: IDE-Formatter erzeugt vier Leerzeichen bei if-Anweisung
 
Also bei mir sieht das so aus:

Delphi-Quellcode:
  case BiDiMode of
    bdLeftToRight:
      BiDiMode := bdLeftToRight;
    bdRightToLeft:
      BiDiMode := bdLeftToRight;
    bdRightToLeftNoAlign:
      BiDiMode := bdLeftToRight;
  else
    LMsg := 'Hello';
  end;

TiGü 20. Aug 2015 10:54

AW: IDE-Formatter erzeugt vier Leerzeichen bei if-Anweisung
 
Wenn das jetzt doch nur auf einer Zeile mit des case wäre...

Uwe Raabe 20. Aug 2015 12:27

AW: IDE-Formatter erzeugt vier Leerzeichen bei if-Anweisung
 
Ich weiß, was du meinst. Leider wird das case-Konstrukt (logischerweise) genauso behandelt, wie die anderen Steueranweisungen. Hier wäre eine Differenzierung wünschenswert.

Eine ähnliche Unschönheit gibt es auch hier: Formatter mangles code in initialization/finalization

Dejan Vu 21. Aug 2015 07:10

AW: IDE-Formatter erzeugt vier Leerzeichen bei if-Anweisung
 
Ist es nicht ziemlich wurscht, wie das formatiert ist, Hauptsache immer gleich?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:30 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz