1

私は個人的なプロジェクト用に RSL エディターを作成しています。QScintilla で使用できる CPP lexer をカスタマイズしたいと考えています。これは、強調表示するキーワードをいくつか追加するだけでよいためですが、それらを追加する方法がわかりません。

助けはありますか?乾杯

編集 - 私は見つけたスニペットで遊んでいて、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 に答える