Поддержка Emacs, cedet и С++/С++ 11

Обычно я использую emacs в среде linux (ubuntu), потому что мне нравится редактор. Я также время от времени использую eclipse, но я нахожу это медленным.

Так как я хочу IDE-подобные функции, я попытался настроить cedet и, похоже, это как-то сделать работу.

  • Я нахожу, что cedet никогда не находит членов базового класса. Например, std::vector в gcc имеет std::vector::size в своем базовом классе и не может найти его.
  • Кажется неточным: если я сделаю что-то вроде "myvector.", он даст мне завершение, например size_type.
  • Нельзя использовать auto из С++ 11, похоже, не работает.
  • srecode-getset дает мне ошибки даже для базового использования.

Моя конфигурация не дает никаких ошибок и основана на конфигурации alexott cedet.

Мои вопросы:

  • По завершении это неточно? (Подумайте, что "vector." дает такие вещи, как "size_type".
  • Каков статус cedet для С++/С++ 11? Должна ли машина работать? Я делаю что-то неправильно?

Я попытался использовать как вложенную версию ubuntu, так и последнюю версию из репозитория bzr. CEDET кажется чрезвычайно полезным инструментом, но мне интересно, нужна ли ему больше работы.

Спасибо заранее.

Ответ 1

Вместо того, чтобы полагаться на CEDET для завершения, вы можете рассмотреть альтернативный поставщик завершения в Emacs.

Auto-complete-clang и auto-complete-clang-async работают с clang, чтобы получить завершение, и с помощью пакета auto-complete для их отображения. Компания-clang похожа, но использует пакет компании для отображения завершений.

Существует еще один незначительный режим для C, С++ и ObjC, называемый irony, который использует clang для получения завершений и может использовать несколько фронт- заканчивается, чтобы отобразить доработки. Это может иметь лучшую документацию для ее настройки.

Все они доступны на Marmalade для использования с менеджером пакетов в Emacs 24.

Ответ 2

Я знаю, что это может быть менее чем достаточный ответ (и я бы предпочел упомянуть об этом в комментариях, но я стесняюсь по пунктам), но есть плагин Eclipse для emacs, называемый emacs+. Эта ссылка должна быть дружественной к вашему менеджеру установки Eclipse (на Indigo я могу скопировать и вставить его в Help- > Install Новое программное обеспечение → Работа с). Потому что Eclipse был привлекателен для вас, и поэтому это может косвенно облегчить вашу проблему...

Ответ 3

size_type на самом деле является типом-членом vector, поэтому он не такой сумасшедший, как кажется. Конечно, синтаксис myvector::size_type, а не с периодом.