Поддержка 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
, а не с периодом.