语言服务
GoLand 依赖 TypeScript、Vue、Astro、Svelte 以及其他框架专用语言服务来提供自动补全、代码分析和错误高亮功能。
配置内存处理方式
尽管 GoLand 力图与语言服务流畅集成,但仍可能出现由语言服务引起的 out-of-memory错误,而非由 GoLand 导致。
内存处理模式
当语言服务内存耗尽时,GoLand 会尝试重启该服务。 连续两次尝试失败后,语言服务将停止,GoLand 会在状态栏上的 语言服务 小部件中指示该错误,同时弹出错误提示框。
为了防止 out-of-memory错误或平滑解决此类错误,确保语言服务稳定运行,您可以使用以下两种模式配置内存处理方式:
自动增加内存
在此模式下,GoLand 会在即将发生 out-of-memory错误时自动增加 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 问题追踪器中提交问题,并附上您的项目。 这将帮助我们更有效地重现并调查问题。