定制PyQt Qscintilla CPP lex

2024-05-15 20:55:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为一个个人项目写一个RSL编辑器,我想定制QScintilla中可用的CPP lexer,因为我只需要一些额外的关键字来突出显示,但我真的无法找到如何添加它们。在

有什么帮助吗? 干杯

edit-ve一直在使用Ive找到的代码片段,并通过对CPP lexer进行subclassing并创建一个密钥集,成功地获得了新的关键字,但它只在o覆盖索引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)

Tags: 项目selfreturninitdefkeyset关键字编辑器
1条回答
网友
1楼 · 发布于 2024-05-15 20:55:01

创建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。在

相关问题 更多 >