2012-01-09 23 views
1

emacsで新しくなった。私はGtk + 3の自動補完を実装することができません。私はCEDETとオートコンプリートモードをUIとして使用しています。 Semanticはインクルードファイル()を見つけることができませんが、オープンバッファ内のコードのタグを解析できます。Emacsの自動補完モード

ここに私の.emacsは、任意の提案

;;---------------------------------------------------------------------------------- 
(load-file "~/.emacs.d/cedet-1.0/common/cedet.el") 
(global-ede-mode 1) 
(semantic-load-enable-excessive-code-helpers) 
;;(semantic-load-enable-semantic-debugging-helpers) 
;; ede customization 
(require 'semantic-lex-spp) 
(ede-enable-generic-projects) 
(setq senator-minor-mode-name "SN") 
(setq semantic-imenu-auto-rebuild-directory-indexes nil) 
(global-srecode-minor-mode 1) 
(global-semantic-mru-bookmark-mode 1) 
(require 'semantic-decorate-include) 
;; gcc setup 
(require 'semantic-gcc) 
;; smart completions 
(require 'semantic-ia) 
(setq-mode-local c-mode semanticdb-find-default-throttle 
      '(project unloaded system recursive)) 
(setq-mode-local c++-mode semanticdb-find-default-throttle 
      '(project unloaded system recursive)) 
(setq-mode-local erlang-mode semanticdb-find-default-throttle 
      '(project unloaded system recursive)) 
(require 'eassist) 
(require 'semanticdb) 
(global-semanticdb-minor-mode 1) 
;; gnu global support 
(require 'semanticdb-global) 
(semanticdb-enable-gnu-global-databases 'c-mode) 
(semanticdb-enable-gnu-global-databases 'c++-mode) 
;; ctags 
(require 'semanticdb-ectag) 
;;(semantic-load-enable-primary-exuberent-ctags-support) 
(global-semantic-tag-folding-mode) 

(defun my-cedet-hook() 
(local-set-key [(control return)] 'semantic-ia-complete-symbol) 
(local-set-key "\C-c?" 'semantic-ia-complete-symbol-menu) 
(local-set-key "\C-c>" 'semantic-complete-analyze-inline) 
(local-set-key "\C-cp" 'semantic-analyze-proto-impl-toggle)) 
(add-hook 'c-mode-common-hook 'my-cedet-hook) 

;;semantic gtk gdk 
(defun my-semantic-hook() 
(semantic-add-system-include "/usr/include/gtk-3.0/gtk/" 'c-mode) 
(semantic-add-system-include "/usr/include/gtk-3.0/gdk/" 'c-mode)) 
(add-hook 'semantic-init-hooks 'my-semantic-hook) 

;; END CEDET 
;;---------------------------------------------------------------------------- 

をCONF?ありがとう。

答えて

1

あなたの設定はわかりました。あなたのadd-system-includeの余分な "gtk /"と "gdk /"が問題かもしれないのだろうか?私は、これは使用してのgtk-3.0で作業しました:

は、すべてのヘッダを処理分ほどを費やし

gtk_[C-c ?] 
#include <gtk/gtk.h> 

、その後

(semantic-add-system-include "/usr/include/gtk-3.0" 'c-mode) 

をソースファイルに続きますファイルが、期待どおり完了メニューを返します。

これがうまく行かない場合は、古いバージョンのCEDETを使用している可能性があります。私はバザーリポジトリから最新の開発版を使用しています。私は同じことを強くお勧めします。

+0

ありがとうございました。私はCEDETを更新し、余分な "gtk gdk"を取り除いた後、セマンティックが動作し、インクルードされたファイルを読み込んでいます。デフォルトの代わりにhttp://www.emacswiki.org/emacs/オートコンプリートUIを使用するとよいでしょう。任意のヒント:)。再度、感謝します – user1138677