clang_complete.vim

clang にはコード補完をサポートする機能があって

% clang -cc1 -fsyntax-only -code-completion-at=$file:$line:$col $file

というように使うと,構文構造から補完の候補を表示してくれる.
この機能の詳しいドキュメントがどこにあるのかわからないが,まぁ出力を見ればなんとなくフォーマットはだいたいわかる.


この機能はエディタの補完機能として利用しない手はないわけで,Emacs 向けのは本家のリポジトリに見つかった.
https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el
一方 Vim 向けのものは最近 vim.org のほうにアップロードされているのを見つけた.
http://github.com/Rip-Rip/clang_complete
比較的簡単に neocomplcache の source として書き直すことができたので,これで使ってみている.
http://gist.github.com/655438
さすがに1文字入力する毎に clang を走らせるのは重すぎるのでとりあえず明示的に で補完したときのみ候補を表示するようにした.
適切にキャッシュするようにすれば auto complete としても使えるかもしれない.