LINUX.ORG.RU

[emacs][cedet] Опять автодополнение...


0

2

Господа! Понимаю, что тема уже неоднократно поднималась, но мозг уже сломлен и гугл прочёсан... Точнее в обратной последовательности.

Пытаюсь освоить сабжевые вещи. Добился только того, что автодополняются классы стандартного STL и мои собственные, так сказать, локальные. При этом в попытке вызвать

semantic-ia-complete-symbol-menu
для сторонних классов (экспериментировал с Qt, Boost) имакс задумывается на какое-то время, внизу бегут прогрессбары будто бы парсинга хидеров, но потом всё останавливается, но никакой менюшки автодополнения не вылезает. Пишет Cannot find types for бла-бла-бла. Конфиг cedet:

(load-file "/home/user/Загрузки/cedet/common/cedet.el")

(global-ede-mode 1)

(semantic-load-enable-code-helpers)

(require 'semantic-ia)
(require 'semantic-gcc)

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

(setq qt4-base-dir "/usr/include/qt4")
(setq qt4-gui-dir (concat qt4-base-dir "/QtGui"))
(semantic-add-system-include qt4-base-dir 'c++-mode)
(semantic-add-system-include qt4-gui-dir 'c++-mode)
(add-to-list 'auto-mode-alist (cons qt4-base-dir 'c++-mode))
(add-to-list 'semantic-lex-c-preprocessor-symbol-file (concat qt4-base-dir "/Qt/qconfig.h"))
(add-to-list 'semantic-lex-c-preprocessor-symbol-file (concat qt4-base-dir "/Qt/qconfig-large.h"))
(add-to-list 'semantic-lex-c-preprocessor-symbol-file (concat qt4-base-dir "/Qt/qglobal.h"))

;;пробовал также добавлять
(semantic-add-system-include "/usr/include/include/boost" 'c++-mode)

Наверное полезная инфа:
Ubuntu 11.04
Emacs 23.2.1 из репозитория
пробовался cedet1.0 и cedet1.1beta

Поможите победить проблему/Наставьте на путь истинный!

автодополнение для слабаков и при корявом апи

anonymous ()
Ответ на: комментарий от pevzi

Хм, посмотрю, но хотелось бы cedet заставить... Он ведь вроде должен и с Qt и с Boost'ами всякими работать

toggetit ()
Ответ на: комментарий от toggetit

Даже для чистоты эксперимента попробовал в другом дистре (Федора) - то же самое, вроде что-то там парсит/кэширует себе, но опять Couldn't find... =( Так что, проблема может быть в конфиге или где?

toggetit ()
Ответ на: комментарий от toggetit

Креатор значительно проигрывает КДевелопу. Вообще, КДевелоп - няшечка.

panter_dsd ★★★★ ()
Ответ на: комментарий от panter_dsd

Интересное дело, в репозиториях Федоры есть пакет emacs-autocomplete, который ставит как раз таки cedet и переписывает ~/.imacs, внося туда себя. При этом ведёт себя, зараза, точно так же как и мои скачаные пкеты cedet - т.е. парсит хидеры, но автокомплит не делает с точно такой же ошибкой - «cannot find types for ...». Шо за хрень???

toggetit ()
Ответ на: комментарий от toggetit

пытался делать в виме автокомплит: забил, юзаю Креатор. Хотя для правок конфигов и питона мне наоборот лучше вим.

blokant ★★ ()

clang. Только вот в 90% случаев оно не нужно, а иногда умудряется фризить emacs.

franchukroman ★★☆ ()
Ответ на: комментарий от blokant

Поддался =)

Тоже плюнул и попробовал Vim. Автодополнение заработало через 10 минут после прочтения мана по omnicppcomplete. После мытарств с имаксом/седет - просто мана небесная...

P.S. Qt также дополняет

toggetit ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.