为 Lithe 提供 Go 代码智能、运行 Go 文件和 go test。
这是一个通过 Lithe Store 分发的社区插件;
它由原先的官方插件 dev.lithe.plugin.go-support 迁移而来,功能声明保持不变。
English: Go language intelligence through your own
gopls, plus running Go files andgo test, for Lithe.
| 功能 | 依赖的程序 |
|---|---|
| 补全、跳转定义、悬停提示、诊断 | 你电脑上的 gopls |
运行当前 .go 文件、go test(整个工作区、当前目录、单个测试) |
项目使用的 go 工具链 |
插件本身只有一份 plugin.json,不附带任何可执行文件。安装时 Lithe 会弹窗列出以上程序,确认后才会安装。
-
安装 Go 和 gopls:
brew install go go install golang.org/x/tools/gopls@latest
-
在 Lithe 中打开 设置 → 插件 → 插件市场,搜索 “Go Support”,安装并确认。
-
按界面提示重启 Lithe,再打开项目中的
.go文件以激活语言服务器。
Lithe 已预置 Lithe Store 社区插件源。如果你之前移除了它,先在 ⚙ → 管理插件仓库… 中重新添加
https://github.com/Lithe-IDEA/Lithe-store。
之前装过官方 Go Support(dev.lithe.plugin.go-support)的话,Lithe 的插件管理会把它标成“已迁移到社区插件”。
先卸载旧插件,再按上面的步骤安装本插件。两者声明的语言相同,不要同时启用。
需要 Node.js 22+ 和 zip:
node scripts/package.mjs输出 dist/go-support-<版本>-darwin.zip(同时适用 Apple Silicon 与 Intel Mac)和它的 SHA-256。
在启用结构化日志 v2 的 Lithe macOS preview 中,宿主按语言服务身份将 gopls 的生命周期、
window/logMessage 和有界 stderr 诊断送入当前会话的 lsp/go 通道。
插件通过现有 stdio 启动声明复用这条链路,不额外创建日志文件或后台进程。
go run 与 go test 的程序输出仍属于运行/测试控制台,不复制进诊断日志。
gopls 由插件声明、宿主执行,插件没有自己的进程发送 lithe/log。宿主因此替插件把每次启动尝试
记成与 SDK 插件同一组的操作事实,写入 plugins/io.github.lithe-idea.go-support/host 通道,
操作名为 languageServer/start:initialize 成功记 plugins.operation.finished(INFO,含耗时);
失败记 plugins.operation.failed(ERROR),失败码只取自启动阶段——host.executableUnavailable
(无法解析 gopls 启动命令)、host.launchFailed(进程拉起失败)、host.exitedEarly(就绪前退出)、
host.initializeFailed(初始化握手失败)、host.timedOut(初始化超时)。取消、停止和被新启动取代的
尝试不记录;事实不含 gopls 输出、路径或命令行。插件不需要任何日志代码,宿主实现见
https://github.com/1lck/Lithe-IDEA/pull/1720。
排障时使用 Lithe 的独立日志窗口和诊断导出;需要更多语言服务证据时临时启用详细诊断。 不要添加 gopls 的 RPC dump、源码、环境变量或完整命令行作为日志。Windows 的日志实现仍为 v1; 本文没有声明 Windows 已完成 v2 验收。
-
修改
io.github.lithe-idea.go-support/plugin.json的version,合入main。 -
推送同名标签:
git tag v0.2.0 && git push origin v0.2.0 -
Release工作流会核对标签与版本一致、打包并发布 Release(说明里附 SHA-256)。 -
Lithe Store 的自动追踪会在 6 小时内发现新版本并开合并请求,合并后用户即可在 Lithe 中更新。