SynEdit подсветка синтаксиса

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
BannedUser
Сообщения: 3
Зарегистрирован: 21 янв 2017, 21:30

21 янв 2017, 21:34

Всем привет. Решил познакомиться с компонентом SynEdit и поэтому полез в демки, а именно HighlighterDemo.

В этом демо представлен компонент (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;
Но вот заставить, чтобы подсвечивалось ещё и 'highlighter', никак не выходит ...

Я бы прикрепил бы и саму демку, но что-то видимо пока прав на форуме не хватает ...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
BannedUser
Сообщения: 3
Зарегистрирован: 21 янв 2017, 21:30

22 янв 2017, 00:55

Прикрепил архив с демо
Ответить