C/C++ で予約済み識別子をシンタックスハイライトする Vimプラグインつくった


ブログ記事からの転載です。

他人の書いた C/C++ のコードを見ているとあまりにも予約済み識別子を無視してコードを書いているものが多いので、ついカッとなってつくった。

プラグイン

NeoBundle 'osyo-manga/vim-cpp-syntax-reserved_identifiers'

また、デフォルトでは WarningMsg のハイライトを使用します。

任意のハイライト色にしたい場合は、

" ErrorMsg を任意のグループに置き換える
highlight link cReservedIdentifiers ErrorMsg

みたいな設定で変更できます。

『グローバルスコープを持ち、_ で始まる名前』のハイライトを無効にする

予約済み識別子の条件の一つに

  • グローバルスコープを持ち、_ で始まる名前

というのがあるんですが Vim で『グローバルスコープ』という条件付けを行うのは無理なので単純に

  • _ で始まる名前

をハイライトするようにしています。

なので以下のようなコードもハイライトされます。

こういうコードをハイライトしてほしくない場合は、予め

let g:c_no_reserved_identifiers_start_underbar_lower_case=1

と、いうような設定をしておくことで

  • _ + 小文字で始まる名前

のハイライトを無効にできます。

何気に syntax 系のプラグインをつくったのは初めてなので問題や要望があれば Issues までお願いします。

[おまけ]

ちなみに当然ではありますが、予約済み識別子をガシガシ使ってる標準ライブラリのコードももちろんハイライトされます。

まぁこれはしょうがないか…。