mirror of https://gitlab.com/basile.b/dexed.git
added grey colorization to asm ranges
This commit is contained in:
parent
1d6322cb9e
commit
e7328535b6
|
@ -482,7 +482,7 @@ var
|
||||||
procedure tryAdd;
|
procedure tryAdd;
|
||||||
begin
|
begin
|
||||||
if sr.Attr and faDirectory <> faDirectory then
|
if sr.Attr and faDirectory <> faDirectory then
|
||||||
aList.Add(aPath + sr.Name);
|
aList.Add(aPath+ directorySeparator + sr.Name);
|
||||||
end;
|
end;
|
||||||
begin
|
begin
|
||||||
if findFirst(aPath + directorySeparator + '*', faAnyFile, sr) = 0 then
|
if findFirst(aPath + directorySeparator + '*', faAnyFile, sr) = 0 then
|
||||||
|
|
|
@ -81,7 +81,7 @@ type
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
TTokenKind = (tkCommt, tkIdent, tkKeywd, tkStrng, tkBlank, tkSymbl, tkNumbr, tkCurrI, tkDDocs);
|
TTokenKind = (tkCommt, tkIdent, tkKeywd, tkStrng, tkBlank, tkSymbl, tkNumbr, tkCurrI, tkDDocs, tkAsblr);
|
||||||
|
|
||||||
TRangeKind = (rkNone, rkString1, rkString2, rkTokString, rkBlockCom1, rkBlockCom2, rkBlockDoc1, rkBlockDoc2, rkAsm);
|
TRangeKind = (rkNone, rkString1, rkString2, rkTokString, rkBlockCom1, rkBlockCom2, rkBlockDoc1, rkBlockDoc2, rkAsm);
|
||||||
|
|
||||||
|
@ -99,6 +99,7 @@ type
|
||||||
fKeywdAttrib: TSynHighlighterAttributes;
|
fKeywdAttrib: TSynHighlighterAttributes;
|
||||||
fCurrIAttrib: TSynHighlighterAttributes;
|
fCurrIAttrib: TSynHighlighterAttributes;
|
||||||
fDDocsAttrib: TSynHighlighterAttributes;
|
fDDocsAttrib: TSynHighlighterAttributes;
|
||||||
|
fAsblrAttrib: TSynHighlighterAttributes;
|
||||||
fKeyWords: TD2Dictionary;
|
fKeyWords: TD2Dictionary;
|
||||||
fCurrIdent: string;
|
fCurrIdent: string;
|
||||||
fLineBuf: string;
|
fLineBuf: string;
|
||||||
|
@ -122,6 +123,7 @@ type
|
||||||
procedure setKeywdAttrib(aValue: TSynHighlighterAttributes);
|
procedure setKeywdAttrib(aValue: TSynHighlighterAttributes);
|
||||||
procedure setCurrIAttrib(aValue: TSynHighlighterAttributes);
|
procedure setCurrIAttrib(aValue: TSynHighlighterAttributes);
|
||||||
procedure setDDocsAttrib(aValue: TSynHighlighterAttributes);
|
procedure setDDocsAttrib(aValue: TSynHighlighterAttributes);
|
||||||
|
procedure setAsblrAttrib(aValue: TSynHighlighterAttributes);
|
||||||
procedure doAttribChange(sender: TObject);
|
procedure doAttribChange(sender: TObject);
|
||||||
procedure setCurrIdent(const aValue: string);
|
procedure setCurrIdent(const aValue: string);
|
||||||
procedure doChanged;
|
procedure doChanged;
|
||||||
|
@ -137,6 +139,7 @@ type
|
||||||
property KeywdAttrib: TSynHighlighterAttributes read fKeywdAttrib write setKeywdAttrib;
|
property KeywdAttrib: TSynHighlighterAttributes read fKeywdAttrib write setKeywdAttrib;
|
||||||
property CurrIAttrib: TSynHighlighterAttributes read fCurrIAttrib write setCurrIAttrib;
|
property CurrIAttrib: TSynHighlighterAttributes read fCurrIAttrib write setCurrIAttrib;
|
||||||
property DDocsAttrib: TSynHighlighterAttributes read fDDocsAttrib write setDDocsAttrib;
|
property DDocsAttrib: TSynHighlighterAttributes read fDDocsAttrib write setDDocsAttrib;
|
||||||
|
property AsblrAttrib: TSynHighlighterAttributes read fAsblrAttrib write setAsblrAttrib;
|
||||||
public
|
public
|
||||||
constructor create(aOwner: TComponent); override;
|
constructor create(aOwner: TComponent); override;
|
||||||
destructor destroy; override;
|
destructor destroy; override;
|
||||||
|
@ -291,6 +294,7 @@ begin
|
||||||
fKeywdAttrib := TSynHighlighterAttributes.Create('Keyword','Keyword');
|
fKeywdAttrib := TSynHighlighterAttributes.Create('Keyword','Keyword');
|
||||||
fCurrIAttrib := TSynHighlighterAttributes.Create('CurrentIdentifier','CurrentIdentifier');
|
fCurrIAttrib := TSynHighlighterAttributes.Create('CurrentIdentifier','CurrentIdentifier');
|
||||||
fDDocsAttrib := TSynHighlighterAttributes.Create('DDoc','DDoc');
|
fDDocsAttrib := TSynHighlighterAttributes.Create('DDoc','DDoc');
|
||||||
|
fAsblrAttrib := TSynHighlighterAttributes.Create('Asm','Asm');
|
||||||
|
|
||||||
fNumbrAttrib.Foreground := $000079F2;
|
fNumbrAttrib.Foreground := $000079F2;
|
||||||
fSymblAttrib.Foreground := clMaroon;
|
fSymblAttrib.Foreground := clMaroon;
|
||||||
|
@ -298,6 +302,7 @@ begin
|
||||||
fCommtAttrib.Foreground := clGreen;
|
fCommtAttrib.Foreground := clGreen;
|
||||||
fStrngAttrib.Foreground := clBlue;
|
fStrngAttrib.Foreground := clBlue;
|
||||||
fKeywdAttrib.Foreground := clNavy;
|
fKeywdAttrib.Foreground := clNavy;
|
||||||
|
fAsblrAttrib.Foreground := clGray;
|
||||||
|
|
||||||
fCurrIAttrib.Foreground := clBlack;
|
fCurrIAttrib.Foreground := clBlack;
|
||||||
fCurrIAttrib.FrameEdges := sfeAround;
|
fCurrIAttrib.FrameEdges := sfeAround;
|
||||||
|
@ -308,6 +313,7 @@ begin
|
||||||
|
|
||||||
fCommtAttrib.Style := [fsItalic];
|
fCommtAttrib.Style := [fsItalic];
|
||||||
fKeywdAttrib.Style := [fsBold];
|
fKeywdAttrib.Style := [fsBold];
|
||||||
|
fAsblrAttrib.Style := [fsBold];
|
||||||
|
|
||||||
AddAttribute(fWhiteAttrib);
|
AddAttribute(fWhiteAttrib);
|
||||||
AddAttribute(fNumbrAttrib);
|
AddAttribute(fNumbrAttrib);
|
||||||
|
@ -318,6 +324,7 @@ begin
|
||||||
AddAttribute(fKeywdAttrib);
|
AddAttribute(fKeywdAttrib);
|
||||||
AddAttribute(fCurrIAttrib);
|
AddAttribute(fCurrIAttrib);
|
||||||
AddAttribute(fDDocsAttrib);
|
AddAttribute(fDDocsAttrib);
|
||||||
|
AddAttribute(fAsblrAttrib);
|
||||||
|
|
||||||
fAttribLut[TTokenKind.tkident] := fIdentAttrib;
|
fAttribLut[TTokenKind.tkident] := fIdentAttrib;
|
||||||
fAttribLut[TTokenKind.tkBlank] := fWhiteAttrib;
|
fAttribLut[TTokenKind.tkBlank] := fWhiteAttrib;
|
||||||
|
@ -328,6 +335,7 @@ begin
|
||||||
fAttribLut[TTokenKind.tksymbl] := fSymblAttrib;
|
fAttribLut[TTokenKind.tksymbl] := fSymblAttrib;
|
||||||
fAttribLut[TTokenKind.tkCurrI] := fCurrIAttrib;
|
fAttribLut[TTokenKind.tkCurrI] := fCurrIAttrib;
|
||||||
fAttribLut[TTokenKind.tkDDocs] := fDDocsAttrib;
|
fAttribLut[TTokenKind.tkDDocs] := fDDocsAttrib;
|
||||||
|
fAttribLut[TTokenKind.tkAsblr] := fAsblrAttrib;
|
||||||
|
|
||||||
SetAttributesOnChange(@doAttribChange);
|
SetAttributesOnChange(@doAttribChange);
|
||||||
fTokStop := 1;
|
fTokStop := 1;
|
||||||
|
@ -406,6 +414,12 @@ begin
|
||||||
fDDocsAttrib.Assign(aValue);
|
fDDocsAttrib.Assign(aValue);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSynD2Syn.setAsblrAttrib(aValue: TSynHighlighterAttributes);
|
||||||
|
begin
|
||||||
|
fAsblrAttrib.Assign(aValue);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TSynD2Syn.setCurrIdent(const aValue: string);
|
procedure TSynD2Syn.setCurrIdent(const aValue: string);
|
||||||
begin
|
begin
|
||||||
if aValue = '' then exit;
|
if aValue = '' then exit;
|
||||||
|
@ -447,11 +461,9 @@ begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
//TODO-crange: asm range.
|
//TODO-cnumber literals: stricter, separate parser for each form (bin,dec,hex,float,etc)
|
||||||
//TODO-cnumber literals: stricter.
|
|
||||||
//TODO-cnumber literals: binary.
|
|
||||||
//TODO-cstring literals: delimited strings.
|
//TODO-cstring literals: delimited strings.
|
||||||
//TODO-ccomments: correct nested comments handling.
|
//TODO-ccomments: correct nested comments handling (inc/dec)
|
||||||
//TODO-cfeature: something like pascal {$region} : /*folder blabla*/ /*endfolder*/
|
//TODO-cfeature: something like pascal {$region} : /*folder blabla*/ /*endfolder*/
|
||||||
|
|
||||||
{$BOOLEVAL ON}
|
{$BOOLEVAL ON}
|
||||||
|
@ -758,7 +770,7 @@ begin
|
||||||
fTokKind := tkSymbl;
|
fTokKind := tkSymbl;
|
||||||
if (fkBrackets in fFoldKinds) then case readCurr of
|
if (fkBrackets in fFoldKinds) then case readCurr of
|
||||||
'{': StartCodeFoldBlock(nil);
|
'{': StartCodeFoldBlock(nil);
|
||||||
'}': EndCodeFoldBlock;
|
'}': begin EndCodeFoldBlock; if (readCurr = '}')and (fRange = rkAsm) then fRange := rkNone;end;
|
||||||
end;
|
end;
|
||||||
readNext;
|
readNext;
|
||||||
exit;
|
exit;
|
||||||
|
@ -811,6 +823,12 @@ begin
|
||||||
else
|
else
|
||||||
if fLineBuf[FTokStart..fTokStop-1] = fCurrIdent then
|
if fLineBuf[FTokStart..fTokStop-1] = fCurrIdent then
|
||||||
fTokKind := tkCurrI;
|
fTokKind := tkCurrI;
|
||||||
|
|
||||||
|
//check asm range
|
||||||
|
if fLineBuf[FTokStart..fTokStop-1] = 'asm' then
|
||||||
|
fRange := rkAsm;
|
||||||
|
|
||||||
|
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -828,7 +846,10 @@ end;
|
||||||
|
|
||||||
function TSynD2Syn.GetTokenAttribute: TSynHighlighterAttributes;
|
function TSynD2Syn.GetTokenAttribute: TSynHighlighterAttributes;
|
||||||
begin
|
begin
|
||||||
result := fAttribLut[fTokKind];
|
if (fRange = rkAsm) and (fTokKind <> tkSymbl) and (fTokKind <> tkKeywd) then
|
||||||
|
result := fAttribLut[tkAsblr]
|
||||||
|
else
|
||||||
|
result := fAttribLut[fTokKind];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$WARNINGS OFF} {$HINTS OFF}
|
{$WARNINGS OFF} {$HINTS OFF}
|
||||||
|
|
Loading…
Reference in New Issue