Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,26 @@ node scripts/package.mjs

输出 `dist/php-support-<版本>-darwin.zip`(同时适用 Apple Silicon 与 Intel Mac)和它的 SHA-256。

## 诊断日志

在启用结构化日志 v2 的 Lithe macOS preview 中,宿主按语言服务身份将 Intelephense 的生命周期、
`window/logMessage` 和有界 stderr 诊断送入当前会话的 `lsp/php` 通道。
保留 `--stdio` 启动方式,由宿主统一进行脱敏、截断、写入和保留;插件不创建自己的日志 writer。
PHP 程序与 PHPUnit 的输出仍属于运行/测试控制台,不复制进诊断日志。

Intelephense 由插件声明、宿主执行,插件没有自己的进程发送 `lithe/log`。宿主因此替插件把每次启动尝试
记成与 SDK 插件同一组的操作事实,写入 `plugins/io.github.lithe-idea.php-support/host` 通道,
操作名为 `languageServer/start`:`initialize` 成功记 `plugins.operation.finished`(INFO,含耗时);
失败记 `plugins.operation.failed`(ERROR),失败码只取自启动阶段——`host.executableUnavailable`
(无法解析 Intelephense 启动命令)、`host.launchFailed`(进程拉起失败)、`host.exitedEarly`(就绪前退出)、
`host.initializeFailed`(初始化握手失败)、`host.timedOut`(初始化超时)。取消、停止和被新启动取代的
尝试不记录;事实不含 Intelephense 输出、路径或命令行。插件不需要任何日志代码,宿主实现见
https://github.com/1lck/Lithe-IDEA/pull/1720。

排障时使用 Lithe 的独立日志窗口和诊断导出,详细诊断仅临时开启。
不要把 PHP 源码、HTTP/数据库内容、环境变量、凭据或完整协议载荷写入诊断日志。
Windows 的日志实现仍为 v1;本文没有声明 Windows 已完成 v2 验收。

## 发布新版本

1. 修改 `io.github.lithe-idea.php-support/plugin.json` 的 `version`,合入 `main`。
Expand Down
Loading