TypeScript 在编辑器中调查延迟的“转到定义”行为

ghhkc1vu  于 4个月前  发布在  TypeScript
关注(0)|答案(7)|浏览(59)

今天在大型项目中,当一个文件没有在编辑器中打开时,跨文件的go-to-definition需要一分钟。

// a.ts
import "./b.js" // <- jump to definition on this path

// b.ts
export function foo() {
}

当语言服务完全初始化并且程序加载已经发生时,这种情况尚不清楚原因 - 文件路径已经已知(即使启用了声明Map)。因此,似乎编辑器花费的时间比它所需的时间要长,或者go-to-definition被其他操作阻塞(这应该被视为较低优先级)。

v8wbuo2f

v8wbuo2f1#

请参阅#34843,了解一个真实项目中遇到此问题的情况。

hc8w905p

hc8w905p2#

我刚刚和@amcasey聊了一下,似乎部分原因是跳入文件会触发项目加载,但也许这没关系。

我更关心的“无法导航”的go-to-definition行为似乎是从Ctrl+点击或Cmd+点击触发的,这可能会立即触发快速信息请求!这个请求会触发项目加载,而项目加载会在“go-to-definition”请求上阻塞服务器。

a0zr77ik

a0zr77ik3#

我们应该在本周四讨论这个问题。

cyej8jka

cyej8jka4#

@DanielRosenwasser 你能在最新的VS Code insiders构建中测试这个,以确认这是否仍在发生。我上周修复了@amcasey提到的悬停问题,但不确定它是否也会修复这个问题

czfnxgou

czfnxgou5#

我认为我们决定#35114#35115中的一个或两个是我们解决这个问题的最佳选择。

rqdpfwrv

rqdpfwrv6#

这是一个跟踪问题,而不是针对任何特定里程碑。

huus2vyu

huus2vyu7#

我不确定这是否在跟踪任何特定内容。

相关问题