Eclipse Intellisense?


89

Як сказати 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
Adil Malik

169

Я наближаюся до поведінки, подібної до VisualStudio, встановивши для параметра "Автозавершення тригера для Java" значення

.(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

і встановіть затримку на 0.

Тепер я хотів би зрозуміти, як зробити так, щоб натиснути назву методу автозаповнення (як це робить Intellisense від VS.


1
Про яку версію затемнення йде мова? Текстове поле "Триггери автоматичної активації для Java" дозволяє мені вводити лише 4 символи.
Zesty

3
Це працює дуже добре. Набагато краще, оскільки він фактично відображатиме локальні змінні та все зараз. Дякую! @ HappyCoder4U Це може не допомогти, але я використовую eclipse 3.7M5.
Howler

2
ти геній :) жодного такого налаштування для мов, що не є Java, хоча :(
Іван Г.

1
Приголомшливо Дякую! Використовуючи Eclipse на Mac (3.6.1), параметр називається "Автоматичні активатори для Java"
ninjaPixel

4
Все працювало, але зараз у мене дуже дратує поведінка: припустимо, я хочу набрати "private int counter;" Я починаю з приватного і автозаповнення починається з деяких пропозицій (перший - PrivateCredentialPermission). Коли я закінчу набирати приватний текст і натиснути "пробіл", вставляється 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 зі старої робочої області.

Так само це
виправив

Приємне рішення, це було мені дуже корисно, моє Затьмарення не змогло показати intellisense після (.), Мені довелося використовувати ctrl + пробіл 3 рази, щоб показати його, Дякую за приємне рішення :-)
Мухаммед

3

У мене колись була та сама проблема, а потім я шукав і знаходив це, і це спрацювало для мене:

У мене були зняті деякі прапорці, тому я перевірив їх знову, і це спрацювало. Просто перейдіть до

Windows> Налаштування> Java> Редактор> Content Assist> Додатково

і встановіть прапорці, які потрібно.


3

Відповідь d3dave класна. Однак GreenGarbage згадав про це проблему, яку я теж вважаю досить прикрою. Отже, ось такий, який не відразу ж пропонує щось після знаку '=' та при наборі порожнього місця:

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

Що я зробив, це просто видалив пробіл та символи '=' з масиву :)

Якщо ви хочете отримати пропозиції під час введення порожнього місця, але не після знаку '=':

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

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