Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio code 在Visual Studio Code/Google Chrome Developer/Sublime(Ctrl+;p或Cmd+;p)中,使用哪种算法来实现文件搜索?_Visual Studio Code_Google Chrome Devtools_Sublimetext3 - Fatal编程技术网

Visual studio code 在Visual Studio Code/Google Chrome Developer/Sublime(Ctrl+;p或Cmd+;p)中,使用哪种算法来实现文件搜索?

Visual studio code 在Visual Studio Code/Google Chrome Developer/Sublime(Ctrl+;p或Cmd+;p)中,使用哪种算法来实现文件搜索?,visual-studio-code,google-chrome-devtools,sublimetext3,Visual Studio Code,Google Chrome Devtools,Sublimetext3,我们后来在VisualStudioCode和GoogleChromeDeveloper中发现了Sublime强大的搜索功能,这给我留下了深刻的印象 一个非常基本的搜索算法可能会使用Trie,我想,但这种对Sublime等文件的搜索似乎是某种多方向的Trie(如果有这样的东西!),即,如果您有一个文件名,如: “I-am-a-very-big-created-file-and-something-other.js” 搜索“创建的文件”、“创建的文件”、“漂亮的东西”、“其他大文件”、“其他大文件”

我们后来在VisualStudioCode和GoogleChromeDeveloper中发现了Sublime强大的搜索功能,这给我留下了深刻的印象

一个非常基本的搜索算法可能会使用Trie,我想,但这种对Sublime等文件的搜索似乎是某种多方向的Trie(如果有这样的东西!),即,如果您有一个文件名,如:

“I-am-a-very-big-created-file-and-something-other.js”

搜索“创建的文件”、“创建的文件”、“漂亮的东西”、“其他大文件”、“其他大文件”或来自该文件名称的任何其他字符串组合,Sublime和Visual Studio代码将很快找到该文件和具有类似名称的其他文件。(虽然谷歌Chrome开发者版不是很强大,但这不是重点)


因此,我在VisualStudio的源代码中翻了一番,但仍然不知道搜索是如何实现的,使用了哪种算法。我不是在寻找它的代码。我们只需要了解如何实现这一功能强大、为我们开发人员节省大量时间的高级理论

这看起来像是DevTools在中用于模糊搜索的代码

而底层的diff算法是:


通过查看调用此函数时发生的情况,可以跟踪您正在查找的VS代码功能:

这里有一个有趣的部分(仅对第一项进行筛选,然后对整个筛选进行筛选):

如果你从那里挖掘,你会发现大部分有用的东西都重新组合在这个文件中:

一些注意事项:

模糊搜索非常严格,如果未找到单个字母或字母顺序不正确,则过滤器将不匹配。一个关键的优势是,您可以在结果中突出显示匹配的部分,它可以非常清楚地显示用户的情况


模糊记分器根据匹配的标签/描述[/path](对于文件,标签=文件名,描述=没有名称的路径)对结果进行评分。

我不知道VS代码或Chrome,升华是封闭源代码和专有的,但可能会给你一些想法。@OdatNurd确实非常有用。谢谢。:)我希望VSCode能把他们的代码改成更像Supreme的…@ScottStafford Supreme的代码有什么不同?我不知道确切的原因,因为它是不透明的。但它感觉它在列表中更快、更高地找到了我想要的文件。它还感觉到它会记住您使用特定搜索字符串选择的内容,从而了解您。不过我不确定,我还没有系统地研究过。Chromium的DevTools算法在我看来还不够好。要让它工作,你必须按顺序键入搜索到的单词。e、 g.如果目标文件名为“chromium dev tool dummy file.txt”,并且搜索“tool dev chromium”,则不会显示该文件。在VisualStudio中,您可以搜索这些词的任意组合,搜索结果将按预期工作。