Skip to content

Commit 88aecf8

Browse files
authored
Add jkconfig tui (drivercraft#12)
* 123 * feat(AppData): 重构初始化逻辑,支持不同配置文件格式并添加备份功能 * feat(Menu, OneOf, ElementType): 添加通过字段路径获取元素的功能,优化获取逻辑 * test(MenuRoot): 添加边界条件测试用例以验证 get_mut_by_key 方法 * test(menu_root): 重构 get_mut_by_key 测试用例,增加有效路径和边界条件验证 * refactor(Menu, OneOf, ElementType): 移除不必要的 get_by_key 方法,优化代码结构 * feat(AppData, MenuRoot): 添加 AppData 结构体,重构 MenuRoot 以支持新的元素类型,优化菜单导航和保存逻辑 * refactor(menu): 优化菜单视图的布局和项格式化逻辑,增强用户交互体验 * feat(editors): 添加多个编辑器功能,包括布尔值、枚举、整数、数字和字符串编辑器 * feat(refresh): 添加刷新当前菜单视图功能,确保菜单显示最新值 refactor(AppData): 修改 current_key 类型为 Vec<String>,优化路径管理 feat(editors): 在各编辑器中集成刷新菜单功能,确保用户界面实时更新 * feat(menu): 添加路径显示功能,优化菜单导航和返回逻辑 * feat(menu): 添加字段提取功能,优化菜单视图的选择项处理逻辑 * update * feat(dependencies): 添加 env_logger 依赖以支持日志记录功能 feat(menu): 更新菜单项处理逻辑,增强更新功能的可追踪性 feat(oneof): 优化 OneOf 结构的更新逻辑,支持结构名称匹配 feat(schema): 更新 schema 处理逻辑,支持枚举类型的处理 fix(refresh): 修复刷新功能中的选择位置恢复逻辑 test(schema): 添加对菜单更新和枚举处理的单元测试 * feat(oneof): 添加变体显示功能,优化 OneOf 选择对话框的显示逻辑 * feat(menu): 优化菜单进入逻辑,更新路径处理方式 * feat(enum): 移除未使用的代码,优化枚举选择对话框的按钮逻辑 feat(oneof): 添加键盘事件处理,优化 OneOf 选择对话框的确认逻辑 fix(menu): 更新格式化项目标签,使用结构名称替代标题 * update * feat(app): 添加 select_field 字段并优化菜单选择逻辑,移除无用的布尔值编辑器 * feat(menu): 添加日志记录以跟踪菜单和 OneOf 的字段路径获取,优化编辑处理逻辑 * update * feat(menu): 优化菜单选择刷新逻辑,支持 OneOf 类型的菜单处理 * feat(menu): 更新 OneOf 选择逻辑,添加 Tab 键切换支持并记录选择项 * feat(enum): 修改枚举选择对话框,移除多余参数并优化事件处理逻辑 feat(app): 更新保存逻辑,简化代码并确保配置文件正确处理 feat(menu): 调整菜单选择逻辑,优化枚举选择对话框的调用 * feat(menu): 更新菜单选择逻辑,确保在非必需项下切换选择状态 * teui * feat(icon): 添加 ItemDisplay 特征以支持元素图标和值的格式化显示 * feat(menu): 优化菜单选择逻辑,支持动态名称和状态切换 * feat(menu): 简化菜单事件处理逻辑,移除多余参数并添加重置功能 * feat(menu): 添加清除功能以重置选定项的值 * update * feat(debug): 添加调试选项以打印菜单结构和保存值的详细信息 feat(menu): 处理子元素为 None 的情况以避免错误 feat(icon): 修改图标返回类型为 String 并优化格式化输出 test(schema): 添加 AppData 结构的 JSON Schema 测试 * update * feat(tests): 优化错误处理,使用 try_init 初始化 env_logger 并打印类型不匹配错误信息 * feat(array): 添加 ArrayItem 结构体及相关功能,支持数组类型的处理和编辑 * feat(menu): 将子元素类型从 HashMap 更改为 Vec,优化菜单结构访问方式 * refactor(menu): 优化获取子元素的方法,使用迭代器替代循环 refactor(config): 简化条件判断,合并 if 语句 refactor(compile): 简化条件判断,合并 if 语句 refactor(qemu): 简化条件判断,直接解引用 refactor(uboot): 优化条件判断,合并 if 语句 * feat(ui): 增强数组编辑器和菜单视图的用户界面,添加样式和帮助信息 * update * feat(menu): 优化菜单视图布局,添加帮助信息显示,支持帮助对话框
1 parent d77cac2 commit 88aecf8

30 files changed

+3183
-313
lines changed

Cargo.lock

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

jkconfig/Cargo.toml

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,21 @@ authors = ["周睿 <[email protected]>"]
33
categories = ["command-line-interface", "config"]
44
description = "A Cursive-based TUI component library for JSON Schema configuration"
55
edition = "2024"
6-
keywords = ["tui", "config", "json-schema", "terminal", "cursive"]
6+
keywords = ["tui", "config", "json-schema", "terminal"]
77
license = "MIT OR Apache-2.0"
88
name = "jkconfig"
99
repository = "https://github.com/ZR233/ostool"
10-
version = "0.1.0"
11-
12-
# [[bin]]
13-
# name = "jkconfig"
14-
# path = "src/main.rs"
10+
version = "0.1.1"
1511

1612
[dependencies]
1713
# Cursive TUI framework
18-
cursive = { version = "0.21", features = ["crossterm-backend"] }
14+
cursive = {version = "0.21", features = ["crossterm-backend"]}
1915

2016
# Data processing
2117
anyhow = "1.0"
22-
serde = { version = "1.0", features = ["derive"] }
18+
clap = {version = "4.0", features = ["derive"]}
19+
serde = {version = "1.0", features = ["derive"]}
2320
serde_json = "1.0"
24-
clap = { version = "4.0", features = ["derive"] }
2521

2622
toml = "0.9"
2723

@@ -32,7 +28,8 @@ thiserror = "2.0"
3228
log = "0.4"
3329

3430
[dev-dependencies]
31+
env_logger = "0.11"
32+
schemars = {version = "1.0.4", features = ["derive"]}
3533
serde = {version = "1.0", features = ["derive"]}
3634
tokio-test = "0.4"
3735
toml = "0.9"
38-
schemars = {version = "1.0.4", features = ["derive"]}

0 commit comments

Comments
 (0)