TypeScript 尊重VS Code对Go To Symbol功能的推荐

vsaztqbk  于 6个月前  发布在  TypeScript
关注(0)|答案(7)|浏览(81)

🚀功能请求

描述

当使用“转到符号”功能时,搜索区分大小写且不处理模糊搜索,使整个功能几乎无用。如果你必须提前知道确切的名称(包括大小写),那么这个功能就更无用了。

描述你希望的解决方案

正如this related ticket团队提到的,这是插件的责任来以宽松的方式解释搜索。查询参数应该以宽松的方式解释,因为编辑器将对其结果应用自己的高亮和评分。一个好的经验法则是匹配不区分大小写的,并简单地检查查询中的字符是否按顺序出现在候选符号中。不要使用前缀、子字符串或类似的严格匹配。
我可能错了,但在我看来,这似乎是插件的责任。

zysjyyx4

zysjyyx41#

要完成我之前的陈述:

  • 假设存在一个名为 _syncMyAwesomeProperty() 的方法
  • syncawe: X
  • syncAwe: OK
  • scAwe: X
pgx2nnw8

pgx2nnw82#

这个问题缺少

  • 命名提供结果的语言和扩展名
jfewjypa

jfewjypa3#

我的错误:Typescript语言和扩展

vhmi4jdf

vhmi4jdf4#

你为什么要把这个还给我?难道不是TS在做额外的过滤吗?所有渲染端的过滤都是宽松的。

ivqmmu1c

ivqmmu1c5#

@jrieken 我们是否有关于如何实现此功能的指南?这是少数几个由语言实现进行过滤而不是VS Code的功能之一。

zrfyljdw

zrfyljdw6#

是的,这里解释了:"一个很好的经验法则是进行不区分大小写的匹配,并简单地检查query中的字符是否按照顺序出现在候选符号中。不要使用前缀、子字符串或类似的严格匹配。"

oogrdqng

oogrdqng7#

参考一下,这是我采用的markdown格式(基本上只是从核心VS Code复制):https://github.com/microsoft/vscode-markdown-languageservice/blob/fcf4fee307b93357a7e7dca60a30b5a05518645f/src/util/string.ts#L16

相关问题