我已经开始使用Eclipse代码模板,并且非常喜欢他们!但对于现有的代码,它们有点难以使用。这是最简单的一个例子。Eclipse代码模板:插入剪贴板?
我有一个预先存在的代码位,我想把它包装在一个try-catch块中。目前,我从模板创建try-catch块,然后在try块中剪切粘贴我想要的代码。
我想要的是一种方法来剪切代码,并将其自动插入到try模板中,即在模板代码中使用类似{clipboard}标签的内容。有没有办法在Eclipse中实现这一点?
我已经开始使用Eclipse代码模板,并且非常喜欢他们!但对于现有的代码,它们有点难以使用。这是最简单的一个例子。Eclipse代码模板:插入剪贴板?
我有一个预先存在的代码位,我想把它包装在一个try-catch块中。目前,我从模板创建try-catch块,然后在try块中剪切粘贴我想要的代码。
我想要的是一种方法来剪切代码,并将其自动插入到try模板中,即在模板代码中使用类似{clipboard}标签的内容。有没有办法在Eclipse中实现这一点?
一般要学习如何做这类事情是看现有的模板的最佳方式。特别是因为变量的名称可能会改变。在模板中使用$ {line_selection}或$ {word_selection}。自从你问这个问题已经有一段时间了,现在有一个预先建好的try catch块,只需点击你想要打包的代码,打到Ctrl-space
,并输入try
,然后点击enter
。当你输入你的代码时会被删除,但是当你输入时它会回到模板中。
$ {clipboard}变量还有其他用处,但是它是2011年的版本,我认为它还不存在。
您可以使用“Selection”类型的变量。创建模板代码,然后进入“变量”选项卡并更改变量的类型。
要使用,请选择将作为try-block主体的代码。点击ctrl-进入。选择模板。
模板代码看起来是这样的:
try
$sel$
catch (exception e) {
// TODO blah
}
这听起来不错,但我无法让它工作。当创建一个模板时,我会看到'$ {line_selection}'或'$ {word_selection}'的变量选项。但是,CTRL + Enter会删除当前选中的文本。这是我遇到的最大麻烦,我无法让模板选择器在我选中文本时显示。 – bejonbee 2011-03-30 20:38:38
与此处的某些内容相同的问题。使用Eclipse PDT ...也许PDT打破它? – 2011-10-18 10:27:23
我在问我同样的事情。
对$ {clipboad}变量的请求在Eclipse Bug 198886中打开。
$ {line_selection}和$ {word_selection}是很好的可能性。
其他可能性:
您还可以使用$ {}光标放置要将光标。之后,你只需要粘贴剪贴板中的内容(CTRL-V)
这里我最喜欢的:结合使用$ {默认值}或只是$ {}与$ {word_selection}
这里我的模板:
${:import(myapp.shared.core.security.DefaultPermission, myapp.shared.core.security.DefaultPermission.PermissionRight)}setVisiblePermission(new DefaultPermission(${70L}, PermissionRight.READ));
结果这个模板:
我只是^ h从剪贴板粘贴另一个Long值来代替70L(这在我的情况下是一个很好的默认值)。
从Eclipse的其他例子(SWT按钮发言):
${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} $ {}来达到同样的效果。
查看Eclipse错误:https://bugs.eclipse.org/bugs/show_bug.cgi?id = 198886 – Jmini 2012-04-04 11:59:16