From 5739229d3ac6ae5daf69b376115ba9001ed46062 Mon Sep 17 00:00:00 2001 From: Yao Jingxi <23722032@bjtu.edu.cn> Date: Wed, 4 Nov 2026 10:54:16 +0800 Subject: [PATCH 1/2] =?UTF-8?q?docs:=20=E8=AF=B4=E6=98=8E=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E5=8C=96=E6=97=A5=E5=BF=97=20v2=20=E4=B8=8B=E7=9A=84?= =?UTF-8?q?=E8=AF=8A=E6=96=AD=E6=97=A5=E5=BF=97=E5=8E=BB=E5=90=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - README 新增“诊断日志”一节:说明宿主记录到哪个通道、哪些输出留在控制台、 排障时用什么入口,以及哪些内容不应写入日志 - 注明 Windows 仍为 v1 日志,未声明 Windows v2 验收 --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 0a819be..8a9fc16 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,17 @@ 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` 的程序输出仍属于运行/测试控制台,不复制进诊断日志。 + +排障时使用 Lithe 的独立日志窗口和诊断导出;需要更多语言服务证据时临时启用详细诊断。 +不要添加 gopls 的 RPC dump、源码、环境变量或完整命令行作为日志。Windows 的日志实现仍为 v1; +本文没有声明 Windows 已完成 v2 验收。 + ## 发布新版本 1. 修改 `io.github.lithe-idea.go-support/plugin.json` 的 `version`,合入 `main`。 From c05e3ea5bbf0458b3c6ea1a5546ae85a11491b31 Mon Sep 17 00:00:00 2001 From: Xiaoyumuxi <3075514079@qq.com> Date: Wed, 4 Nov 2026 14:43:13 +0800 Subject: [PATCH 2/2] =?UTF-8?q?docs(logging):=20=E8=AF=B4=E6=98=8E?= =?UTF-8?q?=E5=AE=BF=E4=B8=BB=E4=BB=A3=E8=AE=B0=E7=9A=84=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E4=BA=8B=E5=AE=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 8a9fc16..4f15bde 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,15 @@ node scripts/package.mjs 插件通过现有 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 验收。