Режим автозаполнения Emacs - PullRequest
1 голос
/ 09 января 2012

Новый с Emacs.Я не могу реализовать автозаполнение для Gtk + 3.Я использую CEDET и Auto Complete Mode в качестве пользовательского интерфейса.Semantic не может найти включаемые файлы (), но он может анализировать теги кода в открытых буферах.

Вот мой .emacs conf

;;----------------------------------------------------------------------------------
(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
;;----------------------------------------------------------------------------

Есть предложения?Спасибо.

1 Ответ

1 голос
/ 10 января 2012

Ваша установка выглядит нормально для меня;Интересно, могут ли быть дополнительные "gtk /" и "gdk /" в ваших add-system-include?Я только что получил эту работу с GTK-3.0, используя:

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

Затем в исходном файле,

#include <gtk/gtk.h>

Затем:

gtk_[C-c ?] 

тратит минутуили так, обрабатывая все файлы заголовков, но он возвращает меню завершения, как и ожидалось.

Если это не работает для вас, я заметил, что вы, возможно, используете более старую версию CEDET.Я использую последнюю версию dev из репозитория bazaar;Я настоятельно рекомендую вам сделать то же самое.

...