Ответ 1
Для этого есть решение для отслеживания проблем. Скопируйте jar в папку eclipse/dropins. С следующим местом перезапуска в качестве автозапуска запускается диалоговое окно.
В Eclipse Oxygen я включил предложения в стиле intellisense для Java, перейдя в
Window -> Preferences -> Java/Editor/Content Assist
и установив следующее
Auto activation delay (ms) -> 0
Auto activation triggers for Java -> .(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
источник = Eclipse Intellisense?
Это прекрасно работает, за исключением одной раздражающей проблемы. Когда я нажимаю spacebar, набираемый токен автоматически заполняется тем, что находится вверху списка предложений. Справедливо, за исключением того, что иногда я буду вводить имя класса/переменной с точным допустимым соответствием, но это не будет лучшим предложением. Поэтому, когда я естественно нажимаю spacebar, Eclipse вставляет что-то совершенно не так.
EG после ввода
Cookie
я ударю spacebar и получитьCookieMonster
.
Это похоже на ошибку и случается достаточно часто, чтобы раздражать, но даже несмотря на это, я не хочу, чтобы spacebar вообще запускал автозаполнение. Я могу хотеть напечатать имя переменной, которая еще не была объявлена, или что-то подобное. Я хочу использовать автозаполнение в качестве вспомогательного инструмента, но моя естественная типизация всегда должна иметь приоритет над ним.
Я хотел бы прекратить запуск spacebar автозаполнения и либо вернуться к использованию enter, либо лучше запустить автозаполнение с помощью клавиши custom, не используемой при обычной печати. Возможно ли это?
Я поиграл со всеми настройками в Content Assist, но безрезультатно. Поиск в Google всего лишь возвращает кучу результатов об отключении функции автозаполнения.
ОБНОВИТЬ
Эта проблема присутствует в последних 6 версиях Eclipse - Oxygen [4.7] Neon [4.6] Mars [4.5] Luna [4.4] Kepler [4.3] и Juno [4.2]
Тема в системе отслеживания проблем, обсуждаемая в принятом ответе, и различные комментарии, кажется, предполагают, что эта проблема была признана.
Если какие-то разработчики Eclipse читают, все, что я могу сказать, - подумайте о преимуществах исправления.
Конечно, плагин в принятом ответе и другие плагины, связанные с веткой ошибок, исправьте это. Но сколько других людей, сталкивающихся с этой проблемой, либо знают о ней, либо потрудятся найти и установить ее?
Автозаполнение - это функция, с которой вы хотите работать интуитивно и безупречно в любой современной IDE. Так обстоит дело в IntelliJ IDEA, и в настоящее время это очень убедительная причина для перехода...
Для этого есть решение для отслеживания проблем. Скопируйте jar в папку eclipse/dropins. С следующим местом перезапуска в качестве автозапуска запускается диалоговое окно.
Используйте SDK-версию eclipse
Плагины 1.open Просмотр и поиск org.eclipse.jface.text, щелкните правой кнопкой мыши, выберите импорт в качестве исходного проекта. После импорта вы найдете его в своем рабочем пространстве.
2.In src/org/eclipse/jface/text/contentassist/CompletionProposalPopup.java
char[] triggers = t.getTriggerCharacter();
if(contains(triggers,key))
измените на
if(key!='='&&key!=0x20&&contains(triggers,key))
3.Export org.eclipse.jface.text
Щелкните правой кнопкой мыши папку проекта org.eclipse.jface.text, выберите export → Развертываемые плагины и фрагменты, затем выберите пункт назначения архивного файла, завершите. Замените в Eclipse/plugins ту, которую вы создаете.
Пробел был ключом для выбора автозаполнения даже в Indigo. Насколько мне известно, это невозможно настроить. На самом деле, вероятно, поэтому существует задержка.
Я предлагаю установить задержку на некоторое оптимальное значение, что позволяет удобно вводить такие вещи, как private void ...
, не вызывая предложений для private
и void
. Затем, если вы получите предложение, потому что вы слишком долго ждали, нажмите Escape, чтобы прервать Content Assist.
Такая же конфигурация, как davnicwil, та же проблема, все еще на eclipse 4.4.
Решение: перехват (перехват) SHIFT + SPACE (нажмите и удерживайте) в (заслонке редактора) затмение и замените его ESC, SPACE (последовательность). Теперь вы решаете между
В окнах вы можете использовать http://www.heise.de/download/activaid.html (вы также можете использовать AutoHotkey, java native hook,...)
HowTo с ActivAid:
Мой конфигурационный файл: activAid/settings/ac'tivAid.ini: [UserHotkeys]
Hotkey11=+Space
Path11=<Send>{ESC}{SPACE}
Description11=Eclipse Shift+Space -> Esc,Space
Category11=
Application11=ahk_class SWT_Window0
Вы также можете переназначить ключи на неанглийских клавиатурах с помощью "HotStrings", например. ö → {, ä- > } и т.д.
Наконец, отработал.
Попробуйте загрузить org.eclipse.jface.text.jar и скопировать его в свою папку с плагином (как правило, eclipse/plugin). Не забудьте сделать резервную копию своей собственной.
Работает над Eclipse Juno.
Если ссылка не работает, прокомментируйте это, спасибо.
Патч для Bug 348857 был недавно объединен с проектом Eclipse и был выпущен как часть Eclipse 2018-12. Вы можете скачать эту версию здесь.
Теперь у вас есть новая опция, чтобы отключить все триггеры вставки, кроме enter, что предотвратит spacebar от автозаполнения.
Просто перейдите в Настройки... → Java → Редактор → Помощник по содержимому (или Окно → Настройки → Java → Редактор → Помощник по содержимому в Windows) и выберите Отключить триггеры вставки, кроме "Enter", как показано на скриншот ниже:
Вы можете отключить автоматическую активацию с помощью флажка в
Window -> Preferences -> Java/Editor/Content Assist
и активировать функцию автозаполнения по требованию. Горячей клавишей по умолчанию для этого является
CTRL + Space
В Eclipse перейдите в Window → Preferences → General → Keys и удалите привязку для команды Content Assist.