mirror of https://gitlab.com/basile.b/dexed.git
d2 highlighter, add a token kind for errors
This commit is contained in:
parent
f3c15fff00
commit
0d7e34c1f1
|
@ -61,7 +61,7 @@ type
|
||||||
function find(const aValue: string): boolean; {$IFNDEF DEBUG}inline;{$ENDIF}
|
function find(const aValue: string): boolean; {$IFNDEF DEBUG}inline;{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TTokenKind = (tkCommt, tkIdent, tkKeywd, tkStrng, tkBlank, tkSymbl, tkNumbr, tkDDocs, tkSpecK);
|
TTokenKind = (tkCommt, tkIdent, tkKeywd, tkStrng, tkBlank, tkSymbl, tkNumbr, tkDDocs, tkSpecK, tkError);
|
||||||
|
|
||||||
TRangeKind = (rkString1, rkString2, rkTokString, rkBlockCom1, rkBlockCom2, rkBlockDoc1, rkBlockDoc2, rkAsm);
|
TRangeKind = (rkString1, rkString2, rkTokString, rkBlockCom1, rkBlockCom2, rkBlockDoc1, rkBlockDoc2, rkAsm);
|
||||||
|
|
||||||
|
@ -111,6 +111,7 @@ type
|
||||||
fDDocsAttrib: TSynHighlighterAttributes;
|
fDDocsAttrib: TSynHighlighterAttributes;
|
||||||
fAsblrAttrib: TSynHighlighterAttributes;
|
fAsblrAttrib: TSynHighlighterAttributes;
|
||||||
fSpeckAttrib: TSynHighlighterAttributes;
|
fSpeckAttrib: TSynHighlighterAttributes;
|
||||||
|
fErrorAttrib: TSynHighlighterAttributes;
|
||||||
fKeyWords: TD2Dictionary;
|
fKeyWords: TD2Dictionary;
|
||||||
fSpecKw: TD2Dictionary;
|
fSpecKw: TD2Dictionary;
|
||||||
fLineBuf: string;
|
fLineBuf: string;
|
||||||
|
@ -130,6 +131,7 @@ type
|
||||||
procedure setDDocsAttrib(value: TSynHighlighterAttributes);
|
procedure setDDocsAttrib(value: TSynHighlighterAttributes);
|
||||||
procedure setAsblrAttrib(value: TSynHighlighterAttributes);
|
procedure setAsblrAttrib(value: TSynHighlighterAttributes);
|
||||||
procedure setSpeckAttrib(value: TSynHighlighterAttributes);
|
procedure setSpeckAttrib(value: TSynHighlighterAttributes);
|
||||||
|
procedure setErrorAttrib(value: TSynHighlighterAttributes);
|
||||||
procedure doAttribChange(sender: TObject);
|
procedure doAttribChange(sender: TObject);
|
||||||
procedure doChanged;
|
procedure doChanged;
|
||||||
protected
|
protected
|
||||||
|
@ -147,6 +149,7 @@ type
|
||||||
property ddoc: TSynHighlighterAttributes read fDDocsAttrib write setDDocsAttrib;
|
property ddoc: TSynHighlighterAttributes read fDDocsAttrib write setDDocsAttrib;
|
||||||
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;
|
||||||
public
|
public
|
||||||
constructor create(aOwner: TComponent); override;
|
constructor create(aOwner: TComponent); override;
|
||||||
destructor destroy; override;
|
destructor destroy; override;
|
||||||
|
@ -303,6 +306,7 @@ begin
|
||||||
fDDocsAttrib := TSynHighlighterAttributes.Create('DDoc','DDoc');
|
fDDocsAttrib := TSynHighlighterAttributes.Create('DDoc','DDoc');
|
||||||
fAsblrAttrib := TSynHighlighterAttributes.Create('Asm','Asm');
|
fAsblrAttrib := TSynHighlighterAttributes.Create('Asm','Asm');
|
||||||
fSpeckAttrib := TSynHighlighterAttributes.Create('SpecialKeywords','SpecialKeywords');
|
fSpeckAttrib := TSynHighlighterAttributes.Create('SpecialKeywords','SpecialKeywords');
|
||||||
|
fErrorAttrib := TSynHighlighterAttributes.Create('Errors','Errors');
|
||||||
|
|
||||||
fNumbrAttrib.Foreground := $000079F2;
|
fNumbrAttrib.Foreground := $000079F2;
|
||||||
fSymblAttrib.Foreground := clMaroon;
|
fSymblAttrib.Foreground := clMaroon;
|
||||||
|
@ -320,6 +324,11 @@ begin
|
||||||
fAsblrAttrib.Style := [fsBold];
|
fAsblrAttrib.Style := [fsBold];
|
||||||
fSpeckAttrib.Style := [fsBold];
|
fSpeckAttrib.Style := [fsBold];
|
||||||
|
|
||||||
|
fErrorAttrib.Foreground:= fIdentAttrib.Foreground;
|
||||||
|
fErrorAttrib.FrameStyle:= slsWaved;
|
||||||
|
fErrorAttrib.FrameColor:= clRed;
|
||||||
|
fErrorAttrib.FrameEdges:= sfeBottom;
|
||||||
|
|
||||||
AddAttribute(fWhiteAttrib);
|
AddAttribute(fWhiteAttrib);
|
||||||
AddAttribute(fNumbrAttrib);
|
AddAttribute(fNumbrAttrib);
|
||||||
AddAttribute(fSymblAttrib);
|
AddAttribute(fSymblAttrib);
|
||||||
|
@ -330,6 +339,7 @@ begin
|
||||||
AddAttribute(fDDocsAttrib);
|
AddAttribute(fDDocsAttrib);
|
||||||
AddAttribute(fAsblrAttrib);
|
AddAttribute(fAsblrAttrib);
|
||||||
AddAttribute(fSpeckAttrib);
|
AddAttribute(fSpeckAttrib);
|
||||||
|
AddAttribute(fErrorAttrib);
|
||||||
|
|
||||||
fAttribLut[TTokenKind.tkident] := fIdentAttrib;
|
fAttribLut[TTokenKind.tkident] := fIdentAttrib;
|
||||||
fAttribLut[TTokenKind.tkBlank] := fWhiteAttrib;
|
fAttribLut[TTokenKind.tkBlank] := fWhiteAttrib;
|
||||||
|
@ -340,6 +350,7 @@ begin
|
||||||
fAttribLut[TTokenKind.tksymbl] := fSymblAttrib;
|
fAttribLut[TTokenKind.tksymbl] := fSymblAttrib;
|
||||||
fAttribLut[TTokenKind.tkDDocs] := fDDocsAttrib;
|
fAttribLut[TTokenKind.tkDDocs] := fDDocsAttrib;
|
||||||
fAttribLut[TTokenKind.tkSpecK] := fSpeckAttrib;
|
fAttribLut[TTokenKind.tkSpecK] := fSpeckAttrib;
|
||||||
|
fAttribLut[TTokenKind.tkError] := fErrorAttrib;
|
||||||
|
|
||||||
SetAttributesOnChange(@doAttribChange);
|
SetAttributesOnChange(@doAttribChange);
|
||||||
fTokStop := 1;
|
fTokStop := 1;
|
||||||
|
@ -445,6 +456,11 @@ begin
|
||||||
fSpeckAttrib.Assign(value);
|
fSpeckAttrib.Assign(value);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSynD2Syn.setErrorAttrib(value: TSynHighlighterAttributes);
|
||||||
|
begin
|
||||||
|
fErrorAttrib.Assign(value);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TSynD2Syn.setLine(const NewValue: String; LineNumber: Integer);
|
procedure TSynD2Syn.setLine(const NewValue: String; LineNumber: Integer);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
|
@ -860,8 +876,8 @@ begin
|
||||||
fTokKind := tkIdent; // invalid op not colorized.
|
fTokKind := tkIdent; // invalid op not colorized.
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Keyword - identifiers
|
//Keyword - identifiers
|
||||||
if not isWhite(reader^) then
|
if isFirstIdentifier(reader^) then
|
||||||
begin
|
begin
|
||||||
fTokKind := tkIdent;
|
fTokKind := tkIdent;
|
||||||
while(true) do
|
while(true) do
|
||||||
|
@ -883,8 +899,8 @@ begin
|
||||||
|
|
||||||
if fLineBuf[fTokStop] = #10 then exit;
|
if fLineBuf[fTokStop] = #10 then exit;
|
||||||
|
|
||||||
// Should not happend
|
readUntilAmong(reader, fTokStop, [#9, #10, ' ']);
|
||||||
assert(false);
|
fTokKind := tkError;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TSynD2Syn.GetEol: Boolean;
|
function TSynD2Syn.GetEol: Boolean;
|
||||||
|
|
Loading…
Reference in New Issue