cho*_*hoc 17 google-chrome-devtools sublimetext3 visual-studio-code
Sublime 强大的搜索功能给我留下了深刻的印象,我们后来在 Visual Studio Code 和 Google Chrome Developer 中发现了它。
一个非常基本的搜索算法可能会使用 Trie,我猜但是这种对 Sublime 等文件的搜索似乎是某种多方向的 Trie(如果有这样的东西!)即如果你有一个文件名,如:
“我是一个非常大的美丽创建的文件和其他东西.js”
并且您从该文件的名称中搜索“创建的文件”、“创建的文件”、“漂亮的东西”、“其他大”、“其他大”或任何其他字符串组合,Sublime 和 Visual Studio 代码会找到它和其他具有相似名称的文件,很快。(虽然 Google Chrome Developer 版本不是很强大,但这不是重点)。
所以,我对 Visual Studio 的源代码进行了一点挖掘,但仍然无法弄清楚搜索是如何实现的以及使用了哪种算法。我不是在寻找它的代码。只需要了解如何实现这一强大功能的高级理论,为我们的开发人员节省大量时间。
Gui*_*e86 10
您正在寻找的 VS Code 功能可以通过查看调用此函数时发生的情况来跟踪:
这里有一个有趣的部分(仅对第一项进行过滤,然后对整个过滤器进行过滤):
如果你从那里挖掘,你会发现大多数有用的东西都重新组合在这个文件中:
https://github.com/microsoft/vscode/blob/master/src/vs/base/common/fuzzyScorer.ts
一些注意事项:
模糊搜索非常严格,如果找不到单个字母或未按正确的顺序找到字母,则过滤器将不匹配。一个关键的优点是您可以突出显示结果中的匹配部分,并且它可以非常清楚地表明您的用户发生了什么。
模糊评分器根据匹配的标签/描述[/路径]对结果进行评分(对于文件,标签=文件名,描述=没有名称的路径)。
| 归档时间: |
|
| 查看次数: |
1434 次 |
| 最近记录: |