Syntax Highlight Bug ?

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
Mathias
Beiträge: 6202
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Syntax Highlight Bug ?

Beitrag von Mathias »

Ich habe das Beispiel scanner.zip ausprobiert.
viewtopic.php?f=25&t=15448&p=139891#p139891

Da ist mit dieser komischer code in sane.pas unter die Augen gekommen.
Kompilierbar ist er, aber ich verstehe nicht was da passiert.

Und die IDE anscheinend auch nicht, ansonsten wären die Farben nicht so komisch.
Und dies sieht mir nach einem Bug aus.

Bei Gelegenheit nehme ich den Code unter die Lupe und schaue was dies macht.
Wen es vereinfacht auch vorkommt, werde ich einen Bug-Report erstellen.
Dateianhänge
Bildschirmfoto vom 2024-02-24 08-58-33.png
Bildschirmfoto vom 2024-02-24 08-58-33.png (99.6 KiB) 4614 mal betrachtet
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
theo
Beiträge: 10498
Registriert: Mo 11. Sep 2006, 19:01

Re: Syntax Highlight Bug ?

Beitrag von theo »

Also Grundsätzlich ist das case dort ein Record mir varianten Teilen:
https://www.freepascal.org/docs-html/ref/refsu15.html

Und den Highlighting Bug beim "{}" Kommentar sehe ich hier nicht. Allerdings auf einer älteren Lazarus Version getestet. Vielleicht ist der neu.
Dateianhänge
laz_record_bug.png
laz_record_bug.png (87.16 KiB) 4595 mal betrachtet

Mathias
Beiträge: 6202
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Syntax Highlight Bug ?

Beitrag von Mathias »

Das ganze ist echt verrückt.

Code: Alles auswählen

const
  a = 0;
  { blabla }
type
  TTest = record
    case byte of
      a: ({none});
      1: (bb: byte);        // commend
      2: (cc: Integer);    // commend
      3: (dd: byte);        // commend
      4: (ee: Integer);    // commend
  end; 
Das {none} wird blau, sobald ich "a" direkt durch "0'" ersetze.
Weiter unten wird es blau, sobald der Type mehr als 5 Zeichen hat. "Byte" hat weniger, also ist es grün, "Integer" hat mehr, dann wird es grün.
Allerdings auf einer älteren Lazarus Version getestet. Vielleicht ist der neu.
Sieht fast so aus, bei der 3.99 ist es vorhanden, die stable ist io.
Dateianhänge
Bildschirmfoto vom 2024-02-24 13-52-17.png
Bildschirmfoto vom 2024-02-24 13-52-17.png (39.98 KiB) 4568 mal betrachtet
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1435
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Syntax Highlight Bug ?

Beitrag von fliegermichl »

Normalerweise hat doch die case Anweisung und die record Anweisung jeweils ein eigenes End. Ich denke, daß es dann richtig eingefärbt wird.

Edit: Normalerweise ist das so aber nicht bei der Definition eines Records.
Der variable Anteil des Records muß der letzte Bestandteil der Recorddefinition sein und deshalb haben sowohl der case als auch der record zusammen nur ein end.
Zuletzt geändert von fliegermichl am So 25. Feb 2024, 17:50, insgesamt 1-mal geändert.

martin_frb
Beiträge: 572
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: Syntax Highlight Bug ?

Beitrag von martin_frb »

Mathias hat geschrieben:
Sa 24. Feb 2024, 14:06

Das {none} wird blau, sobald ich "a" direkt durch "0'" ersetze.
Weiter unten wird es blau, sobald der Type mehr als 5 Zeichen hat. "Byte" hat weniger, also ist es grün, "Integer" hat mehr, dann wird es grün.
Das scheint tatsächlich ein bug zu sein...

Bitter im Issue-Tracker melden.

Mathias
Beiträge: 6202
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Syntax Highlight Bug ?

Beitrag von Mathias »

Ich bin einen Schritt weiter gekommen. Es hängt mit den farbigen Gruppierungen zusammen. Siehe Anhang.

Bei der stable ist das Problem nicht vorhanden. Und bei der gerade frisch installierten trunk ist das Problem vorhanden.
Ich habe bei allen meinem Lazaren die gleiche "editoroptions.xml".

Nur jetzt habe ich noch ein kleines Problem, ich weis nicht mehr wo ich in den Optionen eine Umstellung gemacht habe, so das der Code farbig wird, da ich immer die XML als Backup genommen habe.
Einzig was mir bekannt ist, es ist diese Zeile in der XML:

Code: Alles auswählen

    <CodeFolding UseMarkupOutline="True"/>
Aber ich denke ein andere User weis das sicher ?
Dateianhänge
Bildschirmfoto vom 2024-02-25 08-51-22.png
Bildschirmfoto vom 2024-02-25 08-51-22.png (21.22 KiB) 4504 mal betrachtet
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

wennerer
Beiträge: 524
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Syntax Highlight Bug ?

Beitrag von wennerer »

Hallo Mathias,
les mal da nach:
viewtopic.php?f=5&t=13136 :lol:

Viele Grüße
Bernd

martin_frb
Beiträge: 572
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: Syntax Highlight Bug ?

Beitrag von martin_frb »

So der Fehler sollte behoben sein (Lazarus 3.99)

Mathias
Beiträge: 6202
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Syntax Highlight Bug ?

Beitrag von Mathias »

martin_frb hat geschrieben:
Fr 1. Mär 2024, 21:47
So der Fehler sollte behoben sein (Lazarus 3.99)
Kann es nachvollziehen, das Problem ist weg. :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten