Scintilla笔记(2)
Scintilla支持语法高亮
要支持语法高亮,分为三个步骤:
一、选定语法解析器
语法解析器用于把代码分为一个个单词(token),另外,还用于代码折叠控制等。
Scintilla作为源码编辑器支持非常多的语言,如C/C++、Java、SQL、HTML、Structured Text(ST)等等。
//Setup the Lexer,非常重要,否则会影响折叠,高亮等等功能。
std::string st_keywords = ui_st_driver::GetStLanguageKeywordStr();
m_ScintillaEdit.SetLexer(SCLEX_CPP); //设置语言,此处设置为C++语言
m_ScintillaEdit.SetKeyWords(0, U8ToU16(st_keywords).c_str());//设置Scintilla的语言关键字
|
除了使用SCI_SETLEXER外,还可以使用SCI_SETLEXERLANGUAGE命令,如:
m_ScintillaEdit.SetLexerLanguage("cpp");
接受一个字符串参数,这个字符串定义于代码解析