TSynSampleSyn =
class
(TSynCustomHighlighter)
private
fRange: TRangeState;
fTokenID: TtkTokenKind;
fIdentFuncTable:
array
[
0..3
]
of
TIdentFuncTableFunc;
...
KeyWords:
array
[
0..3
]
of
UnicodeString = (
'hello'
,
'synedit'
,
'world'
,
'highlighter'
);
KeyIndices:
array
[
0..3
]
of
Integer
= (
0
,
2
,
1
,
3
);
procedure
TSynSampleSyn
.
InitIdent;
var
i:
Integer
;
begin
for
i := Low(fIdentFuncTable)
to
High(fIdentFuncTable)
do
if
KeyIndices[i] = -
1
then
fIdentFuncTable[i] := AltFunc;
fIdentFuncTable[
0
] := FuncHello;
fIdentFuncTable[
2
] := FuncWorld;
fIdentFuncTable[
1
] := FuncSynedit;
fIdentFuncTable[
3
] := FuncHightLight;
...
function
TSynSampleSyn
.
FuncHightLight(Index:
Integer
): TtkTokenKind;
begin
if
IsCurrentToken(KeyWords[Index])
then
Result := tkKey
else
Result := tkIdentifier;
end
;