Как правильно настроить подсветку ключевых слов Scintilla?

Я использую компонент Scintilla с DScintilla и получить ошибку с подсветкой ключевых слов в любом лексере. Паскаль, например:

with DScintilla do 
begin
  SetLexer(SCLEX_PASCAL);
  StyleSetFore(SCE_PAS_WORD, clGreen);
  StyleSetFore(SCE_PAS_OPERATOR, clRed);;
  StyleSetFore(SCE_PAS_IDENTIFIER, clBlue);
  SetText('begin a+b; end');
end

Этот код правильно выделяет идентификаторы и операторы, но ключевые слова имеют тот же цвет, что и идентификаторы. Кажется, что SciLexer не может сравнивать строки внутри этой библиотеки.

Как правильно настроить подсветку ключевых слов Scintilla?


person user1374768    schedule 20.06.2012    source источник
comment
Нет, SCE_PAS_WORD означает ключевое слово. Для haskell определена константа SCE_HA_KEYWORD, но она тоже не работает   -  person user1374768    schedule 20.06.2012


Ответы (1)


Ключевые слова необходимо добавлять вручную.

SetKeyWords(0,'begin end');
person user1374768    schedule 20.06.2012
comment
Это помогает, но потеряет смысл самого лексера, см., например. в pascal.properties ключевые слова там уже указаны (но неизвестно, включены ли они в двоичный файл лексера). - person TLama; 20.06.2012