Skip to content

feat: Rubyタブにツールバーを追加(スプライト切り替え、Undo/Redo) #91

@takaokouji

Description

@takaokouji

概要

Rubyタブにツールバーを追加し、スプライト切り替えとエディタのUndo/Redo操作を提供する。

目的

  • スプライト間の移動を簡単にする(←/→ボタン、ナビゲーションコントロール)
  • エディタのUndo/Redo操作をボタンで実行できるようにする
  • 将来の機能拡張(カーソル行実行など)のための基盤を作る

実装内容

ツールバー構成

+-----+---------+-------+------+
|Code | Costume | Sound | Ruby |
+-----------------------------+
| ← → | ナビゲーション | ⟲ ⟳  |
+-----------------------------+
|                              |
| Monaco Editor                |
|                              |
+------------------------------+

左から右へ以下の要素を配置:

  1. スプライトナビゲーション

    • ボタン: 左のスプライトに移動(最左端の場合はステージを選択)
    • ボタン: 右のスプライトに移動(最右端の場合はステージを選択)
    • 境界でのボタン無効化
  2. ナビゲーションコントロール (中央)

    • 現在の編集対象(スプライト名またはステージ)を表示
    • インクリメンタルサーチでスプライト名を入力可能
  3. エディタ操作 (右側)

    • (Undo) ボタン: editor.trigger('keyboard', 'undo', null)
    • (Redo) ボタン: editor.trigger('keyboard', 'redo', null)

実装手順

Phase 1: ツールバーの基本実装

  • RubyToolbarコンポーネントを作成
  • スタイルを作成
  • RubyTabコンポーネントに統合

Phase 2: スプライト切り替えの実装

  • スプライトリストの取得と順序管理
  • 前/次のスプライトに移動する機能
  • ナビゲーションコントロールでのスプライト検索

Phase 3: Undo/Redoの実装

  • Monaco EditorのUndo/Redoコマンドをトリガー
  • ボタンの状態管理(有効/無効)

Phase 4: 国際化とテスト

  • i18nメッセージの追加(日本語、英語)
  • 動作確認とUI/UXテスト

詳細設計

詳細な技術設計は以下のドキュメントを参照:

完了条件

  • ←/→ボタンでスプライトが切り替わる
  • ナビゲーションコントロールでスプライト検索ができる
  • Undo/Redoボタンが動作する
  • 国際化メッセージが追加されている
  • PRが作成され、レビュー可能な状態になっている

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions