今天在大型项目中,当一个文件没有在编辑器中打开时,跨文件的go-to-definition需要一分钟。
// a.ts
import "./b.js" // <- jump to definition on this path
// b.ts
export function foo() {
}
当语言服务完全初始化并且程序加载已经发生时,这种情况尚不清楚原因 - 文件路径已经已知(即使启用了声明Map)。因此,似乎编辑器花费的时间比它所需的时间要长,或者go-to-definition被其他操作阻塞(这应该被视为较低优先级)。
7条答案
按热度按时间v8wbuo2f1#
请参阅#34843,了解一个真实项目中遇到此问题的情况。
hc8w905p2#
我刚刚和@amcasey聊了一下,似乎部分原因是跳入文件会触发项目加载,但也许这没关系。
我更关心的“无法导航”的go-to-definition行为似乎是从Ctrl+点击或Cmd+点击触发的,这可能会立即触发快速信息请求!这个请求会触发项目加载,而项目加载会在“go-to-definition”请求上阻塞服务器。
a0zr77ik3#
我们应该在本周四讨论这个问题。
cyej8jka4#
@DanielRosenwasser 你能在最新的VS Code insiders构建中测试这个,以确认这是否仍在发生。我上周修复了@amcasey提到的悬停问题,但不确定它是否也会修复这个问题
czfnxgou5#
我认为我们决定#35114和#35115中的一个或两个是我们解决这个问题的最佳选择。
rqdpfwrv6#
这是一个跟踪问题,而不是针对任何特定里程碑。
huus2vyu7#
我不确定这是否在跟踪任何特定内容。