- 新增 PRIVACY.md:逐项写明每个联网端点、发送内容、默认开关与关闭方式,明确云候选默认开启、
token 在 config.toml 明文存储、无任何遥测
- 设置页「用户协议」「隐私政策」两个无 handler 的死按钮接上;前者改名为「开源许可协议」指向
LICENSE,开源产品的用户条款就是许可证本身,不再承诺一份不存在的 EULA
- 安装包随包装入 GPL 正文并在安装向导显示(GPLv3 §4/§6),补上打包测试断言
- release.yml 增加 build provenance attestation,并在发布后向 MSIME-Web 发 repository_dispatch,
让 msime.app/update.json 不再等两小时一次的 cron
- 所有 CMakePresets 的 vcpkg 路径改用 $env{VCPKG_ROOT},server 的 Boost 回退不再指向个人目录
- ui/README.md 指向本机绝对路径的 markdown 死链改成相对链接
- 新增 check-developer-paths.sh 并接入 required 的 quality 检查,防止路径回潮
- docs/installation.md 不再写死版本号
TsfEditControl
一个基于 Win32 TSF 的编辑控件实验工程,使用 Direct2D / DirectWrite 负责绘制。项目里把文本输入、组合串显示、候选框定位和基础编辑逻辑放进了控件本身,demo 只是一个最小宿主。
功能
- Direct2D / DirectWrite 文本渲染
- TSF 输入法接入
- preedit / display attribute 绘制
- 候选框位置上报
- 软换行
- 选区、插入点和鼠标命中
- 独立 demo 程序
目录
include/TsfD2DTextBox.h:对外头文件src/:控件实现和 TSF 相关代码demo/TsfD2DTextBoxDemo.cpp:最小示例程序CMakeLists.txt:顶层 CMake 配置CMakePresets.json:VS2022 + vcpkg presetvcpkg.json:依赖声明
构建
如果本机已经装好了 vcpkg,并且 preset 里的路径配置可用,可以直接执行:
cmake --preset vcpkg
cmake --build --preset debug
生成的 demo 默认位于:
build/bin/Debug/TsfEditControlDemo.exe
生成目标
TsfEditControl:静态库TsfD2DTextBox:兼容旧命名的别名 targetTsfEditControlDemo:demo 可执行文件
命名说明
对外类型名暂时还是 TsfD2DTextBox,主要是为了不动现有接口。工程名和 target 已经改成了 TsfEditControl,后面如果要统一命名,再一起收口文件名、类名和 demo 名称。
脚本
scripts/ 目录提供了几个常用脚本:
./scripts/configure.ps1:执行 CMake configure./scripts/build.ps1:配置并编译,默认Debug./scripts/run-demo.ps1:配置、编译并启动 demo
示例:
./scripts/build.ps1
./scripts/build.ps1 -Configuration Release
./scripts/run-demo.ps1