2012-07-06 86 views
2

他們如何在eclipse或其他IDE中執行自動完成的代碼?背後的基本原則是什麼?自動完成的基本原理

+2

我喜歡這個問題,但你能稍微更具體嗎? – BlackVegetable 2012-07-06 16:58:18

+1

你爲什麼要問? – 2012-07-07 04:31:10

回答

3

您知道如何將源代碼顯式附加到在Eclipse中導入的非標準庫中?當你這樣做時,文本搜索索引建立在該源碼之上,並且這種方式IDE知道提供自動完成功能。粗略地說,我想這是關聯數組,其中key是您鍵入的方法的前綴,value是該方法的描述。

現在對於這個功能來說重要的是要在時間和內存消耗方面有效地實現。爲某些方法的每個可能的前綴存儲相同的條目將是非常低效的。 (甚至可以存儲每個前綴!)

可能適用於此問題的一個有趣的結構是Trie,它固有地針對前綴搜索進行了優化,同時保留了可接受的內存使用情況。

看看這裏一個簡單的例子: http://www.sarathlakshman.com/2011/03/03/implementing-autocomplete-with-trie-data-structure/

1

而且嘗試次數,使用的情況下,當你已經輸入的方法/ VAR的名稱的開頭,我想它也使用某種當你嘗試調用一個方法並且IDE建議你一個局部/全局變量作爲參數傳遞給該方法調用時,請爲類型比較/分析。