Files
msime-windows/windows
Ten-Shine 850ad772a1 feat(server,ui-html,windows): 添加任务栏语言栏按钮显隐配置
任务栏语言栏(输入法指示器旁)此前固定注册中/英模式、全/半角、中文标点三个按钮,
用户无法隐藏。新增 [language_bar] 配置节:enabled 是总开关,关闭时不再向
ITfLangBarItemMgr 注册任何按钮;show_ime_mode / show_double_single_byte /
show_punctuation 分别控制单个按钮。键缺失或共享配置不存在时默认全部显示,
旧配置与全新安装的行为不变。

- 出厂模板 config.default.toml 与工作配置 config.toml 新增 [language_bar] 节,
  四个键默认 true;升级时 MergeConfigIntoTemplate 以出厂模板为骨架重建用户配置
- Server:LoadImeConfig 读取四个开关,ime_config_general 提供成对读写入口;
  设置进程 BuildConfigMessage(configSnapshot)与 ApplyConfigUpdate(path 分发)
- 设置页「工具」分区新增语言栏卡片:总开关 + 三个子开关。总开关关闭时子开关
  置灰禁用但保留勾选展示,交互与候选混输一致;快照回填与点击上报均有测试覆盖
- TSF DLL:SetupLanguageBar 在注册时机读取共享配置,不注册的按钮不会出现在
  语言栏。按钮对象仍创建以保持析构对称;模式与标点切换走 compartment,
  隐藏按钮不影响输入
- 改动需重启生效(按钮在 TSF 激活时注册),设置页已注明
2026-10-14 13:54:11 +08:00
..

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 只引用这些头文件,不链接引擎运行库。