Eclipse Intellisense?


90

Как мне сказать Eclipse, чтобы он автоматически предлагал предложения при вводе текста? Я ищу функцию, похожую на Visual Studio Intellisense, с Resharper.

Сейчас мне приходится каждый раз нажимать CTRL+ Space.

Ответы:


78

Вам не нужно нажимать CTRL*, spaceно, возможно, задержка слишком велика или вам не нравится триггер (по умолчанию '.'). Перейти к

Окно -> Настройки -> Java / Editor / Content Assist

И измените настройки в разделе Автоактивация по своему вкусу.

Если это не работает для пользователей Windows, см. Этот ответ .


1
пользователь Кевин Росси попытался отредактировать, чтобы указать на это (что на самом деле является комментарием): «Это не работает с дистрибутивом Eclipse Juno C / C ++»
Дени Сегурэ,

Каждый редактор в Eclipse может иметь свои собственные триггеры автоматической активации - активация одних и тех же символов не имеет смысла на любом языке.
nitind

В Mac этоADT -> Preferences -> Java/Editor/Content Assist
Адиль Малик

171

Я стал ближе к VisualStudio, установив для параметра «Триггер автозаполнения для Java» значение

.(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

и установив задержку на 0.

Теперь я хотел бы понять, как сделать так, чтобы имя метода автоматически заполнялось при нажатии (как это делает VS Intellisense.


1
Какая это версия затмения? В текстовом поле «Триггеры автоматической активации для Java» можно ввести только 4 символа.
Zesty

3
Это очень хорошо работает. Намного лучше, поскольку теперь он будет отображать локальные переменные и все остальное. Благодарность! @ HappyCoder4U Это может не помочь, но я использую eclipse 3.7M5.
Howler

2
вы гений :) для языков, отличных от Java, такой настройки нет :(
Иван Г.

1
Потрясающие. Спасибо! При использовании Eclipse на Mac (3.6.1) имя параметра - «
Триггеры

4
Все работало, но теперь у меня очень раздражающее поведение: предположим, я хочу ввести «private int counter;» Я начинаю с приватного, и автозаполнение включается с некоторыми предложениями (первое - PrivateCredentialPermission). Когда я закончу набирать private и нажимаю "пробел", вставляется PrivateCredentialPermission. Как обойти это?
VM4

41

Тони чистый гений. Однако, чтобы добиться еще лучшего автозаполнения, попробуйте установить триггеры на это:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz =.(!+-*/~,[{@#$%^&

(специально упорядочены в порядке использования для повышения производительности :)


2
Этот метод вносит некоторые ошибки. Например, если я наберу текст =, он сразу же что-то предложит. Если я нажму пробел, = он автоматически вставит первое совпадение.
theGreenCabbage

проверка предложения Java, предложения типа Java и предложения не-типа java и их перемещение вверху по порядку сработала для меня.
Шайлендра Сингх Раджават

См. Этот вопрос о переполнении стека для некоторых решений проблемы с пространством: stackoverflow.com/questions/14297735/…
Уильям Даттон

Все специальные символы делают Intellisense неприятным, кроме точки. По сути, если вы никогда не захотите, чтобы он передавался в Intellisense после ввода символа, вы не хотите, чтобы он попадал в этот список.
Эндрю

6

Если он не работает, даже если у вас уже включен Code Assist, возможно, файлы конфигурации Eclipse повреждены. Решение, которое сработало для меня (на Eclipse 3.5.2), заключалось в следующем:

  1. Закройте Eclipse.
  2. Переименуйте каталог рабочей области.
  3. Запустите Eclipse. (Это создает новый каталог рабочей области.)
  4. Импортируйте (с копией) проекты Java из старой рабочей области.


Хорошее решение, это было действительно полезно для меня, мой Eclipse не смог показать intellisense после (.), Мне пришлось использовать ctrl + space 3 раза, чтобы показать его, спасибо за хорошее решение :-)
Мухаммад

4

Однажды у меня была такая же проблема, а затем я поискал и нашел это, и это сработало для меня:

У меня были сняты некоторые флажки, поэтому я проверил их еще раз, и это сработало. Просто зайдите в

Windows> Настройки> Java> Редактор> Помощник по содержимому> Дополнительно

и установите нужные флажки.


Также вы можете расположить предложения в порядке приоритета. Если он должен показать методы и свойства, связанные с вашим идентификатором, сначала поместите Java Proposals (Task Specific)
Codeek

3

Ответ d3dave классный. Однако theGreenGarbage упомянул о проблеме, которая меня тоже очень раздражает. Итак, вот тот, который не сразу предлагает что-то после знака '=' и при вводе пробела:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.(!+-*/~,[{@#$%^&

Я просто удалил пробел и символы '=' из массива :)

В качестве альтернативы, если вам нужны предложения при вводе пробела, но не после знака '=':

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz .(!+-*/~,[{@#$%^&

Это должен быть принятый ответ. Хотя это приводит к небольшому отставанию.
Нил Чоудхури
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.