我已经开始使用Eclipse代码模板了,我很爱他们!但对于现有代码,它们有点难以使用。这是一个最简单的例子。
我有一个预先存在的代码,我想将它包装在try-catch块中。目前我从模板创建try-catch块,然后在try块中剪切粘贴我想要的代码。
我想要的是一种切割代码的方法,让它自动插入到try模板中,即在模板代码中使用类似{clipboard}标签的东西。有没有办法在Eclipse中实现这一目标?
答案 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));
此模板的结果:
我只需要从剪贴板粘贴另一个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} $ {}来获得相同的结果。