配置环境:win7_32 QT5.1.1( mingw32) QScintilla-gpl-2.7.2
1、安装默认QScintilla库,看是否有问题
a、添加QT安装目录下 mingw32的路径到系统环境中,添加QT下 mingw32-make.exe所处的路径到系统环境中:
win7在用户账户左边的“配置我的环境变量”中设置,我用命令行怎么都加不上。下面是我的配置环境添加的路径
D:\Qt\Qt5.1.1\5.1.1\mingw48_32\bin;
D:\Qt\Qt5.1.1\Tools\mingw48_32\bin
b、进入QScintilla-gpl-2.7.2 目录下的QT4QT5目录下,新建.bat文件,编辑bat文件输入以下内容:
qmake qscintilla.pro
mingw32-make
mingw32-make install
pause
似乎debug版本必须用debug库,relase版本得用relase库,我是直接编译成静态库。静态库:修改qscintilla.pro文件把 CONFIG项的dll 改为static 删除 DEFINES中导出dll的内容
c、自个测试下是否正常工作
2、编写自定义词法分析器:
a、如果你不需要其他词法分析器的话,建议你删除 lexer文件夹下的 LexXXX.cpp文件,并从qscintilla.pro中将其移除( LexXXX.cpp ,LexXXX.h,并从Catalogue.cpp移除相关link,务必清理干净,不然会出现编译错误)
b、建立词法分析器,如Loli语言的词法分析器:
在lexer文件夹中建立 LexLoli.cpp
LexLoli.cpp 中必须包括以下内容:词法分析器定义、词法分析器着色状态定义、宏
词法分析器定义:
#define SCLEX_LOLI 108
词法分析器着色状态定义:
#define SCE_LOLI_COMMAND 1
………
词法分析主函数:
static void XXXX( unsignedintstartPos,intlength,intinitStyle,WordList*keywordlists[],Accessor&styler )
{
阅读doc下的lexer.txt获得一些信息
}
宏:LexerModule lmLoli(SCLEX_LOLI,XXXX,"loli")
修改scr下的Catalogue.cpp文件,找到
LINK_LEXER(lmXXXX);
注意移除的词法分析器在这里要将其移除,并增加自己的内容
LINK_LEXER(lmLoli);
在pro文件中加入自己的词法分析器,并重新编译:
3、编写对应的词法分析器风格样式
新建类继承 QsciLexer 类,QsciLexer 类是着色风格管理,你至少需要实现四个成员函数:
const char *language() const; //返回“Loli”
const char *lexer() const; //返回"loli"
QColor defaultColor(int style) const; //定义不同类型的着色
QString description(int style) const; //返回tr("Command")以及其他着色定义,非常重要
详细的内容阅读doc文档以及源代码
手机扫一扫
移动阅读更方便
你可能感兴趣的文章