mirror of https://gitlab.com/basile.b/dexed.git
highlighter, add token for the attributes
This commit is contained in:
parent
7fd272608c
commit
24f612714d
|
@ -12,7 +12,7 @@ uses
|
||||||
type
|
type
|
||||||
|
|
||||||
TTokenKind = (tkCommt, tkIdent, tkKeywd, tkStrng, tkBlank, tkSymbl, tkNumbr,
|
TTokenKind = (tkCommt, tkIdent, tkKeywd, tkStrng, tkBlank, tkSymbl, tkNumbr,
|
||||||
tkDDocs, tkSpecK, tkError, tkAsmbl);
|
tkDDocs, tkSpecK, tkError, tkAsmbl, tkAttri);
|
||||||
|
|
||||||
TRangeKind = (rkString1, rkString2, rkTokString, rkBlockCom1, rkBlockCom2,
|
TRangeKind = (rkString1, rkString2, rkTokString, rkBlockCom1, rkBlockCom2,
|
||||||
rkBlockDoc1, rkBlockDoc2, rkAsm);
|
rkBlockDoc1, rkBlockDoc2, rkAsm);
|
||||||
|
@ -54,6 +54,7 @@ type
|
||||||
fAsblrAttrib: TSynHighlighterAttributes;
|
fAsblrAttrib: TSynHighlighterAttributes;
|
||||||
fSpeckAttrib: TSynHighlighterAttributes;
|
fSpeckAttrib: TSynHighlighterAttributes;
|
||||||
fErrorAttrib: TSynHighlighterAttributes;
|
fErrorAttrib: TSynHighlighterAttributes;
|
||||||
|
fAttriAttrib: TSynHighlighterAttributes;
|
||||||
fLineBuf: string;
|
fLineBuf: string;
|
||||||
fTokStart, fTokStop: Integer;
|
fTokStart, fTokStop: Integer;
|
||||||
fTokKind: TTokenKind;
|
fTokKind: TTokenKind;
|
||||||
|
@ -72,6 +73,7 @@ type
|
||||||
procedure setAsblrAttrib(value: TSynHighlighterAttributes);
|
procedure setAsblrAttrib(value: TSynHighlighterAttributes);
|
||||||
procedure setSpeckAttrib(value: TSynHighlighterAttributes);
|
procedure setSpeckAttrib(value: TSynHighlighterAttributes);
|
||||||
procedure setErrorAttrib(value: TSynHighlighterAttributes);
|
procedure setErrorAttrib(value: TSynHighlighterAttributes);
|
||||||
|
procedure setAttriAttrib(value: TSynHighlighterAttributes);
|
||||||
procedure doAttribChange(sender: TObject);
|
procedure doAttribChange(sender: TObject);
|
||||||
procedure doChanged;
|
procedure doChanged;
|
||||||
protected
|
protected
|
||||||
|
@ -90,6 +92,7 @@ type
|
||||||
property inlineAsm: TSynHighlighterAttributes read fAsblrAttrib write setAsblrAttrib;
|
property inlineAsm: TSynHighlighterAttributes read fAsblrAttrib write setAsblrAttrib;
|
||||||
property special: TSynHighlighterAttributes read fSpeckAttrib write setSpeckAttrib;
|
property special: TSynHighlighterAttributes read fSpeckAttrib write setSpeckAttrib;
|
||||||
property errors: TSynHighlighterAttributes read fErrorAttrib write setErrorAttrib;
|
property errors: TSynHighlighterAttributes read fErrorAttrib write setErrorAttrib;
|
||||||
|
property attributes: TSynHighlighterAttributes read fAttriAttrib write setAttriAttrib;
|
||||||
public
|
public
|
||||||
constructor create(aOwner: TComponent); override;
|
constructor create(aOwner: TComponent); override;
|
||||||
destructor destroy; override;
|
destructor destroy; override;
|
||||||
|
@ -190,6 +193,7 @@ begin
|
||||||
fAsblrAttrib := TSynHighlighterAttributes.Create('Asblr','Asblr');
|
fAsblrAttrib := TSynHighlighterAttributes.Create('Asblr','Asblr');
|
||||||
fSpeckAttrib := TSynHighlighterAttributes.Create('Speck','Speck');
|
fSpeckAttrib := TSynHighlighterAttributes.Create('Speck','Speck');
|
||||||
fErrorAttrib := TSynHighlighterAttributes.Create('Error','Error');
|
fErrorAttrib := TSynHighlighterAttributes.Create('Error','Error');
|
||||||
|
fAttriAttrib := TSynHighlighterAttributes.Create('Attri','Attri');
|
||||||
|
|
||||||
fNumbrAttrib.Foreground := $000079F2;
|
fNumbrAttrib.Foreground := $000079F2;
|
||||||
fSymblAttrib.Foreground := clMaroon;
|
fSymblAttrib.Foreground := clMaroon;
|
||||||
|
@ -199,6 +203,7 @@ begin
|
||||||
fKeywdAttrib.Foreground := clNavy;
|
fKeywdAttrib.Foreground := clNavy;
|
||||||
fAsblrAttrib.Foreground := clGray;
|
fAsblrAttrib.Foreground := clGray;
|
||||||
fSpeckAttrib.Foreground := clNavy;
|
fSpeckAttrib.Foreground := clNavy;
|
||||||
|
fAttriAttrib.Foreground := clNavy;
|
||||||
|
|
||||||
fDDocsAttrib.Foreground := clTeal;
|
fDDocsAttrib.Foreground := clTeal;
|
||||||
|
|
||||||
|
@ -206,6 +211,7 @@ begin
|
||||||
fKeywdAttrib.Style := [fsBold];
|
fKeywdAttrib.Style := [fsBold];
|
||||||
fAsblrAttrib.Style := [fsBold];
|
fAsblrAttrib.Style := [fsBold];
|
||||||
fSpeckAttrib.Style := [fsBold];
|
fSpeckAttrib.Style := [fsBold];
|
||||||
|
fAttriAttrib.Style := [fsBold];
|
||||||
|
|
||||||
fErrorAttrib.Foreground:= fIdentAttrib.Foreground;
|
fErrorAttrib.Foreground:= fIdentAttrib.Foreground;
|
||||||
fErrorAttrib.FrameStyle:= slsWaved;
|
fErrorAttrib.FrameStyle:= slsWaved;
|
||||||
|
@ -223,6 +229,7 @@ begin
|
||||||
AddAttribute(fAsblrAttrib);
|
AddAttribute(fAsblrAttrib);
|
||||||
AddAttribute(fSpeckAttrib);
|
AddAttribute(fSpeckAttrib);
|
||||||
AddAttribute(fErrorAttrib);
|
AddAttribute(fErrorAttrib);
|
||||||
|
AddAttribute(fAttriAttrib);
|
||||||
|
|
||||||
fAttribLut[TTokenKind.tkident] := fIdentAttrib;
|
fAttribLut[TTokenKind.tkident] := fIdentAttrib;
|
||||||
fAttribLut[TTokenKind.tkBlank] := fWhiteAttrib;
|
fAttribLut[TTokenKind.tkBlank] := fWhiteAttrib;
|
||||||
|
@ -235,6 +242,7 @@ begin
|
||||||
fAttribLut[TTokenKind.tkSpecK] := fSpeckAttrib;
|
fAttribLut[TTokenKind.tkSpecK] := fSpeckAttrib;
|
||||||
fAttribLut[TTokenKind.tkError] := fErrorAttrib;
|
fAttribLut[TTokenKind.tkError] := fErrorAttrib;
|
||||||
fAttribLut[TTokenKind.tkAsmbl] := fAsblrAttrib;
|
fAttribLut[TTokenKind.tkAsmbl] := fAsblrAttrib;
|
||||||
|
fAttribLut[TTokenKind.tkAttri] := fAttriAttrib;
|
||||||
|
|
||||||
SetAttributesOnChange(@doAttribChange);
|
SetAttributesOnChange(@doAttribChange);
|
||||||
fTokStop := 1;
|
fTokStop := 1;
|
||||||
|
@ -343,6 +351,11 @@ begin
|
||||||
fErrorAttrib.Assign(value);
|
fErrorAttrib.Assign(value);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSynD2Syn.setAttriAttrib(value: TSynHighlighterAttributes);
|
||||||
|
begin
|
||||||
|
fAttriAttrib.Assign(value);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TSynD2Syn.setLine(const NewValue: string; LineNumber: Integer);
|
procedure TSynD2Syn.setLine(const NewValue: string; LineNumber: Integer);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
|
@ -881,6 +894,23 @@ begin
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// attributes
|
||||||
|
if reader^ = '@' then
|
||||||
|
begin
|
||||||
|
if isAlpha(readerNext^) then
|
||||||
|
begin
|
||||||
|
fTokKind:=tkAttri;
|
||||||
|
while isAlNum(reader^) or (reader^ = '_') do
|
||||||
|
begin
|
||||||
|
if reader^= #10 then
|
||||||
|
exit;
|
||||||
|
readerNext;
|
||||||
|
end;
|
||||||
|
exit;
|
||||||
|
end else
|
||||||
|
readerPrev;
|
||||||
|
end;
|
||||||
|
|
||||||
// Keywords & identifiers
|
// Keywords & identifiers
|
||||||
if isFirstIdentifier(reader^) then
|
if isFirstIdentifier(reader^) then
|
||||||
begin
|
begin
|
||||||
|
|
Loading…
Reference in New Issue