拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Enquirer Date Prompt 键位与行为规范:面向日期输入的 Prompt 类型设计指南

Enquirer Date Prompt 键位与行为规范:面向日期输入的 Prompt 类型设计指南 开发工具【免费下载链接】enquirerStylish, intuitive and user-friendly prompts. Used by eslint, webpack, yarn, pm2, pnpm, RedwoodJS, FactorJS, salesforce, Cypress, Google Lighthouse, Generate, tencent cloudbase, lint-staged, gluegun, hygen, hardhat, AWS Amplify, GitHub Actions Toolkit, airbnb/nimbus, and more! Please follow Enquirers author: https://github.com/jonschlinkert项目地址https://gitcode.com/gh_mirrors/en/enquirer点击查看免费下载导读本文围绕 Enquirer 仓库中 Date Prompt 类型规范文档 展开系统梳理这一即将推出的日期输入型 Prompt 的完整键盘交互模型——从光标移动、数字位增减与跨字段进位到提交、取消、重置与状态符号显示。读完本文你将清楚掌握 Date Prompt 的设计意图与键位约定并能将其与 Enquirer 既有的 StringPrompt、NumberPrompt 等类型类的通用键位体系对照使用。Date Prompt 在 Enquirer 中的定位在 Enquirer 的类型体系中低层starter类型类用于简化任何用途的 Prompt 创建其中与日期相关的就是DatePrompt——官方类型总览将其描述为create prompts that take and return date-related values创建接收并返回日期相关值的 Prompt。该条目在文档中以删除线形式列出~~DatePrompt~~表明其仍处于规划状态README.md 与 docs/prompts.md 的 Prompt 类型清单中也均标注为DatePrompt (Coming Soon!)。从源码结构可以推断该类型尚未落地实现lib/types/index.js 当前仅导出ArrayPrompt、AuthPrompt、BooleanPrompt、NumberPrompt、StringPrompt五个类型类lib/types/目录下没有date.js。因此date.md 这份文档实质上是 DatePrompt 的行为与键位设计规范本文即以此规范为准逐条展开。光标移动逐位定位日期字段与普通文本输入不同Date Prompt 需要把光标定位到日期串中的某个数字位上进行局部编辑。规范规定了如下移动方式操作键位效果左移一格Left Arrow←光标向左移动右移一格Right Arrow→光标向右移动按词左移Alt (Option)B光标向左移动词为单位按词右移Alt (Option)F光标向右移动词为单位右移等价 TabTab/CtrlI光标向右移动移到开头CtrlA光标跳到日期串起始位置移到结尾CtrlE光标跳到日期串末尾其中Alt/Option B与Alt/Option F沿用了终端世界按词移动backward/forward word的经典约定Ctrl A / Ctrl E对应 support/keypresses.md 中列出的通用编辑键位Move the cursor to the first character in user input / Move the cursor to the end of the line。这些组合在 Enquirer 支持用户输入的各类型 Prompt 中是共通的可参见 docs/key-bindings.md 的 Move cursor 一节。数字位增减与跨字段进位逻辑Date Prompt 最核心的交互特色是用Up Arrow/Down Arrow改变当前光标所在数字位的值并且当某个字段达到边界时会自动向更高一级字段进位。规范给出了四条具体的进位示例分钟 → 小时在6:59上递增分钟分钟溢出后小时位自动加一得到7:00小时 → 日日期在23:00上递增小时小时溢出后**日/日期随之递增**跨天日 → 月在31 Jan上递增天数天数溢出后月份加一月 → 年在Dec上递增月份月份溢出后改为年份递增跨年。这条链路分钟→小时→日→月→年形成了完整的自底向上进位模型用户无需关心各字段的合法取值范围——上/下键的递增递减会自动遵守日历约束并平滑跨位。这也解释了为什么该 Prompt 适合按位编辑而非自由文本输入每一位都是一个独立、可寻址、可增减的数值单元。提交、取消、重置与终止 REPLDate Prompt 沿用了 Enquirer 面向输入类 Prompt 的生命周期键位约定并针对 REPL 场景补充了停止键键位行为CtrlJ/Return回车提交当前日期值Prompt 结束CtrlC/Escape取消PromptCtrlG重置Prompt 至初始状态CtrlD停止 REPL终止运行中的 Read-Eval-Print Loop其中Ctrl C取消与Ctrl G重置是 docs/key-bindings.md 中定义的所有Prompt 通用键位Cancel the prompt. / Reset the prompt to its initial state.Ctrl D用于停止 REPLCtrl J作为回车提交的等价键则是终端行编辑中的常见惯例见 support/keypresses.md 的通用命令表。直接键入数字修改当前位除方向键外Date Prompt 还允许直接键入数字来改写光标所在的数字位其规则包含三个要点输入延迟重置停止输入 1 秒后本次键入的输入被重置位数齐全后应用当所有数字位都键入完成后输入才会被应用为当前位的值应用后光标右移输入被应用之后光标自动移动到右侧下一位。也就是说该机制把数字位抽象为固定宽度的字段用户连续键入以填满该位完成后自动推进到下一个位继续编辑。1 秒无输入则清除当前缓冲避免残留在编辑中途的半截数值。这套填位式输入 自动进位的设计与上/下键的递增递减共同构成了双模编辑方式。提交前后与取消时的状态符号规范还明确了 Date Prompt 在三个关键时点的状态反馈时机显示符号提交前?问号表示等待输入提交后✓对勾表示成功取消后✗叉号表示中止这符合 Enquirer 各 Prompt 通用的前缀符号随状态切换的渲染模式输入过程中以问号提示待作答提交成功切换为对勾取消则显示叉号。可以推断这些符号的最终呈现会复用仓库中的 lib/symbols.js 符号表与 lib/theme.js 主题系统与其他 Prompt 保持一致的可主题化外观。与其他 Prompt 的键位对照将 Date Prompt 的规范与仓库中通用的键位参考对照可以更清晰地理解其设计取舍通用取消/重置Ctrl C取消、Ctrl G重置与所有 Prompt 一致见 docs/key-bindings.md光标移动Left/Right Arrow、Ctrl A、Ctrl E与 support/keypresses.md 的 Move Cursor 一节一致说明 Date Prompt 复用输入类 Prompt 的编辑基础设施特色能力上/下键按位增减、数字填位式直输、以及跨字段进位是 Date Prompt 独有的交互也是本规范最值得关注的部分。小结尽管 DatePrompt 在 README.md 中仍标记为 Coming Soon!且 lib/types/index.js 尚无对应实现但 date.md 这份规范已经完整定义了该类型的设计蓝图按位寻址的光标移动、上/下键增减与分钟→小时→日→月→年的进位链条、数字键直输的填位缓冲、以及提交/取消/重置三态的生命周期与符号反馈。对于希望预研或自行实现日期输入型 Prompt 的开发者这套键位与行为约定本身就是一份可直接参照的交互规格。赞分享开发工具【免费下载链接】enquirerStylish, intuitive and user-friendly prompts. Used by eslint, webpack, yarn, pm2, pnpm, RedwoodJS, FactorJS, salesforce, Cypress, Google Lighthouse, Generate, tencent cloudbase, lint-staged, gluegun, hygen, hardhat, AWS Amplify, GitHub Actions Toolkit, airbnb/nimbus, and more! Please follow Enquirers author: https://github.com/jonschlinkert项目地址https://gitcode.com/gh_mirrors/en/enquirer点击查看免费下载相关推荐深入 Enquirer 自定义 Prompt 开发从 Prompt 基类到类型注册的完整实战指南深入 Enquirer 自定义 Prompt 开发从 Prompt 基类到类型注册的完整实战指南 Enquirer 2.0 引入了prompt 类型typ开发工具Enquirer List Prompt 实战指南从 prompt-list 到内置 List 的列表输入完整方案Enquirer List Prompt 实战指南从 prompt list 到内置 List 的列表输入完整方案 导读 本文聚焦 Enquirer 项目中的开发工具Enquirer核心架构解析Prompt类设计与状态管理机制Enquirer核心架构解析Prompt类设计与状态管理机制 架构概览 Enquirer作为Node.js生态中广泛使用的交互式命令行提示库其核心架构围绕开发工具上一篇终极指南如何使用tview库在终端中开发炫酷的文本游戏下一篇Binwalk质量保证终极指南如何实现95%代码覆盖率与测试完整性创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表