J'utilise Emacs avec CEDET et auto complete pour la complétion de code. A l'origine j'ai mis en place CEDET donc ça se charge au démarrage d'Emacs à chaque fois. Cependant, cela a pris beaucoup de temps, donc j'ai pensé qu'il serait intelligent de le charger juste si nécessaire, c'est-à-dire - dans mon cas - en entrant en mode C++.Emacs: Utilisation et initialisation de CEDET
Je déplacé la fonction d'origine dans un lambda
qui est appelé lors de l'entrée C++ - Mode:
; cscope for c(++) programming (finding symbols, etc.)
(require 'xcscope)
; C++ stuff
(add-hook 'c++-mode-hook
(lambda()
(load-file "/usr/share/emacs/site-lisp/cedet-common/cedet.el")
(global-ede-mode 1) ; enable project management system
(semantic-load-enable-code-helpers) ; enable prototype help and smart completion
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/elisp/ac-dict")
(add-to-list 'ac-sources 'ac-source-semantic)
(local-set-key (kbd "C-:") 'semantic-ia-complete-symbol-menu) ; set shortcut for auto completion.
(local-set-key (kbd "C-.") 'ac-complete-semantic)
(ac-config-default)
)
)
Il n'y a pas d'erreur, mais j'ai le problème suivant: Lorsqu'Emacs entre C++ - Mode pour la première temps, l'achèvement du code ne fonctionne pas correctement. Mais si Emacs entre en mode C++ la seconde fois, tout fonctionne correctement.
Est-ce que quelqu'un sait ce que je fais mal?
Merci pour la réponse. Donc CEDET remplace le C++ - mode-hook original, non? – phimuemue