Часто, когда я пишу код, я забываю окружить часть кода методом. Например, при печати массива я понимаю, что забыл передать массив в Arrays.toString().

String[] foo(){
    return new String[3];
}

main() {
    System.out.println(foo());
}

Есть ли способ в Eclipse, чтобы я мог выбрать foo(), а затем использовать автозаполнение или что-то еще, чтобы окружить его Arrays.toString()? Итак, я хочу закончить с этим:

main() {
    System.out.println(Arrays.toString(foo()));
}

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

4
jpyams 11 Авг 2015 в 19:47

2 ответа

Да, вы можете использовать для этого шаблоны:

Сначала поэкспериментируйте с существующими шаблонами:

  • Перейдите в исходный редактор и выберите "foo()".
  • Откройте вид General > Templates.
  • Выберите какой-нибудь шаблон, например, Java > toArray и посмотрите, как он работает.

Затем добавьте свой собственный шаблон:

  • Windows > Preferences > Java > Editor > Templates > New.
  • Я думаю, что правильный контекст должен быть «Java».

Другой способ получить доступ к шаблонам — через помощник по содержимому: в исходном коде в новой строке начните вводить первые буквы шаблона, затем нажмите [CTRL][ПРОБЕЛ]. Появится селектор с соответствующими шаблонами. Возможно, вам будет полезно установить флажок «Автоматически вставляется» в окне определения шаблона.

И еще один способ получить к ним доступ — выбрать строку кода, а затем Контекстное меню > Окружить с помощью.

0
Little Santi 11 Авг 2015 в 20:27
Спасибо за ваш ответ. Я обновил свой ответ, чтобы уточнить, о чем я спрашиваю.
 – 
jpyams
11 Авг 2015 в 20:35
  1. Быстрый способ:

Дважды щелкните или используйте select enclosing element и его аналоги, чтобы выбрать выражение, которое вы хотите обернуть. ctrl-x, чтобы временно вырезать его. Введите несколько символов и Ctrl-пробел, чтобы вставить имя метода и круглые скобки. Наконец, ctrl-v, чтобы вставить то, что вы только что вырезали.

  1. с шаблонами - в операторах Java: ${method}(${word_selection})${cursor}

Вы можете сделать шаблон, подобный описанному @LittleSanti. Если вы используете фальшивую переменную шаблона для имени метода (например, ${method} или ${name}) вместо константы, такой как foo, Eclipse выделит ее и позволит вам вставить, ввести или завершить ее. Затем, когда вы нажмете «Ввод» или «Tab», он переместит курсор в конец (позиция, обозначенная ${cursor}

template editing screenshot

К сожалению, я не думаю, что Eclipse предоставляет «настоящую» переменную шаблона для выбора методов в области видимости. Было бы неплохо, если бы это позволило сделать для вас завершение по методам.

0
Community 20 Июн 2020 в 12:12
Мои эксперименты показали, что контекст должен быть Java, чтобы шаблон работал для таких вариантов, как foo(). Также не смущайтесь, когда выделенный текст (здесь foo()) исчезает при вводе wrap.... Он снова появится после выбора шаблона. Применяется к Eclipse 4.6
 – 
Rüdiger Herrmann
12 Фев 2017 в 15:19