Używam Emacsa z CEDETEM i autouzupełnianie do uzupełniania kodu. Pierwotnie ustawiłem CEDET tak, aby ładował się przy uruchamianiu Emacsa za każdym razem.Emacs: Używanie i inicjowanie CEDETA
Jednakże zajęło to dużo czasu, więc pomyślałem, że byłoby sprytnie załadować go w razie potrzeby, tj. - w moim przypadku - przy wejściu w tryb C++.
Więc przeniosłem pierwotną funkcję do lambda
że nazywa się przy wejściu C++ - tryb:
; 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)
)
)
Nie ma żadnych błędów, ale mam następujący problem: Gdy Emacs przejdzie C++ - tryb dla pierwszego czas, wykonanie kodu nie działa poprawnie. Ale jeśli Emacs po raz drugi wejdzie w tryb C++, wszystko działa dobrze.
Czy ktoś wie, co robię źle?
Dziękuję za odpowiedź. CEDET zastępuje oryginalny hak w trybie C++, prawda? – phimuemue