0

このように、仮想メソッドと純粋仮想メソッドで異なる色を取得しようとしています

syn region   cppVirtualPureMethod   start="virtual" end="= 0;"
syn region   cppVirtualMethod   start="virtual" end="[;{]"

残念ながら、選択は開始識別子のみを使用して実行されるため、2つのケースを明確にすることはできません。必要なものを入手するためのvimトリックはありますか?

4

1 に答える 1

1

すでに知っているように、一致する部分:syn regionのみを考慮します。差別化の目的を含めるには、(行間で一致するコストのかかる正規表現をstart=使用する可能性があります)を使用する必要があります。:syn match

一般に(事前に同様のことを試みたことを考えると)、Vimではこのような手の込んだ強調表示を行うのは困難です。Vimの構文解析は、正確な文法表現ではなく、幅広い適用性と80/20の正確さを目的として設計されています。さまざまな視覚スタイルで表示されるこのような細かいニュアンスが本当に必要な場合(特に、非常に複雑な文法を持つC ++の場合)、完全な言語用の適切なパーサーを備えたIDEを使用したいと思います。

于 2013-03-27T14:13:34.430 に答える