代码之家  ›  专栏  ›  技术社区  ›  Jonathan Beebe

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

  •  1
  • Jonathan Beebe  · 技术社区  · 15 年前

    我已经开始使用Eclipse代码模板,我很喜欢它们!但是对于现有的代码,它们有点难以使用。举个例子来说,这是最简单的。

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

    我想要的是一种将代码剪切并自动插入Try模板的方法,即在模板代码中使用剪贴板标记。在Eclipse中有没有一种方法可以做到这一点?

    3 回复  |  直到 13 年前
        1
  •  2
  •   Tod    13 年前

    一般来说,学习如何执行这些类型的操作的最佳方法是查看现有模板。尤其是因为变量的名称可能会改变。在模板中使用$行或$字选择。问这个问题已经有一段时间了,现在有了一个预构建的try-catch块,只需突出显示要包装的代码,点击 Ctrl-space 和类型 try 击中 enter . 当您键入代码时,代码将被删除,但当您单击Enter时,它将被包装在模板中。

    对于一个$clipboard变量还有其他很好的用途,但现在是2011年,我认为还没有。

        2
  •  0
  •   GinoA    14 年前

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

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

    模板代码如下所示:

    try
      $sel$
    catch (exception e) {
      // TODO blah
    }
    
        3
  •  0
  •   Jmini Peter Kriens    13 年前

    我也在问我同样的问题。

    对$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));
    < /代码> 
    
    

    此模板的结果:

    我只需要从剪贴板粘贴另一个长值来替换70L(在我的例子中是一个好的默认值)。

    Eclipse的其他示例(button 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:new type(org.eclipse.swt.layout.griddata)(swt.$horizontal:link(beging,center,end,fill),swt.$vertical:link(center,top,bottom,fill),$hex:link(false,true),$vex:link(false,true));
    $button.settext($word selection$)
    $imp:导入(org.eclipse.swt.swt)$光标
    < /代码> 
    
    

    他们使用$字选择$来获得相同的结果。

    变量在中打开Eclipse Bug 198886.

    美元行和美元字是很好的选择。

    其他可能性:

    您还可以使用$cursor将光标放在所需的位置。之后,您只需粘贴剪贴板内容(ctrl-v)

    这里我最喜欢的:使用${默认值}或者只需将$与$Word_

    这里是我的模板:

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

    此模板的结果:

    Result of the template

    我只需要从剪贴板粘贴另一个长值来替换70L(在我的例子中是一个好的默认值)。

    Eclipse的其他示例(Button 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}
    

    他们使用$单词选择$获得相同的结果。