Entwickler-Ecke

Wünsche, Anregungen & Kritik - Syntax-Hervorhebung: try...except


Yogu - So 27.01.08 15:19
Titel: Syntax-Hervorhebung: try...except
Hallo,

ich finde folgenden kleine Fehler etwas nervig:


Delphi-Quelltext
1:
try...except                    

aber


Delphi-Quelltext
1:
try ... except                    

Wenn vor except ein Punkt steht, wird es nicht mehr als Schlüsswlwort gewertet. Wenn ich also die try...except-Konstruktion erklären möchte (wie hier [http://www.delphi-forum.de/viewtopic.php?t=80326]), muss ich es als try ... except schreiben.

Wäre schön, wenn das noch behoben werden würde.

Grüße,
Yogu


Christian S. - So 27.01.08 15:27

Hallo!

Das ist kein Bug, sondern ein Feature. ;-) Der Punkt ist ein Escape-Character für Schlüsselworte, denn alles, was in Delphi nach einem Punkt steht, ist eine Zahl oder ein Objekt-Member (ich hoffe, ich habe nix vergessen). Es ist übrigens auch das Verhalten des Delphi-Syntaxhighlighters.

Grüße
Christian


Heiko - So 27.01.08 15:45

Dann müsste der Highlighter aber konsequent sien und auch bei try ... except das except nicht hervorheben ;).


Christian S. - So 27.01.08 15:52

user profile iconHeiko hat folgendes geschrieben:
Dann müsste der Highlighter aber konsequent sien
Nö, muss er nicht. Das ist immer eine Frage von Aufwand und nutzen. Das Escapen mit einem direkt davor stehenden Zeichen ist viel leichter zu implementieren als eine Untersuchung, ob irgendwo davor mal ein "try" kommt.


Heiko - So 27.01.08 16:02

Ne das meine ich nicht. Denn Delphi hebts ja auch vervor, auch wenn kein try bisher definiert wurde ;).

Was ich meine, dass Delphi das except allgemein nicht hervorhebt, wenn davor ein Punkt ist. Er unterscheidet da nicht, ob ein Leerzeichen davor ist also nicht.


Christian S. - So 27.01.08 16:07

user profile iconHeiko hat folgendes geschrieben:
Was ich meine, dass Delphi das except allgemein nicht hervorhebt, wenn davor ein Punkt ist. Er unterscheidet da nicht, ob ein Leerzeichen davor ist also nicht.
Und auch da gilt: Gucken ob Zeichen i-1 ein Punkt ist oder gucken, ob Zeichen nach beliebig vielen Leerzeichen ein Punkt ist, ist ein Unterschied ;-)

Wenn es wenig Aufwand ist, mache ich den Highlighter gerne intelligenter, aber in der Praxis wird kaum jemand nach dem Punkt ein Leerzeichen machen (wenn es gültiger Code und kein "..." ist). Daher spare ich mir das einfach mal :-)


Heiko - So 27.01.08 16:10

Arbeitet der Highlighter mit preg_replace? Wenn ja ist das kein großer Aufwand - ansonsten natürlich schon ;).


Christian S. - So 27.01.08 16:18

Nein, tut er nicht. Da wüsste ich sicherlich auch, wie das geht :zwinker:


Yogu - Mo 28.01.08 16:13

Ok, dann ist es halt ein Feature.

Aber vielleicht könnte man überprüfen, ob das Zeichen vor dem Punkt auch ein Punkt ist; und es dann trotzdem highlighten. Im normalen Fall hat man nur einen Punkt, bei "..."s sind es gleich drei. Das nur so als Vorschlag.

Grüße,
Yogu