1

我正在为个人项目编写 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)
4

1 回答 1

2

创建一个子类QsciLexerCPP并重新实现关键字方法:

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

这些关键字集中的每一个都有与之关联的不同样式,因此它们可以以不同的方式突出显示。查看要使用的样式枚举

于 2014-04-10T04:28:52.517 回答