Подтвердить что ты не робот

Завершение функций стиля Eclipse в Emacs для C, С++ и JAVA?

Как получить завершение функций стиля Eclipse в Emacs для C, С++ и JAVA? Мне нравится сила текстового редактора Emacs, но отсутствие функции "intellisense" оставляет меня с помощью Eclipse.

4b9b3361

Ответ 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 имеет улучшенную поддержку завершения символа.

Ответ 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, чтобы там было меньше вторжений.