Eclipse: полнотекстовое автозаполнение для Java? - PullRequest
8 голосов
/ 22 апреля 2011

могу ли я иметь полнотекстовое автозаполнение для Java @ Eclipse?Продемонстрируем:

Конечный фрагмент кода:

getVariants().add(new Variant(MediaType.TEXT_XML));

Как мне теперь кодировать:

getv [ctrl + пробел] .a [Enter] новый V [ctrl + пробел, стрелка вниз, Enter] M [Ctrl + Пробел, Enter]. text_x

В основном,Eclipse завершает слово «TEXT_XML», когда я предоставляю буквы «TEXT_X».

Как мне хотелось бы кодировать:

getv [ctrl + space] .a[Enter] new V [ctrl + пробел, стрелка вниз, Enter] M [Ctrl + пробел, Enter]. xml

и Eclipse должен понять, что я имел в виду "TEXT_XML" (полнотекстовое автозаполнение).

Ответы [ 3 ]

3 голосов
/ 03 мая 2011

Насколько я знаю, нет способа включить завершение полнотекстового кода в окне настроек Eclipse .Это тоже давало мне покоя.Я немного покопался, и я почти уверен, что нет простого способа достичь этого.

Однако есть два способа реализации желаемого, но я полагаю, что оба из них являются способом большой работы.для исправления этого небольшого неудобства.

  1. Существует точка расширения плагина Eclipse для компьютера JLT Java Completion Proposal - справочная страница Пример проекта, который реализует это расширениеТочку можно найти в этом хранилище .Это довольно удобно, , но все еще много шаблонного и утомительного кодирования.

  2. Вы можете изменить метод findKeywords во внутреннем org.eclipse.jdt.internal.codeassist.CompletionEngine class и скомпилируйте свой собственный JDT-форк.Но это не рекомендуется по многим причинам.Во-первых, этот класс - монстр с 12000 строками, в который трудно прыгнуть. И, конечно, если вы только взломаете клудж, у вас мало шансов стать официальным вкладом, так что вам нужно беспокоитьсяо каждом выпуске Eclipse.

Кроме того, в будущем возможен очень холодный путь.Хотя это может немного превысить ваши требования.

Взгляните на проект Code Recommenders .В этом блоге содержится план целей проекта В нем конкретно не упоминается полнотекстовое автозаполнение, но я предполагаю, что его алгоритмы сопоставления выходят за рамки этого.

Редактировать : В правильном духе SO, я буду поддерживать этот ответ в актуальном состоянии:

Очевидно, эта функция теперь реализована в плагине Code Recommenders.Смотрите сообщение в блоге и эту ветку форума .Я очень удивлен, что это заняло всего 10 мест.Для меня точка расширения оказалась более сложной.

2 голосов
/ 28 апреля 2011

Если ваш класс MediaType не содержит большого количества доступных полей / методов, вы можете просто использовать

getv[ctrl+space].a[Enter]new V[ctrl+space, down arrow, Enter]M[Ctrl+Space, Enter].[Ctrl+Space, down arrow, Enter]

вам может понадобиться нажать стрелку вниз более одного раза, хотя, чтобы выбрать нужное поле.

0 голосов
/ 02 мая 2011

Да, вы можете использовать шаблоны. (Окно -> Настройки -> Java -> Редактор -> Шаблоны)

Основное использование - вы задаете имя для того, что хотите напечатать, и задаете для шаблона то, что хотите отображать.

В моем тестировании я установил имя на xml, Контекст на Java, Шаблон на TEXT_XML и Автоматическая вставка включена. Затем, когда я напечатал твой пример, я смог следовать шаблону, подобному ...

getv[ctrl+space].a[enter]new V[ctrl+space, down arrow, Enter]M[ctrl+Space, Enter].xml[ctrl+space]

и так как Автоматическая вставка была включена poof TEXT_XML был вставлен.

Шаблоны обладают гораздо большей функциональностью, чем этот, и один источник, который я использовал для этого ответа, был Effective Eclipse .

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...