3

セマンティックでオートコンプリートモードをうまく機能させることに取り組んできましたが、完全に立ち往生していることを知っています。私は、セマンティック ia-complete-symbol を使用してセマンティック オートコンプリートを成功させました (ただし、何らかの理由で malloc() を完了できませんが、これは奇妙です)。

いくつかの .emacs スニペット:

(add-to-list 'ac-dictionary-directories "~/emacs-src/auto-complete-1.3.1/")
(ac-config-default)
(ac-set-trigger-key "TAB")

(add-to-list 'ac-sources 'ac-source-semantic) 
(add-to-list 'ac-sources 'ac-source-gtags)



(add-hook 'c-mode-hook
          (defun my-c-mode-hook ()
            (auto-complete-mode)
            (setq ac-sources '(ac-source-semantic))
            (ac-complete-semantic)))

オートコンプリート モードをセマンティックと連携させるにはどうすればよいですか?

4

2 に答える 2

5

私の理解が正しければ、セマンティックは機能しており、オートコンプリートの設定に苦労しているだけです。後者を行うには、単純に

(require 'auto-complete-config)
(setq-default ac-sources '(ac-source-semantic-raw))

ac-sources を設定するには、「setq-default」を使用する必要があることに注意してください。その後、できるはずです

M-x auto-complete-mode

C/C++ バッファーで、オートコンプリートはセマンティックに補完を問い合わせる必要があります。

于 2013-01-25T21:20:30.367 に答える
1

次の方法でオートコンプリートの失敗をデバッグしてみてください。

M-x semantic-analyze-debug-assist RET

そしてそれが言うことを見てください。を見\include\stdlib.hて、パーサーがファイルをどう考えているかを確認してください。そこにいる間にあなたがする場合:

M-x bovinate RET

次に、そこにあるかどうかを検索できますmalloc。そうでない場合は、おそらく解析のバグか、#define正しく設定されていないその他のバグがあります。上記を使用すると、通常、ヘッダー ファイルで見つけて、どこで問題が発生し始めているかを確認できます。

于 2013-01-25T20:18:18.690 に答える