当所有扩展都被禁用时,是否会出现这个问题?:是的
重现步骤:video.mp4当你想查看悬停效果时,但不小心移动了光标一点,这有点烦人。此外,在上面移动光标会显著增加 CPU 和 RAM 的使用量,因为每次悬停都会生成一个 npm 示例
a14dhokn1#
可以确认一切
3yhwsihp2#
悬停功能来自vscode/extensions/npm/src/features/jsonContributions.ts第60行 in 08d9a15| | constresult: Hover={ |它包含字符串字面量的range范围。我以为这会用来在鼠标移动到单词上时保持悬停。尝试在Typescript中进行相同的操作,似乎当鼠标移动到一个单词上时,悬停不会消失。不知道为什么在这个例子中会有所不同。
range
q5lcpyga3#
我认为TypeScript版本也会重新运行,但它计算得足够快,以至于在ts文件中移动光标时,你不会感觉到CPU使用率的增加。
也许缓存结果在这方面会有帮助?
顺便说一下,在每个悬停上生成一个npm会消耗大量的资源。如果我们已经有了一个不依赖于它的Web实现,我想知道为什么我们仍然在桌面客户端上使用它?
vscode/extensions/npm/src/features/packageJSONContribution.ts第277行到第282行| | if(this.npmCommandPath){ || | info=awaitthis.npmView(this.npmCommandPath,pack,resource); || | } || | if(!info&&this.onlineEnabled()){ || | info=awaitthis.npmjsView(pack); || | } |
thtygnil4#
通常情况下,当前悬停的实现方式是在编辑器鼠标移动时重新计算悬停内容。然而,我们可以实现一个机制来缓存提供者的悬停内容,并在编辑器鼠标移动到相同范围时显示它。我将把这个问题标记为待办工作。正如@Legend-Master在上一条评论中提到的,计算速度很快,因此在某些情况下,悬停会在下一个位置无缝出现。
4条答案
按热度按时间a14dhokn1#
可以确认一切
3yhwsihp2#
悬停功能来自
vscode/extensions/npm/src/features/jsonContributions.ts
第60行 in 08d9a15
| | constresult: Hover={ |
它包含字符串字面量的
range
范围。我以为这会用来在鼠标移动到单词上时保持悬停。尝试在Typescript中进行相同的操作,似乎当鼠标移动到一个单词上时,悬停不会消失。
不知道为什么在这个例子中会有所不同。
q5lcpyga3#
我认为TypeScript版本也会重新运行,但它计算得足够快,以至于在ts文件中移动光标时,你不会感觉到CPU使用率的增加。
也许缓存结果在这方面会有帮助?
顺便说一下,在每个悬停上生成一个npm会消耗大量的资源。如果我们已经有了一个不依赖于它的Web实现,我想知道为什么我们仍然在桌面客户端上使用它?
vscode/extensions/npm/src/features/packageJSONContribution.ts
第277行到第282行
| | if(this.npmCommandPath){ |
| | info=awaitthis.npmView(this.npmCommandPath,pack,resource); |
| | } |
| | if(!info&&this.onlineEnabled()){ |
| | info=awaitthis.npmjsView(pack); |
| | } |
thtygnil4#
通常情况下,当前悬停的实现方式是在编辑器鼠标移动时重新计算悬停内容。然而,我们可以实现一个机制来缓存提供者的悬停内容,并在编辑器鼠标移动到相同范围时显示它。我将把这个问题标记为待办工作。
正如@Legend-Master在上一条评论中提到的,计算速度很快,因此在某些情况下,悬停会在下一个位置无缝出现。