1

私は両方のemacsのデフォルトの完了、セマンティック完了が同じタグファイルに基づいてそれらの仕事をすることを考えました、しかし今私はsthelseを見ます:

これは、ESC+TABを介したemacsのデフォルトの完了の結果です。 ここに画像の説明を入力してください

これはセマンティック補完の結果です。

ここに画像の説明を入力してください

どうしたの?!同じタグファイルを使用していませんか?それらに使用されているタグファイルを見つける方法は?

4

1 に答える 1

2

複数のタグテーブルがあり、タグテーブルをスキャンする方法は複数あります。

私がした: C-h k M-TABそしてそれは言った:

Perform tags completion on the text around point.
If a tags table is loaded, call `complete-tag'.
Otherwise, if Semantic is active, call `semantic-ia-complete-symbol'.

Complete-tagは、etagsのタグテーブルを使用します。これはおそらくと呼ばれるファイルTAGSであり、以前M-.にタグにジャンプしたことがある場合は、それを使用します。

次に、リストされているセマンティック関数を使用しようとします。それは最初に「スマートコンプリーション」を使おうとします。これは基本的に、ローカルコンテキストを分析し、データ型などでフィルタリングされたオプションの短いスマートリストを見つけようとすることを意味します。それが失敗した場合は、シンボルの過負荷を防ぐために、現在のファイルに制限されているセマンティックのタグテーブルの残りの部分にアクセスします。セマンティックのタグは〜/ .semanticdbにあり、ディレクトリで指定されたファイルを介して保存されます。TAGSこれらのテーブルはスマート補完にも使用され、スマート補完フィルタリングの品質を向上させるために使用できるデータ型や引数など、よりも多くの情報が含まれています。

于 2012-12-15T13:34:19.060 に答える