语言服务
GoLand 依赖于 TypeScript、Vue、Astro、Svelte 以及其他特定于框架的语言服务来提供代码补全、代码分析和错误高亮。
配置内存处理
尽管 GoLand 力求与语言服务实现顺畅集成,但仍有可能出现由语言服务而非 GoLand 本身引起的 out-of-memory 错误。
内存处理模式
当语言服务内存不足时,GoLand 会首先尝试重启该服务。 连续两次尝试失败后,语言服务将停止,GoLand 会在状态栏的 语言服务 小部件中指示该错误,并弹出错误信息。
为防止 out-of-memory 错误或自动解决该问题以确保语言服务稳定运行,您可以按以下两种模式配置内存处理:
自动增加内存
在此模式下,当即将发生 out-of-memory 错误时,GoLand 会自动增加 1000MB 并在后台重启语言服务。
GoLand 将继续以此方式静默运行,直至达到最大内存限制(即 25% RAM),此时语言服务将停止,GoLand 会显示错误信息弹窗。
有关改善该情况的可行操作,请参阅 故障排查。
设置内存限制
在此模式下,您需手动指定语言服务可以使用的最大内存。 在达到此限制之前,每次出现 out-of-memory 错误时,GoLand 会建议增加 1000MB。
当达到指定限制时,语言服务将停止,GoLand 会弹出错误信息。
有关改善该情况的可行操作,请参阅 故障排查。
为 TypeScript 语言服务配置内存处理
按 Ctrl+Alt+S 打开设置并导航到 。
在 语言服务内存 区域中选择内存处理模式:
选择 在可用时自动增加内存 以便自动增加内存并静默重启语言服务。
或者,选择 设置内存限制 并指定语言服务可用的最大内存。
如果指定的内存大小超过可用 RAM,GoLand 会在工具提示中建议一个合适的值。
故障排查
当语言服务超过其分配的内存限制而无法再处理工作负载时,会发生 out-of-memory 错误。 通常在以下情况下会发生此类错误:
当前项目包含大量文件和依赖项。
在 IDE 设置中指定的最大内存限制不足以满足语言服务需求。
增加内存分配
按 Ctrl+Alt+S 打开设置并导航到 。
请选择 设置内存限制 选项。
逐步增加限制,例如从 4GB 增加到 6GB,再增加到 8GB。 监控改进效果。
限定项目范围
包含过多文件或依赖项的大型项目可能会导致语言服务超负荷。 要减少大型代码库的负载,请遵循 TypeScript 团队提供的 性能指南 中的建议,尤其是 Using Project References 和 Configuring tsconfig.json or jsconfig.json 章节。
升级或降级
请确保使用的是最新版本的语言服务。
GoLand 提供了捆绑版本的语言服务。 但语言服务的新版本通常包含性能改进。 因此建议您保持语言服务为最新版本。
若要安装语言服务的最新版本,请打开嵌入的 终端 (Alt+F12 ),并根据所用的语言服务及包管理器输入以下命令之一:
npm install --save-dev typescript或
pnpm add --save-dev typescript或
yarn add --dev typescriptnpm install --save-dev @vue/language-server或
pnpm add --save-dev @vue/language-server或
yarn add --dev @vue/language-servernpm install --save-dev svelte-language-server typescript-svelte-plugin或
pnpm add --save-dev svelte-language-server typescript-svelte-plugin或
yarn add --dev svelte-language-server typescript-svelte-pluginnpm install --save-dev @astrojs/language-server或
pnpm add --save-dev @astrojs/language-server或
yarn add --dev @astrojs/language-server如果某个问题出现在语言服务更新之后,可考虑降级至之前的版本,以确认问题是否由更新引起。
在 GoLand 问题跟踪器中提交问题
如果问题仍然存在,请在 GoLand issue tracker 中提交问题,并附带您的项目。 这样有助于我们更高效地重现并调查该问题。