📝 docs(progress): finish LSP core lifecycle plan
This commit is contained in:
+20
-9
@@ -2,10 +2,14 @@
|
|||||||
|
|
||||||
## Current Focus
|
## Current Focus
|
||||||
|
|
||||||
|
- 已完成严格 LSP core 生命周期:initialize/shutdown/exit 使用显式状态机,
|
||||||
|
EOF 与非法 framing 返回非零退出码,launcher 透传服务器退出码
|
||||||
- 已完成 `AsyncExecutor` 协作式取消重构;任务句柄稳定持有结果,按实例取消,
|
- 已完成 `AsyncExecutor` 协作式取消重构;任务句柄稳定持有结果,按实例取消,
|
||||||
排队任务取消后不执行,运行中任务通过 `std::stop_token` 退出
|
请求 ID 区分整数与字符串,运行中任务通过 `std::stop_token` 退出
|
||||||
- 已修复 LSP UTF-16 位置到 UTF-8 字节偏移和 Tree-sitter 点位的转换,
|
- 已修复 LSP UTF-16 与 UTF-8/Tree-sitter 字节坐标的双向转换;增量编辑和
|
||||||
中文与 emoji 增量编辑使用一致坐标
|
syntax diagnostics 对中文与 emoji 使用一致位置
|
||||||
|
- JSON-RPC 错误、请求异常和 LSP transport framing 均使用严格结构化处理,
|
||||||
|
不再保留手写空 JSON、生命周期 Provider 或 staged rollout 开关
|
||||||
- 已完成参数解析与启动错误处理重构;CLI 参数严格校验,日志默认固定到
|
- 已完成参数解析与启动错误处理重构;CLI 参数严格校验,日志默认固定到
|
||||||
stderr,启动失败使用受控退出码
|
stderr,启动失败使用受控退出码
|
||||||
- 已完成 Conan 依赖升级;`lsp-server` 当前使用 ConanCenter 可见的最新
|
- 已完成 Conan 依赖升级;`lsp-server` 当前使用 ConanCenter 可见的最新
|
||||||
@@ -27,13 +31,15 @@
|
|||||||
启动回归测试
|
启动回归测试
|
||||||
- LSP 测试脚本、VSCode 和 Vim 已移除废弃的日志输出选择参数
|
- LSP 测试脚本、VSCode 和 Vim 已移除废弃的日志输出选择参数
|
||||||
- 文本坐标转换新增 ASCII、中文、emoji、跨行、越界和无效 UTF-8
|
- 文本坐标转换新增 ASCII、中文、emoji、跨行、越界和无效 UTF-8
|
||||||
回归测试;`test_provider` 与 LSP 传输验证通过
|
回归测试;syntax diagnostics 已在 `didOpen` 后实际发布 UTF-16 坐标
|
||||||
- scheduler 使用 current/active 双索引准确处理重复 ID;`WaitAll` 覆盖登记到
|
- scheduler 使用 current/active 双索引准确处理重复 ID;`WaitAll` 覆盖登记到
|
||||||
Taskflow 入队之间的窗口,取消不在状态锁内触发 stop callback
|
Taskflow 入队之间的窗口,取消不在状态锁内触发 stop callback
|
||||||
- 系统库、workspace 加载、文件索引和 workspace folder 枚举已传递
|
- 系统库、workspace 加载、文件索引和 workspace folder 枚举已传递
|
||||||
`std::stop_token`,并在文件边界检查取消
|
`std::stop_token`,并在文件边界检查取消
|
||||||
- scheduler 新增 13 个生命周期与并发回归用例;`test_scheduler`、
|
- core 新增真实 stdio 生命周期、JSON-RPC 错误、请求取消、严格 framing 和
|
||||||
`test_provider`、`tsl-server` 构建和 LSP 传输冒烟验证通过
|
diagnostics 回归;`tsl-server`、`test_scheduler`、`test_provider` 构建通过
|
||||||
|
- `test_cli_startup`、`test_core_server`、`test_scheduler` 和 LSP transport
|
||||||
|
smoke 通过;`test_provider` 为 100/110,失败集合与本次 core 改动前一致
|
||||||
|
|
||||||
## Next Steps
|
## Next Steps
|
||||||
|
|
||||||
@@ -45,6 +51,7 @@
|
|||||||
5. 后续任务处理 `--interpreter=~/...` 的主目录展开
|
5. 后续任务处理 `--interpreter=~/...` 的主目录展开
|
||||||
6. 另行处理 `test_lsp_json` 的 rename 响应缺少 `result`;旧服务器二进制
|
6. 另行处理 `test_lsp_json` 的 rename 响应缺少 `result`;旧服务器二进制
|
||||||
同样可复现
|
同样可复现
|
||||||
|
7. 另行修复 `test_provider` 的 10 个既有 Provider 行为断言
|
||||||
|
|
||||||
## Open Risks
|
## Open Risks
|
||||||
|
|
||||||
@@ -54,15 +61,18 @@
|
|||||||
会导致脚本类 AST / symbol / semantic CTest 失败
|
会导致脚本类 AST / symbol / semantic CTest 失败
|
||||||
- 系统 CMake 4.4 的 `import std` 实验门值尚未适配;本次使用 CMake 4.3.4
|
- 系统 CMake 4.4 的 `import std` 实验门值尚未适配;本次使用 CMake 4.3.4
|
||||||
完成构建验证
|
完成构建验证
|
||||||
- Clang 22 在 C++ Modules 全量重编译期间曾于 `definitions_test.cppm` 出现一次
|
- `test_provider` 仍有 documentHighlight、implementation、configuration、
|
||||||
前端崩溃;相同 `-j1` 增量重试成功,未产生源码诊断
|
refresh、client capability、workDoneProgress、code action、executeCommand 和
|
||||||
|
will file operations 共 10 个既有失败
|
||||||
|
- Clang 22 在 C++ Modules 全量重编译期间会随机 frontend exit 139;本次在
|
||||||
|
Glaze 实例化和 `interpreter_test.cppm` 出现,使用相同 `-j1` 重试成功
|
||||||
- `vscode/bin/tsl-server` 当前是未拉取的 Git LFS 指针,根目录 LSP 冒烟脚本
|
- `vscode/bin/tsl-server` 当前是未拉取的 Git LFS 指针,根目录 LSP 冒烟脚本
|
||||||
只能完成语法与参数静态验证
|
只能完成语法与参数静态验证
|
||||||
|
|
||||||
## Workflow State
|
## Workflow State
|
||||||
|
|
||||||
<!-- workflow-state:start -->
|
<!-- workflow-state:start -->
|
||||||
phase: planning
|
phase: done
|
||||||
spec: docs/superpowers/specs/2026-07-13-lsp-core-lifecycle-design.md
|
spec: docs/superpowers/specs/2026-07-13-lsp-core-lifecycle-design.md
|
||||||
plan: docs/superpowers/plans/2026-07-13-lsp-core-lifecycle.md
|
plan: docs/superpowers/plans/2026-07-13-lsp-core-lifecycle.md
|
||||||
executor: executing-plans
|
executor: executing-plans
|
||||||
@@ -77,4 +87,5 @@ constraints: karpathy-guidelines,.agents,AGENT_RULES
|
|||||||
- [x] `2026-07-11-args-parser-startup-errors.md` done
|
- [x] `2026-07-11-args-parser-startup-errors.md` done
|
||||||
- [x] `2026-07-12-text-coordinates-utf16.md` done
|
- [x] `2026-07-12-text-coordinates-utf16.md` done
|
||||||
- [x] `2026-07-12-async-executor-cancellation.md` done
|
- [x] `2026-07-12-async-executor-cancellation.md` done
|
||||||
|
- [x] `2026-07-13-lsp-core-lifecycle.md` done
|
||||||
<!-- plan-status:end -->
|
<!-- plan-status:end -->
|
||||||
|
|||||||
Reference in New Issue
Block a user