Home > ViVi 2.08 新機能 > C/C++ ソース編集支援機能

■ 型を認識したメンバ名動的補完

上図の様に、オブジェクト. または オブジェクトポインタ-> の直後にカーソルがある時に、動的補完(Ctrl + L)を実行した場合は、 オブジェクトまたはポインタの型を認識し、その型を tags ファイルから検索し、 オブジェクトのメンバ変数名またはメンバ関数名をポップアップウィンドウに一覧表示するようにしました。
オブジェクト.文字列 または オブジェクトポインタ->文字列 の直後にカーソルがある時に動的補完を実行した場合は、 カーソル直前の文字列で始まるメンバ変数名またはメンバ関数名をポップアップウィンドウに一覧表示します。

※ 注意:クラスメンバ情報は tags ファイルを参照するので、あらかじめ ctags などで tags ファイルを生成しておいてください。
※ 注意:2.08 の構文解析器は簡易的なもので、単独のオブジェクト、ポインターの型のみ認識することができます。
以下の様に式に対してメンバアクセス演算子を用いた場合は 2.10 以降で対応する予定です。

  CHoge *foo();
  foo()->
参考:型を認識したメンバ名動的補完

■ シーケンス走査文動的補完

上図の様に、for(<オブジェクト名> <イテレータ名> の直後で動的補完すると、 コンテナクラス(vector, list, deque)オブジェクトのすべての要素を for文で走査するコードを動的補完可能になりました。
※補足:"for", "(", <オブジェクト名> の間に空白があっても可
<イテレータ名> を省略した場合、"itr" を自動生成します。

コンテナへのポインタの場合は、下図の様に -> を使用した文を生成します。

■ メンバ変数初期化子動的補完

上図の様に、<クラス名>::<クラス名>([<仮引数>]) : の直後で動的補完した場合、 クラスメンバ変数初期化子の一覧を補完候補とするようにしました。

■ スコープを考慮した動的補完

スコープ名:: の直後にカーソルがある時に、動的補完(Ctrl + L)を実行した場合は、 tags ファイルを参照して指定スコープに属する識別子名をポップアップウィンドウに一覧表示するようにしました。
カーソルと :: の間に文字列がある場合は、その文字列で始まる識別子名だけをポップアップウィンドウに一覧表示します。