Skip to content

v2.3.0-beta.0 (Build 26F02)

Pre-release
Pre-release

Choose a tag to compare

@tuyangJs tuyangJs released this 14 Jun 13:54
· 2 commits to main since this release

JadeView v2.3 已发布!本版本带来了完整的 YAML 配置文件操作 API、拖拽事件拦截支持,以及多项稳定性修复。

重要变更

YAML 配置文件操作 API

新增一组 YAML 文件操作接口,支持读写、查询、删除等完整生命周期管理:

  • yaml_set / yaml_set_str — 写入配置项,yaml_set 自动推断类型,yaml_set_str 强制字符串存储
  • yaml_get / yaml_get_str — 读取配置项,支持两阶段查询模式(buffer 为空时返回所需字节数)
  • yaml_get_all — 读取整个 YAML 文件内容
  • yaml_has — 检查路径是否存在
  • yaml_delete — 删除指定路径
  • yaml_clear — 清空文件为 {}
  • yaml_delete_file — 删除文件
  • yaml_keys — 列出路径下的所有 key
  • yaml_len — 返回数组长度 / 对象 key 数

路径语法支持数组下标 [N],如 servers[0].host。所有写入操作使用原子写入(临时文件 + rename)和文件锁(CreateFileW + LockFileEx)保证数据安全。

拖拽事件拦截

新增 drag-drop 事件拦截支持,宿主进程可控制拖拽行为:

  • Enter 事件:同步回调,返回非空指针拒绝拖拽进入
  • Drop 事件:同步回调,返回非空指针表示已消费(不传递到网页),空指针表示未消费
  • Over / Leave 事件:保持异步通知
  • 无回调注册时保持 return true(兼容现有行为)

问题修复

  • 修复 YAML 中间节点覆盖问题:非映射且非空时返回 -2,不覆盖
  • 修复 YAML 序列化失败时清空文件的问题:失败返回 -1,不写盘
  • 修复 YAML 非原子写入:使用临时文件 + rename,Windows 加重试
  • 修复 YAML 无文件锁:使用 CreateFileW + LockFileEx
  • 修复 YAML CString NUL 截断问题:失败返回 -1

破坏性变更

行为变更:yaml_get / yaml_set 返回值

返回值增加负数错误码:-1 IO 错误 / -2 类型不匹配 / -3 目标已存在 / -4 格式解析失败。此前部分错误场景返回 0,现在统一返回对应负数。

行为变更:yaml_set 自动类型推断

yaml_set 已自动解析数值 / 布尔类型,无需单独的 yaml_set_num / yaml_set_bool。如需强制字符串存储,请使用 yaml_set_str

依赖变更

  • 迁移 serde_yamlserde_yml