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.