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





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