Skip to content

feat: 交互模式支持 # 命令#17

Merged
piratf merged 6 commits intomainfrom
feat-interactive-commands
Jan 31, 2026
Merged

feat: 交互模式支持 # 命令#17
piratf merged 6 commits intomainfrom
feat-interactive-commands

Conversation

@piratf
Copy link
Owner

@piratf piratf commented Jan 31, 2026

Summary

  • 在交互模式中添加了快捷命令支持
  • 输入 # 即可查看所有可用命令
  • 修复了英文文档页面的链接错误

新增功能

交互模式快捷命令

现在在使用交互模式时,无需退出即可执行以下常用操作:

  • #help - 显示帮助信息
  • #install - 安装右键菜单
  • #uninstall - 卸载右键菜单
  • #update - 检查更新

只需在交互模式下输入命令即可,例如输入 #install 就会自动安装右键菜单,完成后可以继续添加备注。

查看命令列表

如果忘记有哪些命令,只需输入 # 即可显示完整列表。

问题修复

  • 修复了英文文档首页 "Get Started" 按钮链接到中文页面的问题

Test plan

  • 单元测试通过(35 个测试用例全部通过)
  • 本地验证通过
  • CI/CD 流程通过

主要变更:
- 在交互模式中支持 #help, #install, #uninstall, #update 命令
- 添加 readline tab 补全支持(优雅降级)
- 输入单独的 # 显示可用命令列表
- 更新 help 和交互模式提示信息

技术实现:
- 使用条件导入 readline(Windows 可选 pyreadline3)
- 在 CLI.__init__ 中初始化命令列表
- 添加 _command_completer 方法处理补全逻辑
- 添加 _show_command_list 方法显示命令列表
- 添加 _interactive_help 方法显示交互命令帮助

测试覆盖:
- 命令列表初始化测试
- 命令补全函数测试
- 显示命令列表测试
- 交互命令帮助测试
- 单独 # 输入处理测试
- readline 导入降级测试
修复问题:
- 补全所有交互命令相关字符串的中文翻译
- 改进 pre-commit hook 以正确检测空翻译
- 添加 scripts/check_i18n.py 脚本验证翻译完整性
- 更新测试以支持中英文输出

主要变更:
- locale/zh/LC_MESSAGES/messages.po: 添加缺失的中文翻译
- scripts/check_i18n.py: 新增翻译完整性检查脚本
- .pre-commit-config.yaml: 使用新脚本检查翻译
- tests/unit/test_cli_commands.py: 测试支持双语输出
修改原因:
- 用户使用的是 exe 版本,不应该引导安装 Python 环境
- pyreadline3 约 683 KB,打包进 exe 是合理的

主要变更:
- pyproject.toml: 添加 pyreadline3 到运行时依赖
- remark.spec: 添加 pyreadline3 到 hiddenimports
- remark/cli/commands.py: 简化提示逻辑,移除安装提示
原因:
- pyreadline3 官方声明功能不完整("It is not complete")
- Windows CMD 上 tab 补全实际上不可用
- 用户选择移除此功能

主要变更:
- remark/cli/commands.py: 移除 readline 导入和 completer 代码
- pyproject.toml: 移除 pyreadline3 依赖
- remark.spec: 移除 pyreadline3 hiddenimports
- tests/unit/test_cli_commands.py: 移除 3 个 readline 相关测试

保留功能:
- 交互模式 #help、#install、#uninstall、#update 命令仍然可用
- 输入 # 显示可用命令列表功能仍然可用
@piratf piratf changed the title feat(interactive): 支持交互模式 # 命令和 tab 补全 feat: 交互模式支持 # 命令 Jan 31, 2026
- 修改英文首页 Get Started 链接从 /guide/getting-started 改为 /en/guide/getting-started
- 更新中英文首页版本号到 2.0.7
@piratf piratf merged commit 33630c3 into main Jan 31, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant