Add interactive menu mode with ASCII art header
还没有人认领这个 Issue。
评估
调研方向
首先调研 sqlcmd 现有的命令结构和入口点,然后了解 Azure CLI 和 GitHub CLI 中交互模式的工作方式。该 issue 要求使用 TUI 库、设计菜单结构、提供引导式连接和查询流程、处理跨平台键盘操作、支持非交互式 fallback、编写测试和文档;要完成这项工作,需要解决这些设计选择并完成列出的任务。
由索引模型根据 Issue 内容生成。
描述
Summary
Add an interactive menu mode for sqlcmd with a visually appealing ASCII art header, similar to the Azure CLI's interactive experience.
Motivation
An interactive menu mode would:
- Improve discoverability: Help new users explore sqlcmd's features
- Reduce friction: Guide users through common tasks without memorizing flags
- Visual appeal: A branded ASCII art header creates a professional, memorable experience
- Consistency: Align with Azure CLI and other modern CLI tools that have interactive modes
Proposed Features
ASCII Art Header
_____ ____ __ ________ _______
/ ___// __ \ / / / ____/ |/ / __ \
\__ \/ / / / / / / / / /|_/ / / / /
___/ / /_/ / / /___/ /___/ / / / /_/ /
/____/\___\_\/_____/\____/_/ /_/_____/
Microsoft SQL Server Command Line Tool
(or similar branded design)
Interactive Menu Options
- Connect: Guided connection setup (server, auth method, database)
- Query: Enter and execute queries interactively
- Config: Manage contexts and endpoints (
sqlcmd configcommands) - Containers: Start/stop/manage SQL containers
- Help: Browse commands and examples
- Recent: Show recent connections/queries
Navigation
- Arrow keys / number selection
- Fuzzy search for commands
- Breadcrumb navigation
qorEscto exit
Implementation Considerations
- Go TUI libraries: bubbletea, tview, promptui
- ASCII art generator or hand-crafted design
- Keyboard handling across platforms (Windows, Linux, macOS)
- Fallback for non-interactive terminals
- Integration with existing command structure
Inspiration
- Azure CLI interactive mode (
az interactive) - GitHub CLI (
gh) - lazygit, lazydocker
- k9s (Kubernetes TUI)
Tasks
- Design ASCII art header/logo
- Choose TUI library
- Design menu structure and navigation
- Implement main menu
- Add guided connection wizard
- Add interactive query mode
- Test on Windows, Linux, macOS terminals
- Document the interactive mode
- 主要语言
- Go
- 星标
- 601
- 派生
- 91
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 提供 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 没有贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
microsoft/go-sqlcmd 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 78/100
-
难度 2/5 1-3 小时 新手友好度 72/100
-
难度 3/5 1-2 天 新手友好度 55/100
-
难度 3/5 1-2 天 新手友好度 65/100
-
-r discards the "Msg N, Level N, State N" error header — errors on stderr lose message number and line info可能重新可做 关联的 PR 已关闭且未合并。 未关闭
难度 3/5 1-2 天 新手友好度 76/100
查看 microsoft/go-sqlcmd 的全部 Issue
相似的 Issue
-
bug triage
难度 2/5 1-3 小时 新手友好度 62/100
FairwindsOps/nova#484 ·
-
难度 2/5 1-3 小时 新手友好度 68/100
维护者通常 1 天内回复
-
automated-analysis code-quality cookie
难度 2/5 1-3 小时 新手友好度 66/100
维护者通常 1 天内回复
-
[otelcol] print-config help text still requires the removed otelcol.printInitialConfig feature gate可能已有人在做 @girishkvs 今天认领。 未关闭
难度 1/5 1 小时以内 新手友好度 88/100
open-telemetry/opentelemetry-collector#16143 · 1 条评论 ·
维护者通常 1 天内回复
-
bug good first issue load-balancing
难度 2/5 1-3 小时 新手友好度 82/100
ktrubilo9/edge-proxy#53 ·