Skip to content

About

Lithe 的 Go 支持插件(Lithe Store 社区插件,gopls、运行与 go test)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

Go Support for Lithe

为 Lithe 提供 Go 代码智能、运行 Go 文件和 go test。 这是一个通过 Lithe Store 分发的社区插件; 它由原先的官方插件 dev.lithe.plugin.go-support 迁移而来,功能声明保持不变。

English: Go language intelligence through your own gopls, plus running Go files and go test, for Lithe.

功能

功能 依赖的程序
补全、跳转定义、悬停提示、诊断 你电脑上的 gopls
运行当前 .go 文件、go test(整个工作区、当前目录、单个测试) 项目使用的 go 工具链

插件本身只有一份 plugin.json,不附带任何可执行文件。安装时 Lithe 会弹窗列出以上程序,确认后才会安装。

安装

  1. 安装 Go 和 gopls:

    brew install go
    go install golang.org/x/tools/gopls@latest
  2. 在 Lithe 中打开 设置 → 插件 → 插件市场,搜索 “Go Support”,安装并确认。

  3. 按界面提示重启 Lithe,再打开项目中的 .go 文件以激活语言服务器。

Lithe 已预置 Lithe Store 社区插件源。如果你之前移除了它,先在 ⚙ → 管理插件仓库… 中重新添加 https://github.com/Lithe-IDEA/Lithe-store。

从官方 Go Support 迁移

之前装过官方 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 验收。

发布新版本

  1. 修改 io.github.lithe-idea.go-support/plugin.json 的 version,合入 main。

  2. 推送同名标签:

    git tag v0.2.0 && git push origin v0.2.0
  3. Release 工作流会核对标签与版本一致、打包并发布 Release(说明里附 SHA-256)。

  4. Lithe Store 的自动追踪会在 6 小时内发现新版本并开合并请求,合并后用户即可在 Lithe 中更新。

许可

Apache-2.0

About

Lithe 的 Go 支持插件(Lithe Store 社区插件,gopls、运行与 go test)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages