Шаблоны кодов Eclipse: вставить буфер обмена? - PullRequest
1 голос
/ 08 апреля 2010

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

У меня есть уже существующий фрагмент кода, и я хочу обернуть его в блок try-catch. В настоящее время я создаю блок try-catch из шаблона, а затем вставляю нужный код в блок try.

Мне нужен способ вырезать код и автоматически вставить его в шаблон попытки, то есть использовать что-то вроде тега {clipboard} внутри кода шаблона. Есть ли способ сделать это в Eclipse?

Ответы [ 3 ]

2 голосов
/ 26 марта 2011

В общем, лучший способ научиться делать подобные вещи - взглянуть на существующие шаблоны. Тем более что имена переменных могут измениться. Используйте $ {line_selection} или $ {word_selection} в своем шаблоне. Прошло много времени с тех пор, как вы задали этот вопрос, и теперь есть встроенный блок try catch, просто выделите код, который вы хотите обернуть, нажмите Ctrl-space, введите try и нажмите enter. Когда вы набираете код, он удаляется, но когда вы нажимаете Enter, он возвращается обратно в шаблоне.

Существуют и другие хорошие варианты использования переменной $ {clipboard}, но сейчас 2011 год, и я не думаю, что она еще существует.

0 голосов
/ 04 апреля 2012

Я спрашивал у меня то же самое.

Запрос на переменную $ {clipboad} открывается в Eclipse Bug 198886 .

$ {line_selection} и $ {word_selection} - хорошие возможности.

Другие возможности:

Вы также можете использовать $ {cursor}, чтобы поместить курсор туда, куда вы хотите. После этого вам просто нужно вставить содержимое буфера обмена (CTRL-V)

Вот мой любимый: используйте $ { Значение по умолчанию } или просто $ {} в сочетании с $ {word_selection}

Вот мой шаблон:

${:import(myapp.shared.core.security.DefaultPermission, myapp.shared.core.security.DefaultPermission.PermissionRight)}setVisiblePermission(new DefaultPermission(${70L}, PermissionRight.READ));

Результат этого шаблона:

Result of the template

Мне просто нужно вставить другое значение Long из буфера обмена, чтобы заменить 70L (что в моем случае является хорошим значением по умолчанию).

Другой пример из Eclipse (Button SWT Statements):

${buttonType:newType(org.eclipse.swt.widgets.Button)} ${button:newName(org.eclipse.swt.widgets.Button)}= new ${buttonType}(${parent:var(org.eclipse.swt.widgets.Composite)}, ${style:link(SWT.PUSH, SWT.TOGGLE, SWT.RADIO, SWT.CHECK, SWT.FLAT)});
${button}.setLayoutData(new ${type:newType(org.eclipse.swt.layout.GridData)}(SWT.${horizontal:link(BEGINNING, CENTER, END, FILL)}, SWT.${vertical:link(CENTER, TOP, BOTTOM, FILL)}, ${hex:link(false, true)}, ${vex:link(false, true)}));
${button}.setText(${word_selection}${});
${imp:import(org.eclipse.swt.SWT)}${cursor}

Они используют $ {word_selection} $ {} для достижения того же результата.

0 голосов
/ 29 сентября 2010

Вы можете использовать переменную типа «Выбор». Создайте код шаблона, затем перейдите на вкладку «Переменные» и измените тип переменной.

Чтобы использовать, выберите код, который будет телом try-блока. Нажмите Ctrl-Enter. Выберите шаблон.

Код шаблона будет выглядеть примерно так:

try
  $sel$
catch (exception e) {
  // TODO blah
}
...