SynEdit подсветка синтаксиса
Добавлено: 21 янв 2017, 21:34
Всем привет. Решил познакомиться с компонентом SynEdit и поэтому полез в демки, а именно HighlighterDemo.
В этом демо представлен компонент (TSynCustomHighlighter) с собственной подсветкой слов 'hello', 'synEdit' и 'world':
Но вот заставить, чтобы подсвечивалось ещё и 'highlighter', никак не выходит ...
Я бы прикрепил бы и саму демку, но что-то видимо пока прав на форуме не хватает ...
В этом демо представлен компонент (TSynCustomHighlighter) с собственной подсветкой слов 'hello', 'synEdit' и 'world':
Код: Выделить всё
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;
Я бы прикрепил бы и саму демку, но что-то видимо пока прав на форуме не хватает ...