vim-css3-syntaxでハイライトがうまくいかないことがある報告を結構初期に受けていたんですが、うまく再現できずに放置してる感じでした。昨日さらに報告を受けたのでやっぱりかなりの確率で起きるんだなーと調べ始めた所、どうやら:syntax keyword
が常に:syntax match
より優先されるという仕様に絡む問題だったようです。
まだちゃんと追いきれていないのですが、多くの場合はハイフン(-
)をキーワードとして認識するように設定すると単語の境界が変わるので解決できます(僕はそうしていたので再現出来なかった)。ビルトインのシンタックス・ファイルはこの設定を考慮していないと思うので、別の不具合のトリガーになる危険性もあるためどうしてもこのプラグインを使いたいという人だけ設定してみてください。
設定は、
setlocal iskeyword+=-
を~/.vim/after/ftplugin/css.vim
に書いたり、~/.vimrc/
で、
autocmd FileType css setlocal iskeyword+=-
と自動コマンドを使ったりすればOKです。
ビルトインのsyntax/css.vim
を拡張する形で書いている限り避けることが出来なさそうな問題なので、ちゃんとした解決のためには一から完全なCSS3シンタックスを書き直すしかなさそうです。ファイルタイプ・プラグインでiskeyword
を拡張して、正規表現を使わずにがしがしキーワード書けるようにしちゃえば簡単そうですが……。作法とかよくわからないので大幅に変えることに躊躇しています。