Как получить завершение функций стиля Eclipse в Emacs для C, С++ и JAVA? Мне нравится сила текстового редактора Emacs, но отсутствие функции "intellisense" оставляет меня с помощью Eclipse.
Завершение функций стиля Eclipse в Emacs для C, С++ и JAVA?
Ответ 1
M-/
- это быстрый и грязный автозаполнение, основанный на содержимом вашего текущего буфера. Это не даст вам все, что вы получаете в Eclipse, но удивительно мощно.
Ответ 2
Я могу ответить на ваш вопрос только тем, кто не использовал Eclipse. Но! Что, если бы был действительно хороший быстрый эвристический анализ всего, что вы набрали или просмотрели в буферах emacs, и вы получили умное завершение над всем этим, а не только кодом?
M-x load-library completion M-x global-set-key C-RET complete RET
Ответ 3
Когда я занимался разработкой java, я использовал:
Java Development Environment для Emacs (JDEE)
JDEE предоставит завершение имени метода, когда вы явно вызываете функцию jdee. Он имеет привязку клавиатуры для этой функции в режиме jdee.
Ответ 4
Пакет CEDET обеспечивает завершение работы для C/С++ и Java (и для некоторых других языков). Для первоначальной настройки вы можете взять мою конфигурацию, которую я использую для работы с проектами на С++
Ответ 5
Сейчас я использую Auto Complete для Emacs. Являясь текущей Visual Studio и бывшим пользователем Eclipse, я могу сказать, что он неплохо конкурирует с обоими приложениями. Это все еще не так хорошо, как Microsoft IntelliSense для С#, но некоторые говорили бы, что С++, как известно, трудно разобрать.
Он использует силу (я полагаю) Semantic пакет из Cedet, и мне кажется, что лучше использовать его по сравнению с Smart Complete. Он заполняет члены С++, локальные переменные и т.д. Это довольно хорошо. Тем не менее, он падает на невозможность завершить перегруженные методы (он только показывает функцию один раз без параметров, но это ограничение Cedet, которое я считаю) и другие различные вещи. В будущем это может улучшиться!
Кстати, я мог ошибаться здесь, но, думаю, вам нужен проект EDE, созданный для завершения работы члена класса (как и в случае с семантикой). Я использовал его только при создании проекта EDE, поэтому считаю, что это правда.
Ответ 6
Поиск в Интернете Я нахожу http://www.emacswiki.org/cgi-bin/wiki/EmacsTags#toc7, описывающий complete-tab
в etags. По умолчанию он равен M-Tab
. Эта привязка может быть проблемой для вас.
Кроме того, etags имеет некоторые ограничения, которые могут вас раздражать...
Ссылка также указывает на то, что CEDET имеет улучшенную поддержку завершения символа.
Ответ 7
Вы пробовали плагин emacs для eclipse?
http://people.csail.mit.edu/adonovan/hacks/eclipse-emacs.html
Ответ 8
Я написал С++-специфический пакет поверх CEDET, который мог бы предоставить что ты хочешь. Он предоставляет подсказку аргументов типа Eclipse. Перегруженные функции поддерживаются как для аргументов функции. и для завершения. Пакет находится здесь:
https://github.com/abo-abo/function-args
Не забудьте проверить хороший снимок экрана:
https://raw.github.com/abo-abo/function-args/master/doc/screenshot-1.png
Ответ 9
auto-complete-clang - это то, что вы хотите. Невозможно ошибиться при использовании реального компилятора С++ для доработок.
Единственная проблема, с которой он столкнулся, - нет способа узнать, какие флаги -I
и -D
передаются компилятору. Есть пакеты для emacs, которые позволяют вам объявлять проекты, а затем вы можете их использовать.
Лично я использую CMake для всех C и С++, поэтому я написал некоторый код CMake, чтобы передать эту информацию emacs через локальные переменные каталога, Он работает, но я подумываю написать пакет, который называет cmake из emacs, чтобы там было меньше вторжений.