feat: 实现模块1 - TUI基础框架 (bubbletea)
This commit is contained in:
65
taolun.md
65
taolun.md
@@ -379,4 +379,67 @@ if oldestStr.Valid {
|
||||
|
||||
**关联文档**:
|
||||
- [changelog.md#0.5.1](changelog.md#051)
|
||||
- [memory.md#本地缓存实现经验](memory.md#本地缓存实现经验)
|
||||
- [memory.md#本地缓存实现经验](memory.md#本地缓存实现经验)
|
||||
|
||||
---
|
||||
|
||||
### [2026-04-06 10:00] 版本 0.6.0 - TUI界面模块拆分计划
|
||||
**原因**: 当前TUI目录(tui/components、tui/theme)已创建但完全为空,需要从零实现终端交互界面
|
||||
**分析**:
|
||||
- 采用分模块逐步实现策略,减少Token消耗和上下文负担
|
||||
- 每次只实现一个模块,完成后再进入下一个
|
||||
- 讨论内容仅保存到taolun.md/changelog.md/memory.md,不新增md文件
|
||||
|
||||
**解决方案 - TUI模块拆分**:
|
||||
|
||||
| 步骤 | 模块 | 内容 | 预计工作量 |
|
||||
|------|------|------|-----------|
|
||||
| 1 | TUI框架搭建 | 选择库(bubbletea)、基础App结构、运行循环 | 小 |
|
||||
| 2 | 输入组件 | 文本输入框、光标、基础编辑 | 中 |
|
||||
| 3 | 翻译显示区 | 结果展示、格式化、滚动 | 中 |
|
||||
| 4 | 状态栏/主题 | 底部状态栏、语言选择、主题配色 | 小 |
|
||||
| 5 | 快捷键系统 | 退出、清空、切换语言等 | 小 |
|
||||
| 6 | 集成翻译 | 对接现有Translator、加载动画 | 中 |
|
||||
|
||||
**技术选型**:
|
||||
- 优先使用 `charmbracelet/bubbletea` (Elm架构、Go生态最流行)
|
||||
- 配合 `charmbracelet/lipgloss` 实现样式和主题
|
||||
- 配合 `charmbracelet/bubbles/textinput` 实现输入框
|
||||
|
||||
**当前状态**: ✅ 模块1已完成,模块2待实现
|
||||
|
||||
**关联文档**:
|
||||
- [changelog.md#0.6.0](changelog.md#060)
|
||||
|
||||
---
|
||||
|
||||
### [2026-04-06 10:30] 版本 0.6.0 - 模块1: TUI框架搭建 (已完成)
|
||||
**原因**: 实现TUI界面的第一步,建立基础框架结构
|
||||
**分析**:
|
||||
- 需要创建基本的App结构和model
|
||||
- 需要支持config和translator的注入
|
||||
- 需要修复main.go中版本检查顺序问题
|
||||
|
||||
**解决方案**:
|
||||
1. 创建 `internal/tui/app.go` 基础文件
|
||||
2. 定义model结构体,包含config和translator字段
|
||||
3. 实现Init/Update/View三个基本方法
|
||||
4. 添加bubbletea、bubbles、lipgloss依赖
|
||||
5. 修复main.go中--version在interactive之前检查
|
||||
|
||||
**技术实现**:
|
||||
```go
|
||||
type model struct {
|
||||
config *config.Config
|
||||
translator *translator.Translator
|
||||
}
|
||||
|
||||
func NewApp(cfg *config.Config, t *translator.Translator) *tea.Program {
|
||||
return tea.NewProgram(model{...})
|
||||
}
|
||||
```
|
||||
|
||||
**下一步**: 实现模块2: 输入组件
|
||||
|
||||
**关联文档**:
|
||||
- [changelog.md#0.6.0](changelog.md#060)
|
||||
Reference in New Issue
Block a user