MooTool

Handy tool set for developers

View on GitHub

MooTool Next Flutter 逐工具功能规格

日期:2026-09-08。参考 next/ Electron 1.1.4 当前源码。
所有条目都是待开发要求;没有任何一项在本文中标记为已实现。
工具入口、布局关系与实际操作优先对齐;Flutter 的现代化视觉按 主指南 执行。

1. 入口、顺序与计数

保留以下 ID 和顺序:26 个入口 = 1 个首页 + 25 个工具。分组顺序为 text、dev、network、encode、daily、system。classic 模式可以隐藏内置分组标题,不能改变实际工具次序。

编号 Tool ID 名称 分组 源码入口(相对 next/src/features/
F00 mootool 首页 home home/HomePage.tsx
F01 quickNote 随手记 text quickNote/QuickNoteTool.tsx
F02 textDiff 文本对比 text diff/TextDiffTool.tsx
F03 reformat 格式化 text reformat/ReformatTool.tsx
F04 json JSON dev json/JsonTool.tsx
F05 java 代码运行 dev runtime/RuntimeTool.tsx
F06 ymlProperties 配置文件转换 dev config/ConfigConvertTool.tsx
F07 protobuf Protobuf dev protobuf/ProtobufTool.tsx
F08 variables 环境变量 dev variables/VariablesTool.tsx
F09 http HTTP 请求 network http/HttpTool.tsx
F10 host Host network host/HostTool.tsx
F11 net 网络/IP network net/NetTool.tsx
F12 uaParse UA 分析 network ua/UaParseTool.tsx
F13 encode 编码解码 encode encode/EncodeTool.tsx
F14 crypto 加解密/随机 encode crypto/CryptoTool.tsx
F15 regex 正则 encode regex/RegexTool.tsx
F16 cron Cron encode cron/CronTool.tsx
F17 qrCode 二维码 encode qrcode/QrCodeTool.tsx
F18 timeConvert 时间转换 daily time/TimeConvertTool.tsx
F19 messageBoard 留言板 daily messageBoard/MessageBoardTool.tsx
F20 translation 翻译 daily translation/TranslationTool.tsx
F21 calculator 计算器 daily calculator/CalculatorTool.tsx
F22 colorBoard 调色板 daily color/ColorBoardTool.tsx
F23 image 图片助手 daily image/ImageTool.tsx
F24 pdf PDF daily pdf/PdfTool.tsx
F25 hardware 系统信息 system hardware/HardwareTool.tsx

当前 Electron 注册表中,mootool/hardware/messageBoard 不声明通用历史;其余入口声明支持历史。通用收藏标志仅为 regex/cron/colorBoard;HTTP 集合、翻译单词本、文档库等属于各自业务实体,不要混成同一种收藏。

2. 所有工具的共同要求

每个工具必须具备适用的空态、加载态、成功态、输入错误、IO/网络错误、取消、无权限或缺少运行环境状态。纯本地同步运算不强行添加假进度条。

切页保留输入、输出、选项、Tab、选区和滚动;多个工具输入不得互相覆盖。有效结果支持选择和复制;涉及文件时使用真实文件,失败时保留输入及上次有效结果并清楚标记。

每个页面实施时都读取对应 *Tools.ts*.test.ts、相关 main service 和 Electron E2E,补充按钮/Tab/选项的细粒度清单。以下规格定义必须覆盖的范围,不代表可跳过源码中未逐字枚举的参数。

图标和间距可以现代化,功能方向、Tab 顺序、主要操作位置及默认含义尽量不变。每一项开发状态按“未开始 / 开发中 / 待验收 / 已验收 / 明确差异”记录在 验收文档

3. 逐项规格

F00 首页

F01 随手记

布局:左文档库,中间编辑/预览,右侧可折叠快速替换;顶部紧凑工具栏,底部文件与保存状态。

快速替换 ID 语义
trim 每行去首尾空白
removeBlankLines 移除空白行
removeTabs 移除 tab
scientificToNormal 科学计数转普通数字
normalToScientific 普通数字转科学计数
thousandsToNormal 移除千分位
normalToThousands 添加千分位
underscoreToCamel 下划线转驼峰
camelToUnderscore 驼峰转下划线
uppercase / lowercase 大小写转换
linesToComma 多行转逗号分隔
linesToSingleQuoted / linesToDoubleQuoted 多行转引号包裹列表
commaToLines / tabsToLines 分隔符转行
clearNewlines 移除换行
deduplicateLines / deduplicateWithCount 去重 / 去重附次数
escape / unescape 字符串转义 / 还原
reverseLines 行序反转
sortAscending / sortDescending 行升序 / 降序

验收重点:列编辑、分栏预览后仍可撤销、双击选词后自动保存不丢选区、连续图片粘贴、附件重命名/移动、5 MiB 文本及冲突保护。

F02 文本对比

F03 格式化

F04 JSON

布局:左 JSON Vault,中主编辑器,右格式/转换/JSONPath 检查器;窄窗口右侧按需覆盖。

主工具栏顺序以 JsonToolbar.tsx 为准:格式化 → 压缩 → 字体 → 换行 → 复制 → 查找 → 导入 → 导出 → 历史 → 更多工具 → 清空。布局空白可为拖动区,但不能吞掉按钮点击或文本选择。

必须覆盖:

  1. 校验、2/4 空格格式化、压缩、实时错误及结构摘要。
  2. 递归 Key 排序、忽略大小写选项、解析前可检测重复 Key;只用 jsonDecode 后 Map 检测不可能找回重复项。
  3. JSON ↔ XML、JSON ↔ JavaBean,类名、嵌套类、数组和类型推断;保留实际方向和结果弹窗行为。
  4. Key/Value 互换、JSON 字符串转义/还原、普通字符串转义/反转义,区分操作语义。
  5. JSONPath 输入、查询结果、可视化树选择、路径/值预览和双击行为。
  6. 查找替换(大小写、全词、正则、计数、前后导航),字体和换行。
  7. 文件导入/导出、操作历史、复制、清空可撤销。
  8. Vault CRUD、文件夹、重命名、复制、移动、拖放、排序、忽略文件、展开状态、当前文件恢复和外部监视。
  9. Git 全流程,包括冲突处理、丢弃、更改操作继续/中止及自动提交。
  10. 大 JSON,输入/格式化/查询失败不会清空正文。

语义要求:

验收样例:含中文/emoji/嵌套数组/重复 Key 的输入,排序及压缩往返,JSONPath 真实筛选,错误行定位,Vault 移动后重启,分离/收回保存同一会话。

F05 代码运行

F06 配置文件转换

F07 Protobuf

F08 环境变量

F09 HTTP 请求

布局:左请求集合;右顶部 Method + URL + 发送/取消;请求编辑在上,响应区在下,均可调整高度。

F10 Host

F11 网络/IP

F12 UA 分析

F13 编码解码

F14 加解密/随机

F15 正则

F16 Cron

F17 二维码

F18 时间转换

F19 留言板

F20 翻译

F21 计算器

F22 调色板

F23 图片助手

F24 PDF

F25 系统信息

4. 应用级功能规格

A01 设置

当前 Electron 设置分类共 11 项,顺序保留:

分类 ID 必须覆盖
general 语言、自动检查/下载更新、启动最大化、关闭策略、托盘
appearance 六种风格、system/light/dark、六种强调色、字体/字号、统一背景
layout 最近显示、紧凑导航、分隔线、隐藏标题、三种导航、自定义组/隐藏工具
editor SQL 方言、JSON/随手记字体和字号、自动换行
network 代理开关/地址/端口/用户名/密码、HTTP/翻译超时
data 实际路径、打开目录、备份/恢复、显式导入、迁移报告
vault JSON/随手记路径、Git remote/用户名/token、自动提交/拉取、忽略规则、展开策略
runtime Java/Groovy/Python/Node 路径、检测和独立参数/目录
tools QR 尺寸/纠错、随机长度、导出目录、默认翻译器和语言
shortcuts 搜索、设置快捷键及完整帮助;编辑器快捷键按平台显示
about Flutter 产品名/版本、更新检查/进度/结果、Release notes、许可证及帮助

Flutter 设置 schema 独立。不能保留有效外观按钮却忽略设置;无效值归一和新 schema 补默认值需测试。跨窗口同步后不打断编辑。

A02 历史、收藏与命令搜索

A03 文件、备份、Git、窗口、更新

按主指南第 7–10 节完整实现。它们不额外计入 25 个工具,但同样属于完整产品范围。仅把各工具页面实现完而没有数据与桌面生命周期闭环,不能标记总体完成。

5. 兼容样本的记录方法

每个跨语言算法 fixture 至少包含:caseId、toolId、源提交/文件、输入、选项、期望输出或期望错误、比较方式、已知差异。样本存入本产品 test/fixtures/,CI 不运行 Electron 获取期望值。

比较方式 适用
精确文本/字节 编解码、摘要、固定对称密文、Protobuf bytes、明确格式化规则
结构比较 JSON/XML/YAML、HTTP 字段等允许可说明的非语义顺序差异
跨实现消费 Crypto 加密/解密/验签、QR 生成/识别、PDF 拆合
不变量与范围 随机值、系统信息、时间、网络响应
人工视觉和交互 输入法、光标、窗口、屏幕权限、DPI、原生菜单

源实现不正确时单独保留 sourceObserved 和 flutterExpected,解释修复原因;不能通过不断改期望值让测试迎合当前错误实现。