TypeScript Intellisense在"completionInfo"上对TS失败,

lp0sw83n  于 3个月前  发布在  TypeScript
关注(0)|答案(5)|浏览(39)

类型:Bug
在TS服务器运行几秒钟后,Intellisense会失效。这似乎与completionInfo请求TS服务器有关。
如果我们重启TS服务器并立即尝试获取Intellisense建议,它可以正常工作:

但是在几秒钟(约5秒)后,它就无法正常工作了:

重现步骤:

  1. 克隆 https://github.com/metriport/metriport
  2. 检出分支 944-tmp-no-fhir-converter
  3. 打开 packages/api/src/app.ts
  4. npm run install-deps && npm run build
  5. 在第15行以下输入 ver 并等待Intellisense生效
  6. 如果在TS服务器启动后立即完成,它应该可以正常工作(显示带有括号内的图标的提示)
  7. 如果在TS服务器启动后约5秒完成,它应该会失败(显示带有 abc 图标的提示)
    查看TS服务器日志,我们得到以下内容:
Err 751   [18:43:42.056] Exception on executing command {
  "seq": 34,
  "type": "request",
  "command": "completionInfo",
  "arguments": {
    "file": "/Users/rafael/code/metriport/packages/api/src/app.ts",
    "line": 18,
    "offset": 2,
    "includeExternalModuleExports": true,
    "includeInsertTextCompletions": true,
    "triggerKind": 1
  }
}:

    Cannot read properties of undefined (reading 'lastIndexOf')

    TypeError: Cannot read properties of undefined (reading 'lastIndexOf')
        at Object.startsWith (/Users/rafael/code/metriport/node_modules/typescript/lib/tsserver.js:2290:20)
        at getNodeModuleRootSpecifier (/Users/rafael/code/metriport/node_modules/typescript/lib/tsserver.js:132350:20)
        ...

完整的TS服务器日志: tsserver.log
这个问题在MacOS 13.4.1上无法复现,但在Windows 10上也无法复现(即使在重新启动TS服务器几秒钟后也可以正常工作)。
附加环境信息:

  • npm: 9.5.1
  • node: v18.14.2
  • VSCode: 1.81.0 (也尝试在 1.79 和 "Insiders" 上)
  • TS版本 4.9.5

VS Code版本:Code 1.81.0(通用)(6445d93c81ebe42c4cbd7a60712e0b17d9463e97,2023-08-02T12:40:02.782Z)
操作系统版本:Darwin arm64 22.5.0
模式:
系统信息
| 项目 | 值 |
| ------ | ------ |
| CPUs | Apple M1 Max (10 x 24) |
| GPU状态 | 2d_canvas:启用canvas_oop_rasterization:禁用_offdirect_rendering_display_compositor:禁用_off_okgpu_compositing:启用metal:禁用_offmultiple_raster_threads:启用_onopengl:启用_onrasterization:启用raw_draw:禁用_off_okvideo_decode:启用video_encode:启用vulkan:禁用_offwebgl:启用webgl2:启用webgpu:启用 |
| 平均负载 | 24, 19, 15 |
| 内存(系统) | 32.00GB(0.08GB可用) |
| 进程参数 | --disable-extensions --crash-reporter-id c22e1216-d117-446f-9db4-d73fbdb3e601 |
| 屏幕阅读器 | 无 |
| VM | 0% |扩展功能已禁用A/B实验

4smxwvx5

4smxwvx51#

我看到了与Intellisense无法正常工作的其他问题,但似乎那些情况要么相当不同,要么难以识别相似之处:

  • $x_{1e0f1}^{x}$

  • $x_{1e1f1}^{x}$

erhoui1w

erhoui1w2#

在启用了Dev Tools的TS服务器重启后,得到了The JS/TS language service immediately crashed 5 times. The service will not be restarted.:

cidc1ykv

cidc1ykv3#

@leite08,这可能与我的问题类似 -> #56142

pnwntuvh

pnwntuvh4#

@sagarpanchal 我看到你在解决你的问题时使用了版本4.9.5 - 这也是我们正在使用的版本,所以可能不相关。感谢让我知道并链接问题!

kb5ga3dv

kb5ga3dv5#

我发现我的代码中存在性能较差的类型,使用这个工具microsoft/typescript-analyze-trace可以找到它们。也许这能有所帮助?

相关问题