Установить цвет подсветки основных функций lua в управлении сцинтиллами
Я использую контроль редактирования сцинтиллы в приложении на основе диалогового окна MFC.
Я загружаю scilexer.dll и устанавливаю лексер в lua, но единственное, что выделяется - это комментарии. Я также могу установить ключевые слова, и они будут выделены:
mySciCtrl.SendMessage(SCI_SETKEYWORDS, 0, "for while end function")
Тем не менее, я не могу понять, как включить подсветку, скажем, основные функции, такие как Луа print
, setmetatable
, так далее.
Я думал, что это будет автоматически, как подсветка комментариев. Может кто-то указать мне верное направление?
1 ответ
Нашел, это было довольно тривиально, конечно, просто нужно было посмотреть на функции сцинтиллы. Итак, если кто-то еще сталкивается с этим:
в вашем классе окна сцинтиллы инициализировать цвет с помощью SendMessage(SCI_STYLESETFORE, SCE_LUA_WORD2, RGB(100,149,237));
для второго списка ключевых слов.
Тогда в вашем диалоге сделайте m_ScinCtrl.SendMessage( SCI_SETKEYWORDS, 1, ( long )_T( "the words you want highlighted with the above specified color"));
SCE_LUA_WORD2
соответствует целочисленному значению 1 во втором выражении, поэтому, если вы хотите, чтобы третий набор ключевых слов выделялся по-другому, просто используйте SCE_LUA_WORD3
и целое значение 2 во втором утверждении!