2

他们如何在 eclipse 或其他 ide 中执行代码的自动完成?其背后的基本原理是什么?

4

2 回答 2

3

您知道如何将源代码显式附加到您在 Eclipse 中导入的非标准库吗?当您这样做时,文本搜索索引会在该源上构建,这样 IDE 就会知道为您提供自动完成功能。粗略地说,我想它是一种关联数组,其中 key 是您键入的方法的前缀,而 value 是该方法的描述。

现在,重要的是要在时间和内存消耗方面有效地实现此功能。为某个方法的每个可能的前缀存储相同的条目是非常低效的。(或者甚至存储每个前缀!)

可能适合此问题的有趣结构之一是 Trie,它本质上针对前缀搜索进行了优化,同时保持可接受的内存使用量。

在这里看一个简单的例子: http: //www.sarathlakshman.com/2011/03/03/implementing-autocomplete-with-trie-data-structure/

于 2012-07-06T17:16:44.863 回答
1

除了 Tries,用于已经键入方法/var 名称开头的情况,我认为它还对尝试调用方法并且 IDE 建议您的情况使用某种类型比较/分析作为参数传递给该方法调用的局部/全局变量。

于 2012-07-06T22:52:03.363 回答