Для лексера wxSTC_LEX_HTML
html или лексера wxSTC_LEX_PHPSCRIPT
php необходимо указать ключевое слово set 4. Так, например:
x->m_ctlEdit->SetKeyWords(4,"true false");
Если вы используете лексер html, выэто можно узнать, вызвав x->m_ctlEdit->DescribeKeyWordSets();
, который вернет следующий список:
- HTML-элементы и атрибуты
- ключевые слова JavaScript
- ключевые слова VBScript
- Ключевые слова Python
- ключевые слова PHP
- ключевые слова SGML и DTD
В этом случае индекс ключевых слов PHP на основе 0 равен 4, так что это будетномер для передачи в метод SetKeyWords
.
Однако этот способ проверки не работает при использовании лексера PHP, так как вызов DescribeKeyWordSets
вернет только «ключевые слова PHP».Таким образом, вы могли бы подумать, что вы должны вызывать SetKeyWords
с 0, но на самом деле вам все равно нужно использовать 4, потому что лексер php-скрипта такой же, как лексер html.Это просто странная вещь для Сцинтиллы.
На несвязанной ноте я думаю, что звонить на SetWordChars
не нужно.Согласно документации, это для поиска по словам, а не по ключевым словам.
В качестве второго вопроса, Как разделить цвета для разных списков слов?
Этозависит от лексера.Например, лексер C предлагает следующие наборы ключевых слов
- Первичные ключевые слова и идентификаторы
- Вторичные ключевые слова и идентификаторы
- Ключевые слова комментариев документации
- Globalклассы и определения типов
- Определения препроцессора
, которые соответствуют состояниям лексера wxSTC_C_WORD
, wxSTC_C_WORD2
, wxSTC_C_COMMENTDOCKEYWORD
и т. д.
К сожалению, как описановыше HTML-лексер предлагает только 1 набор ключевых слов для PHP.