2010-04-08 92 views
1

我已經開始使用Eclipse代碼模板,並且非常喜歡他們!但對於現有的代碼,它們有點難以使用。這是最簡單的一個例子。Eclipse代碼模板:插入剪貼板?

我有一個預先存在的代碼位,我想把它包裝在一個try-catch塊中。目前,我從模板創建try-catch塊,然後在try塊中剪切粘貼我想要的代碼。

我想要的是一種方法來剪切代碼,並將其自動插入到try模板中,即在模板代碼中使用類似{clipboard}標籤的內容。有沒有辦法在Eclipse中實現這一點?

回答

2

一般要學習如何做這類事情是看現有的模板的最佳方式。特別是因爲變量的名稱可能會改變。在模板中使用$ {line_selection}或$ {word_selection}。自從你問這個問題已經有一段時間了,現在有一個預先建好的try catch塊,只需點擊你想要打包的代碼,打到Ctrl-space,並輸入try,然後點擊enter。當你輸入你的代碼時會被刪除,但是當你輸入時它會回到模板中。

$ {clipboard}變量還有其他用處,但是它是2011年的版本,我認爲它還不存在。

+0

查看Eclipse錯誤:https://bugs.eclipse.org/bugs/show_bug.cgi?id = 198886 – Jmini 2012-04-04 11:59:16

0

您可以使用「Selection」類型的變量。創建模板代碼,然後進入「變量」選項卡並更改變量的類型。

要使用,請選擇將作爲try-block主體的代碼。點擊ctrl-進入。選擇模板。

模板代碼看起來是這樣的:

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

這聽起來不錯,但我無法讓它工作。當創建一個模板時,我會看到'$ {line_selection}'或'$ {word_selection}'的變量選項。但是,CTRL + Enter會刪除當前選中的文本。這是我遇到的最大麻煩,我無法讓模板選擇器在我選中文本時顯示。 – bejonbee 2011-03-30 20:38:38

+0

與此處的某些內容相同的問題。使用Eclipse PDT ...也許PDT打破它? – 2011-10-18 10:27:23

0

我在問我同樣的事情。

對$ {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)); 

結果這個模板:

Result of the template

我只是^ 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} $ {}來達到同樣的效果。