Skip to content

feat: リスト選択モードを改善 - #26

Merged
karimiku merged 2 commits into
mainfrom
feat/list-selection-mode
Jan 16, 2026
Merged

karimiku merged 2 commits into
mainfrom
feat/list-selection-mode

Conversation

@karimiku

Copy link
Copy Markdown
Owner

概要

インタラクティブモードでのリスト表示を改善し、より洗練された選択UIを実装しました。

関連Issue

Closes #12

変更内容

internal/ui/models.go の改善

  • タスクリストの番号付き表示
    • 1から始まる番号を表示
    • fmt.Sprintf で整形
  • 要約表示の統合
    • render.ExtractSummary を使用
    • Markdownヘッダー除去、長文切り詰めを自動適用
  • ターミナル幅に応じた動的調整
    • 要約長: 最小40文字、最大80文字
    • 番号と余白(10文字)を考慮
    • 区切り線もターミナル幅に合わせる
  • カーソル記号の改善
    • > → ▶ に変更(視覚的に明確)
  • コードの最適化
    • 未使用の min 関数を削除

改善点

Before

📝 Todo List

> 1 # データベース最適化

## 背景
検索クエリが遅い(3秒以上)...
  2 ソフトウェア工学課題

After

📝 Todo List

▶ 1 データベース最適化
  2 ソフトウェア工学課題
  3 【保留】カテゴリ名に対応するMaterial Iconを動的に設定する実装

機能

番号付き表示

  • 1から始まる番号
  • 選択中は ▶ 記号

要約表示

  • Markdownヘッダー記号を自動除去
  • ターミナル幅に応じて最適な長さに調整
  • 長文は … で省略

レスポンシブ対応

  • ターミナルサイズ変更に追従
  • 区切り線も動的に調整

使用例

# インタラクティブモードを起動
todo list -d

# 操作方法
# j/k: 上下移動
# Enter: 詳細表示
# q: 終了

テスト方法

# ユニットテスト
go test ./...

# ビルド
go build -o todo ./cmd/todo

# 動作確認
./todo list -d
# - 番号が1から表示されるか
# - 要約表示が適用されているか
# - j/k で移動できるか
# - ▶ 記号が表示されるか
# - ターミナルサイズを変更しても正しく表示されるか

受け入れ基準

  • タスクリストが番号付きで表示される(1から始まる)
  • j/k キーで上下に移動できる
  • 選択中のタスクが視覚的にわかる(▶記号)
  • 要約表示が適用される
  • q キーで終了できる
  • ターミナルサイズに応じて調整される

チェックリスト

  • テストを追加・更新した
  • ドキュメントを更新した(必要な場合)
  • ローカルでテストが通ることを確認した
  • コードフォーマットを確認した(go fmt)
  • リントエラーがないことを確認した

インタラクティブモードでのリスト表示を改善し、より洗練された選択UIを実装しました。

実装内容:
- タスクリストの番号付き表示(1から始まる)
- 要約表示の統合(render.ExtractSummary を使用)
- ターミナル幅に応じた動的な要約長調整
  - 最小40文字、最大80文字
  - 番号と余白を考慮
- カーソル記号を ▶ に変更(視覚的に明確)
- 区切り線をターミナル幅に合わせて動的に調整
- コードの最適化(未使用のmin関数を削除)

改善点:
- タスク番号が明確に表示される
- 長文タスクは要約表示で見やすい
- ターミナルサイズに応じて最適化
- 選択中の項目が一目でわかる

使用例:
  todo list -d
  # - j/k で上下移動
  # - ▶ 1 タスク内容...(選択中)
  #   2 タスク内容...
  #   3 タスク内容...

受け入れ基準:
✅ タスクリストが番号付きで表示される(1から始まる)
✅ j/k キーで上下に移動できる
✅ 選択中のタスクが視覚的にわかる(▶記号)
✅ 要約表示が適用される
✅ q キーで終了できる
✅ ターミナルサイズに応じて調整される

Closes #12
@karimiku
karimiku merged commit b69518a into main Jan 16, 2026
2 checks passed
@karimiku
karimiku deleted the feat/list-selection-mode branch January 16, 2026 01:33
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.

[v2] リスト選択モードの実装

1 participant