(epoj)Identifier completion


Prev: Auto-insertion of iterator Up: Input Aider

識別子の補完
============

ソース中でなんらかの参照を行なうべく、(変数・関数・ラベルなどの)識別子を入
力する場合、その途中まで入力して残りの部分を補完させることができます。Lisp 
言語を例にしましょう。既に別箇所で foo-copy-word 関数が定義されていると仮
定します。その場合、"co" のように単語の途中まで入力して

`[prefix] C-SPC'
             ... ポイント位置の識別子の補完 (epoi-complete-symbol)

をタイプすると、"co" で始まる関数名を候補として表示します。

     (foo-co<[prefix] C-SPC>
         ↓
     foo-co
     == Matches with ===================================================
     (a)foo-code-detect (b)foo-copy-byte (c)foo-copy-word
     ===================================================================

のように表示されるのでここでは選択肢の3番目(c)を選びます。

     (foo-copy-word

LaTeXのラベルに関しても同様に補完することができます。

さて、注意が必要なのはC言語などです。EPOは「関係」の種類を区別します。たと
えば、変数の参照と関数の参照は区別されます。これから補完するものが、変数の
参照なのか、関数の参照なのかがはっきりするようにしなければなりません。Lisp 
言語では変数の参照と関数の参照は補完する段階で区別できます。なぜなら、関数
の参照を補完したい場合は

     (foo■

のようにタイプしますが、途中まで打った段階で関数の参照であることを意味する
開き括弧が既に入力されているからです。然し、C言語の場合は関数の参照を意味
する開き括弧は関数名の後で入力します。

     foo■

のように、fooと打った段階ではその部分に着目すると、あたかも変数の参照のよ
うに見えてしまいます。この位置で `[prefix] C-SPC' を押しても、候補として出
てくるのは "foo" で始まる変数名になってしまいます。

そんな場合は、C言語系の関数専用の補完キーである

`[prefix] C-f'
             ... ポイント位置の関数名の補完 (epoi-complete-function)

を利用して下さい。これは、現在バッファに入力途中の単語の末尾に開き括弧を補っ
てから epoi-complete-symbol を呼び出します。

     foo<[prefix] C-f>
       ↓
     foo(
     == Matches with ===================================================
     (a)foo_code_detect (b)foo_copy_byte (c)foo_copy_word
     ===================================================================

これも同様に選択肢の中から対応するアルファベットを押せばその識別子が挿入さ
れます。

なお、`[prefix] C-SPC'、`[prefix] C-f'いずれの場合も、候補が26個以上ある場
合は、隣のバッファに一覧が表示されるのみです。この場合は、もう少し補完の手
がかりとなる文字を追加してからもう一度 `[prefix] C-SPC'または`[prefix]
C-f'を押すようにします。



automatically generated by info2www.cgi version 1.2