Обновить
Это было исправлено в Eclipse 2018-12 . Это поведение по-прежнему используется по умолчанию, но его можно отключить - см. Принятый ответ, чтобы узнать, как
Я оставлю этот вопрос для потомков, а для тех, кто использует более ранние версии Eclipse
В Eclipse я включил предложения в стиле intellisense для Java, перейдя в
Window -> Preferences -> Java/Editor/Content Assist
и установив следующие
Auto activation delay (ms) -> 0
Auto activation triggers for Java -> .(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
source = Eclipse Intellisense?
Это работает блестяще, за исключением одной досадной проблемы. Когда я нажимаю spacebar, набираемый токен автоматически заполняется тем, что находится в верхней части списка предложений. Достаточно справедливо, за исключением того, что иногда я набираю имя класса / переменной с точным юридическим соответствием, но это не будет лучшим предложением. Поэтому, когда я, естественно, нажимаю, spacebarEclipse вставляет что-то совершенно не то.
EG после набора
Cookie
я бью spacebarи получаюCookieMonster
.
Это похоже на ошибку и случается достаточно часто, чтобы раздражать, но даже несмотря на это, я не хочу spacebarзапускать автозаполнение в целом . Я могу захотеть ввести имя переменной, которое еще не было объявлено, или что-то подобное. Я хочу использовать автозаполнение как вспомогательный инструмент, но мой естественный набор текста всегда должен иметь приоритет над ним.
Я бы хотел прекратить spacebarзапускать автозаполнение и либо вернуться к использованию enter, либо, еще лучше, запустить автозаполнение с помощью customключа, который не используется при обычном вводе текста. Возможно ли это?
Я поигрался со всеми настройками Content Assist безрезультатно. Поиск в Google вопроса просто возвращает кучу результатов об отключении функции автозаполнения.
Эта проблема исправлена в Eclipse 2018-12 [4.10] см. Принятый ответ
Он присутствует во всех предыдущих версиях, например, 2018-09 [4.9], Photon [4.8], Oxygen [4.7], Neon [4.6] и т. Д.
Ответы:
Eclipse 2018-12 уже был исправлен для этого!
Патч для ошибки 348857 был недавно объединен с проектом Eclipse и выпущен как часть Eclipse 2018-12 . Вы можете скачать эту версию здесь .
Теперь у вас есть новая возможность отключить все триггеры вставки, кроме enter, что предотвратит spacebarавтозаполнение.
Просто перейдите в Настройки ... -> Java -> Редактор -> Content Assist (или Window -> Preferences -> Java -> Editor -> Content Assist в Windows) и выберите Отключить триггеры вставки, кроме Enter , как показано в снимок экрана ниже:
источник
Для этого есть решение в системе отслеживания проблем. Скопируйте банку в папку eclipse / dropins. При следующем перезапуске пробел отключается как триггер автозаполнения.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=348857
Eclipse 12-2018 и новее: это работает изначально, проверьте ответ Pyves.
источник
Используйте версию SDK для eclipse
1. откройте «Просмотр подключаемых модулей» и найдите org.eclipse.jface.text, щелкните правой кнопкой мыши и выберите «Импорт в качестве исходного проекта». После импорта вы найдете его в своем рабочем пространстве.
2. В src / org / eclipse / jface / text / contentassist / CompletionProposalPopup.java
char[] triggers = t.getTriggerCharacter(); if(contains(triggers,key))
изменить на
if(key!='='&&key!=0x20&&contains(triggers,key))
3.Экспорт org.eclipse.jface.text
Щелкните правой кнопкой мыши папку проекта org.eclipse.jface.text, выберите экспорт -> Развертываемые плагины и фрагменты, затем место назначения выберите файл архива, завершите. Замените тот, который находится в eclipse / plugins, на тот, который вы создаете.
источник
0x20
вместо' '
?Пробел был ключом для выбора автозаполнения даже в Indigo. Насколько мне известно, это невозможно настроить. Собственно, наверное, поэтому и существует задержка.
Я предлагаю установить для задержки какое-то оптимальное значение, которое позволит вам
private void ...
удобно печатать, не вызывая предложений дляprivate
иvoid
. Затем, если вы получили предложение, потому что вы слишком долго ждали, нажмите Escape, чтобы прервать Content Assist.источник
Та же конфигурация, что и у davnicwil, та же проблема, все еще на eclipse 4.4.
Решение : перехватить (перехватить) SHIFT + ПРОБЕЛ (нажать и удерживать) на затмении (окно редактора) и заменить его на ESC, ПРОБЕЛ (последовательность). Теперь ты мой выбор между
В Windows вы можете использовать http://www.heise.de/download/activaid.html (вы также можете использовать AutoHotkey, собственный хук java, ...)
Как использовать ActivAid:
Мой файл конфигурации: activAid / settings / ac'tivAid.ini: [UserHotkeys]
Вы также можете переназначить клавиши на неанглийской клавиатуре с помощью «HotStrings», например ö -> {, ä->} и т. Д.
источник
Наконец-то разобрался.
Попробуйте загрузить этот org.eclipse.jface.text.jar и скопировать его в папку с плагином (обычно eclipse / plugin). Не забудьте сделать резервную копию своей.
Работает на Eclipse Juno.
Если ссылка не работает, прокомментируйте это, спасибо.
источник
Вы можете отключить автоматическую активацию, установив флажок в
и активируйте функцию автозаполнения по запросу. Горячая клавиша по умолчанию для этого
CTRL+Space
источник
В Eclipse перейдите в Window -> Preferences -> General -> Keys и удалите привязку для команды Content Assist.
источник