Skip to content

fix(windows): 降低编辑器输入热路径开销,避免每键全文同步造成卡顿 - #209

Merged
1lck merged 2 commits into
preview/0.3.0from
fix/windows-editor-input-lag
Aug 21, 2026
Merged

fix(windows): 降低编辑器输入热路径开销,避免每键全文同步造成卡顿#209
1lck merged 2 commits into
preview/0.3.0from
fix/windows-editor-input-lag

Conversation

@1lck

@1lck 1lck commented Aug 21, 2026

Copy link
Copy Markdown
Owner

摘要

  • 修复 Windows 编辑器输入时每键触发多轮全文读取、行数组重建和 Buffer 广播导致的持续不跟手
  • Inline Git Blame 改为按打开 / 保存 / Git revision 刷新并取消过期进程,普通打字不再拉起 git.exe
  • 支持增量同步的语言服务器改为 range-based didChange;空闲会话使用 lsp.waitEvents,不再 20ms 轮询
  • 2 MiB / 50,000 行以上文件默认关闭 LSP、blame、Code Lens、semantic tokens 等昂贵服务,并提供可恢复提示

Fixes #187

This is a scoped rewrite of #203 against current preview/0.3.0 (including #201). It keeps the editor-lag and LSP review fixes, and drops settings/file-tree wheel, autoSave default, and JDTLS lookup. #201's theme selector and overflow-clip are unchanged.

测试计划

已在本机验证

  • ./scripts/verify-rust-core-comments.sh
  • cargo test --manifest-path rust/lithe-core/Cargo.toml lsp(77 passed)
  • ./scripts/verify-shared-contracts.sh
  • 未跑 Windows bun run typecheck / Release 构建(当前环境无 windows/tauri/node_modules

Keep Monaco as the in-session source of truth, send incremental LSP
didChange, wait on lsp.waitEvents instead of polling, refresh inline
blame on open/save/revision, and gate expensive services on large files.

This is the scoped #187 fix from #203: settings/file-tree wheel, autoSave
default, and JDTLS lookup are not included. #201's theme selector and
overflow-clip stay on preview/0.3.0.

Fixes #187
…nd JDTLS lookup

Restore the remaining effective extras from #203 that are not the
settings/file-tree wheel work: workbench render recovery, the unsaved
tab-close dialog required by the tab-chrome split, default auto-save,
and bundled JDTLS discovery for unbundled Windows builds.
@1lck
1lck merged commit 8e7c5ae into preview/0.3.0 Aug 21, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant