* fix(windows): 支持标点切换快捷键改绑与取消绑定 * fix(shortcut): 对齐虚拟键并处理语音与窗口快捷键冲突 * fix(ui-html): 绑定标点快捷键前提示应用快捷键占用 * fix(ui-html): 仅对已知快捷键冲突提示确认 * feat(shortcuts): 支持自定义输入状态切换快捷键 * fix: keep shortcut editor buttons on one row * fix(shortcuts): 限定输入状态快捷键为 Ctrl 组合 * fix: clarify shortcut override and punctuation lock behavior * perf(server,windows): 提前筛选输入状态快捷键 * fix(windows,server,ui-html): 修正输入状态快捷键的兼容与保存问题 - windows: 未协商 InputStateShortcuts 时回退到旧的 Ctrl+Shift+E KeyEvent, 新 DLL 配旧 Server 时英文候选快捷键不再失效 - windows: 全角快捷键与标点快捷键一样可在待处理按键后排队,不再漏给应用 - windows: Server 不可用时排队的英文候选切换按 FUNCTION_CANCEL 离线回放, 不再丢弃其后的按键 - server: 非字符串配置值不再以 "!invalid" 作为 binding 发给设置页 - server: 仅三个输入状态快捷键路径强制回传配置快照;去掉 worker 中与 reader 重复的协商检查;抽出 InputStateShortcutViews 去除重复转换 - ui-html: 保存后 5 秒未收到快照则恢复编辑器并提示重试 --------- Co-authored-by: fanlusky <1730976608@qq.com>
windows —— TSF 文本服务
水杉输入法在 Windows 上的前端:一个纯 TSF 方案的文本服务 DLL,注入宿主进程,负责按键预判、焦点与线程归属、composition 的 edit session 写入,以及与 Server 之间的命名管道协议。候选窗、工具栏、设置页和实际的候选计算都在 ../server/,本目录只做宿主适配。
产品介绍、安装和功能说明见仓库根目录的 README;本目录的代码地图、TSF/COM 硬约定和改动要求见 AGENTS.md。
构建
从仓库根目录配置,源码目录是本目录:
cmake -S windows -B windows/build -A x64 `
-DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake" `
-DVCPKG_TARGET_TRIPLET=x64-windows-static
cmake --build windows/build --config Release --parallel
ctest --test-dir windows/build -C Release --output-on-failure
Win32 用 -A Win32 和 x86-windows-static;安装包两种架构都要。scripts/ 下是本机开发用的生成、构建、注册和签名脚本,从本目录运行。
引擎契约来自 ../engine/contracts/,是本仓的目录,普通检出就有。TSF 只引用这些头文件,不链接引擎运行库。