我正在为个人项目编写RSL编辑器,我想定制QScintilla中提供的CPP词法分析器,因为我需要的只是一些额外的关键词要突出显示,但我真的不能了解如何添加它们。
任何帮助? 欢呼声
编辑 - 我一直在玩我发现的片段,并且我设法通过压缩CPP词法分析器并创建一个密钥集来获得新的关键字,但它只有在覆盖索引1上的现有密钥集时才有效
从PyQt4导入Qsci
class RSLLexer(Qsci.QsciLexerCPP):
def __init__(self, parent):
super(RSLLexer, self).__init__()
def keywords(self, keyset):
if keyset == 1:
return b'surface'
return Qsci.QsciLexerCPP.keywords(self, keyset)
答案 0 :(得分:2)
创建QsciLexerCPP
的子类并重新实现keywords方法:
class RSLLexer(Qsci.QsciLexerCPP):
def keywords(self, index):
keywords = Qsci.QsciLexerCPP.keywords(self, index) or ''
# primary keywords
if index == 1:
return 'foo ' + keywords
# secondary keywords
if index == 2:
return 'bar ' + keywords
# doc comment keywords
if index == 3:
return keywords
# global classes
if index == 4:
return keywords
return keywords
这些关键字集中的每一个都具有与之关联的不同样式,因此可以不同地突出显示它们。请参阅style enumeration了解要使用的内容。