2012-07-06 57 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建议你一个局部/全局变量作为参数传递给该方法调用时,请为类型比较/分析。