Eclipse代码模板:插入剪贴板?

时间:2010-04-08 14:49:44

标签: eclipse templates automation autocomplete code-snippets

我已经开始使用Eclipse代码模板了,我很爱他们!但对于现有代码,它们有点难以使用。这是一个最简单的例子。

我有一个预先存在的代码,我想将它包装在try-catch块中。目前我从模板创建try-catch块,然后在try块中剪切粘贴我想要的代码。

我想要的是一种切割代码的方法,让它自动插入到try模板中,即在模板代码中使用类似{clipboard}标签的东西。有没有办法在Eclipse中实现这一目标?

3 个答案:

答案 0 :(得分:2)

一般来说,了解如何执行这些类型的事情的最佳方法是查看现有模板。特别是因为变量的名称可能会改变。在模板中使用$ {line_selection}或$ {word_selection}。你问这个问题已经有一段时间了,现在有一个预先构建的try catch块,只需要高亮显示你要包装的代码,点击Ctrl-space,然后输入try并点击{{ 1}}。在您键入时,您的代码会被删除,但是当您点击输入时,它会返回到模板中。

$ {clipboard}变量有其他好的用途,但它是2011年,我认为还不存在。

答案 1 :(得分:0)

您可以使用“选择”类型的变量。创建模板代码,然后转到“变量”选项卡并更改变量的类型。

要使用,请选择将作为try-block主体的代码。按ctrl-enter。选择模板。

模板代码如下所示:

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

答案 2 :(得分:0)

我问我同样的事情。

$ {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} $ {}来获得相同的结果。