Repository navigation
Releases: Myraxion/dion
Releases · Myraxion/dion
Release list
v0.3.2
Dion v0.3.2 新增版本查询,方便确认当前运行的程序版本和排查升级、PATH 或脚本问题。
版本查询
--version与-V等价,版本号取自编译时的包版本。成功时向 stdout 输出一行版本文本,stderr 为空,退出码为 0。- 可搭配
--json/-j、--lang,版本输出始终为同一行文本。 - 与操作命令、操作选项或帮助混用时报
invalid_argument,退出码为 2;未知、重复及无效语言选项继续按现有规则校验。 --后的--version、-V仍作为普通路径或备注正文。- 中英文总览帮助与 README 已同步说明版本查询。
v0.3.1
Dion v0.3.1 调整 JSON 输出,使列表明确表达记录所属目录与条目类型,并为树状查询提供嵌套结构。
JSON 破坏性变更
本版本改变既有 JSON 契约,升级前请调整依赖旧字段、递归名称或扁平树输出的脚本。
- 所有
listJSON 条目新增type(file、directory、orphan),删除extension;顶层新增root_directory,表示查询起始目录的绝对路径(词法处理点组件,不解析链接目标,保留路径拼写及扩展路径前缀);空列表也包含此字段,entries、errors数组及退出码规则不变,未知程序扩展记录仍列出已解析的正文。 - 普通、单栏及递归扁平 JSON 条目包含
type、parent_directory、name、comment。name改为备注文件中的原始记录名称,不再表示完整相对路径;parent_directory表示记录所属目录相对于查询起始目录的路径,使用反斜杠且无尾部分隔符,起始目录为""。 --tree --json改为嵌套树,沿用文本树的节点选择及排序,包含必要的辅助目录且不显示起始目录根节点。目录节点始终包含children,文件和孤立记录不包含;辅助目录使用comment: null,已有空备注使用comment: ""。树节点不含parent_directory。两种列表均不输出程序扩展字段,Everything 查询使用相同契约。get --json将extension改名为program_extension,值仍为none、tc、unknown。旧字段不再输出,依赖它的脚本应更新字段名;原先通过列表检查程序扩展类型的脚本需要对条目调用get --json。
新结构示例:
{"root_directory":"D:\\data","entries":[{"type":"file","parent_directory":"folder","name":"a.txt","comment":"备注正文"}],"errors":[]}{"root_directory":"D:\\data","entries":[{"type":"directory","name":"folder","comment":null,"children":[{"type":"file","name":"a.txt","comment":"备注正文"}]}],"errors":[]}{"name":"a.txt","comment":"备注正文","program_extension":"none"}v0.3.0
Dion v0.3.0 加快递归列表查询,并新增使用 Everything 索引查找递归备注文件的可选方式。
新增与改进
- Everything 索引查询:
list --recursive --everything或list --tree --everything可通过已运行的 Everything 索引发现递归范围内的descript.ion文件;支持双栏、单栏、树和 JSON 输出。默认优先连接1.5a实例,再尝试未命名实例;可用--everything-instance <name>指定命名实例。 - 递归列表提速:普通递归在目录枚举中未发现
descript.ion时不再额外尝试打开该文件。 - 默认跳过常见目录:递归列表默认跳过
$RECYCLE.BIN、System Volume Information、.git、node_modules、.venv、__pycache__、.pytest_cache、.next、.svn、.mypy_cache、.ruff_cache、.tox、.nox和.parcel-cache,避免遍历无关子树。
使用说明
- Everything 查询只覆盖当前索引中的路径,索引排除或尚未收录的备注文件可能遗漏;未访问目录的遍历错误不会报告。要求 Everything 1.4.1 或更高版本运行且数据库已加载。
- Everything 连接或查询失败时会直接报错,不会回退到普通目录扫描。若要按普通目录遍历查询,请移除
--everything;如需包含默认跳过的目录,再加--all。 --everything必须与--recursive或--tree组合。--all(-a)可包含默认跳过的目录;这些目录自身的备注仍会正常列出。- 递归过程中仍不进入子目录中的目录符号链接或 Junction。
v0.2.0
Dion v0.2.0 改善列表查询、终端展示与命令输入,并新增英文和简体中文文案。
新增与改进
- 列表容错:
list遇到坏记录或无法读取的备注文件时,保留有效记录并汇总错误;递归过程中无法访问的子目录会跳过,继续查询其他目录。起始目录无法访问时仍直接失败。 - 命令简写:新增
get的别名view、cat,list的别名ls,remove的别名rm、unset、del;支持-j、-h、-l、-r、-t、-i、-f、-e等短选项。别名与完整命令行为相同,短选项需分开输入。 - 终端着色:列表名称、目录标记和树状连接符显示为青色,备注正文保持原样。默认在支持颜色的终端自动启用;使用
--color auto|always|never控制,自动模式遵循NO_COLOR,JSON 不添加颜色序列。 - 中英文文案:帮助、参数错误、操作错误和列表错误汇总支持英文与简体中文;新增英文 README。用户备注与文件名保持原样。
- Windows 名称比较:名称匹配和重复检测统一使用 Windows 原生、不区分大小写的序数比较;保留记录原拼写,列表继续按目录优先、自然排序展示。
修复
- 修复树状列表中带多行备注的目录与子节点之间垂直连接线中断的问题。
v0.1.0
Dion 首个正式版本:在 Windows 命令行中查看和管理文件、文件夹的备注,与 Total Commander 的 UTF-8 descript.ion 格式互操作。
下载与使用
- 支持 Windows 10/11 x64。
- 下载下方附件中的 dion.exe,无需安装 Rust 或额外运行库。
- 在 PowerShell 中运行
.\dion.exe --help查看中文帮助;将程序所在目录加入 PATH 后,可直接使用dion。
主要功能
- 查看与管理备注:
get查看,set新增或修改,remove删除文件或文件夹自身的备注。 - 多种列表视图:
list默认双栏展示,目录优先、名称自然排序;--long显示详细正文,--recursive递归查询,--tree展示备注树。 - 中文与多行正文:支持中文、Emoji、含空格的名称和多行备注,保留正文缩进、首尾空白及空行。
- 灵活输入:通过命令参数、UTF-8 文本文件、标准输入或
set --edit外部编辑器填写备注,默认编辑器为 Windows 记事本。 - 保留已有内容:修改目标记录时保留其他记录的原始字节与顺序;设置相同正文时不写入文件。
- 脚本集成:支持
--json结构化输出和稳定退出码。
使用范围
- 备注文件须为带 BOM 的 UTF-8
descript.ion;不自动转换其他编码。 - 适用于本地文件系统和单写者使用,网络共享不作兼容性承诺。
- 本版本遇到备注文件编码、格式错误或目录访问失败时,列表查询会报错,不输出部分结果。
- 文件复制、移动或重命名后的备注同步不在本版本功能范围内。
采用 MIT / Apache-2.0 双许可证。