SynEdit Highlight Full Line

Rund um die LCL und andere Komponenten

SynEdit Highlight Full Line

Beitragvon Knittel » 7. Jul 2017, 18:51 SynEdit Highlight Full Line

Hallo zusammen,

ich habe mir einen Syntax Highlighter (TSynCustomHighlighter) für die SynEdit Komponente geschrieben. Das funktioniert auch alles super, dank den
examples die Lazarus selbst dafür mitliefert. Ich hätte momentan nur noch gerne ein extra feature, wo ich noch nicht rausgefunden habe, ob das
funktioniert.
Ich würde gerne, wenn ein Token in einer Zeile existiert, dass dann die ganze Zeile einen besonderen (z.B. grau) Hintergrund bekommt, oder zumindestens die
Leerzeichen am Ende der Zeile.
Grund: Ein Skript was ich highlighten möchte sieht ungefähr so aus:
Code: Alles auswählen
bla bla
\wait()
text text
\wait()
\anycommand()
blub blub

Die Waits trennen effektiv Abschnitte in dem Skript. Daher hätte ich gerne die komplette Zeile mit dem \wait() grau hinterlegt, damit man auf einen Blick sieht aus
wie viel Blöcken das Script besteht und wo diese anfangen/aufhören.

Ist das möglich und wenn ja wie?

Vielen Dank schonmal im Vorraus! :)
Knittel
 
Beiträge: 10
Registriert: 26. Mär 2016, 14:43

Beitragvon martin_frb » 8. Jul 2017, 11:15 Re: SynEdit Highlight Full Line

Was genau ist die Frage?

1) Den Bereich hinter der Zeile highlighten?
2) Die Token fuer \, wait, () modifizieren?

1:
HL.GetEol() // return true, and then
HL.GetEndOfLineAttribute()

Siehe auch TLazSynDisplayBuffer.GetNextHighlighterToken in synedittextbuffer.pp

2: Siehe Pascal Highlighter TSynPasSyn.GetTokenAttribute
Code: Alles auswählen
  if FTokenIsCaseLabel and (GetTokenID in [tkIdentifier, tkKey, tkNumber, tkString])
  then begin
    FCurCaseLabelAttri.Assign(Result);
    FCurCaseLabelAttri.Merge(FCaseLabelAttri);
    Result := FCurCaseLabelAttri;
  end;
 

Beachte welche variable welche Klasse hat.
martin_frb
 
Beiträge: 391
Registriert: 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other | 
CPU-Target: mostly 32 bit
Nach oben

Beitragvon Knittel » 8. Jul 2017, 23:16 Re: SynEdit Highlight Full Line

Was genau ist die Frage?

Die Frage 1. Es geht um die gesamte Zeile, also Zeichen + unsichtbare Leerzeichen bis nach ganz rechts.

1:
HL.GetEol() // return true, and then
HL.GetEndOfLineAttribute()
Siehe auch TLazSynDisplayBuffer.GetNextHighlighterToken in synedittextbuffer.pp


Das ist das was ich gesucht habe. Danke! Funktioniert bei mir zwar noch nicht, aber das sollte ich selber noch hinbekommen. 8)
Knittel
 
Beiträge: 10
Registriert: 26. Mär 2016, 14:43

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 1 Gast

porpoises-institution
accuracy-worried