2011-04-22 29 views
8

我可以爲Java @ Eclipse提供全文自動完成功能嗎?我們來演示:Eclipse:Fulltext autocompletion for Java?

最後一段代碼:

getVariants().add(new Variant(MediaType.TEXT_XML)); 

怎麼辦,現在我的代碼:

getv時[Ctrl +空格] .A [Enter]鍵新 V [ Ctrl +空格,向下箭頭, Enter] M [Ctrl + Space,Enter]。 text_x

基本上是,Eclipse完成單詞 「TEXT_XML」 當我提供字母 「TEXT_X」。

我怎麼想代碼:

getv時[Ctrl +空格] .A [Enter]鍵新 V [Ctrl +空格鍵,向下箭頭, Enter]鍵M [Ctrl +空格鍵,輸入]。 XML

和Eclipse應該知道我的意思是 「TEXT_XML」(全文自動完成)。

回答

3

據我所知,沒有辦法在Eclipse偏好設置視圖中啓用全文代碼完成。這一直在困擾我一段時間。我做了相當多的挖掘工作,我很確定沒有簡單的方法來實現這一點。

然而, 有兩種方法來實現所需的,但我認爲這兩種方法是很多工作來解決這個小麻煩。

  1. 有一個Eclipse插件擴展點的JDT的Java自動完成建議的電腦 - reference page ,將實現該擴展點的樣例項目可以發現in this repository。 這很方便,,但仍然很多的樣板和繁瑣的編碼。

  2. 您可以更改內部org.eclipse.jdt.internal.codeassist.CompletionEngine類中的findKeywords方法並編譯您自己的JDT分支。但是由於很多原因,這是不鼓勵的。首先,這個班級是一個12000級的怪物,很難跳進去。當然,如果你只是在拼湊一個團隊,這個團隊很少有機會成爲官方的貢獻,所以你需要擔心關於每個eclipse發佈。

此外,未來可能會有一種非常激動人心的方式。儘管這可能會超出你的要求。

看看Code Recommenders project。這blog有一個outline of the project objectives 它沒有具體提到全文自動完成,但我會假設它的匹配算法甚至超過了。

編輯:在適當的SO-精神,我會保持這個答案最新:

顯然的功能在代碼推薦器插件現在已經實現。看到這個blog post和這個forum thread。我很驚訝它只用了10個loc。對我來說,擴展點似乎更加複雜。

+0

我只是想說,Code Recommenders在使用它一段時間後非常有用:) – Xorty 2011-05-14 16:47:57

+0

@Xorty:我更新了我的答案,並提供了與此相關的兩個鏈接,以證明賞金的合理性;)我假設你是無論如何,該eclipse論壇線程的OP。目前爲止,您對插件的使用體驗如何?生產足夠安全嗎? – Jules 2011-05-20 10:41:35

+1

這是我的是的:-)其實我到目前爲止有一些麻煩,有時推薦插件carshes(我不記得在這個功能之前發生這種情況):-(但我的Eclipse現在是MONSTER與插件數量巨大,我要去使用seoncd eclipse安裝並進行測試,我會在Eclipse論壇上發佈一些反饋意見 – Xorty 2011-05-20 10:55:19

2

如果MediaType類不含有大量訪問的字段/方法,你可以簡單地使用

getv[ctrl+space].a[Enter]new V[ctrl+space, down arrow, Enter]M[Ctrl+Space, Enter].[Ctrl+Space, down arrow, Enter] 

您可能需要按向下箭頭不止一次,雖然選擇所需的字段。

+0

好戲,但不是全文解決方案:) – Xorty 2011-04-28 08:40:34

0

是的,你可以使用模板。 (窗口 - >首選項 - > Java - >編輯器 - >模板)

基本用法是將名稱設置爲想要鍵入的名稱,然後將模式設置爲您想要顯示的模式。

在我的測試中,我將名稱設置爲xml,上下文爲Java,模式爲TEXT_XML並自動插入開啓。然後,當我輸入了你的榜樣,我能夠遵循一個模式像...

getv[ctrl+space].a[enter]new V[ctrl+space, down arrow, Enter]M[ctrl+Space, Enter].xml[ctrl+space]

而且由於自動插入被打開 TEXT_XML插入。

模板有比這更多的功能,我用於這個答案的一個來源是Effective Eclipse

我希望這有助於!

+0

您將不得不手動配置每個單個成員的模式,雖然對嗎?而你不能改爲搜索「ml」並獲得TEST_XML而不進行配置?我認爲OP正在尋找更有活力的東西。 – 2011-05-02 19:15:02

+0

@Mark Peters:確實,我認爲這個問題是尋找減少重複擊鍵的解決方案。仍然模板很好地知道:D – Shaded 2011-05-02 19:26:28

+0

這是很好的功能感謝您的建議,但不幸的是,它不是我正在尋找(關於全文自動完成的問題)。 – Xorty 2011-05-02 22:31:24