Skip to content

共通の初期化処理の共通化とCLIコマンドの出力の抽象化#227

Open
mayo031042 wants to merge 6 commits intoDeNA:masterfrom
mayo031042:update/command-output
Open

共通の初期化処理の共通化とCLIコマンドの出力の抽象化#227
mayo031042 wants to merge 6 commits intoDeNA:masterfrom
mayo031042:update/command-output

Conversation

@mayo031042
Copy link

@mayo031042 mayo031042 commented Feb 3, 2026

GUI/CLIで共通の初期化処理をAppInitializerにまとめました
CLIコマンドの出力を抽象化し、テストの改善を行いました

  • GUI機能側で散在している各コンポーネントの初期化処理をまとめました
  • コマンドの実行結果を文字列として返す
    • テスト時にコマンドの結果を直接確認できるようになりました
      • logコマンドについては別で対応予定
    • 内部の別の機能からコマンドを実行し、結果を受け取るなどの連携が可能になりました
      • 複数コマンドの実行結果をバッファへ蓄積、一括取得できるため、連携が容易になります
  • 出力に色付け(ANSI)が適用されるようになりました
    • 標準出力へ表示する際のみ適用されます

CLI出力の抽象化のための基盤コンポーネントを追加:
- OutputStyle: 色付けスタイルインターフェース
- AnsiStyle: ANSIエスケープシーケンス実装(標準出力用)
- PlainStyle: 空文字列実装(バッファ出力用)
- CommandOutput: 出力抽象化インターフェース
- ConsoleOutput: 標準出力実装
- BufferedOutput: バッファ蓄積実装(テスト・内部連携用)
- CommandContextにCommandOutput型のoutputフィールドを追加
- println/print便利メソッドとstyleショートカットを追加
- Commandインターフェースのシグネチャにctxパラメータを追加
CLIコマンド実行時の出力をCommandOutput経由に変更:
- CLIModeHandler: handleCommandにctx引数追加、出力をctx経由に
- EncodeModeHandler/DecodeModeHandler: extensionCommandにctx引数追加
- GulpTerminal: 出力をctx経由に
- LogCommand/SourceCommand: シグネチャ更新
- TerminalSource/FallBackTerminalSource: 出力をctx経由に
新規テスト:
- BufferedOutputTest: バッファ出力のユニットテスト
- OutputStyleTest: AnsiStyle/PlainStyleのテスト
- CommandOutputIntegrationTest: コマンド出力の統合テスト

既存テスト改善:
- SourceCommandTest: BufferedOutput使用に更新
- TerminalCoroutinesTest: BufferedOutput使用に更新
引数をそのまま出力するechoコマンドを実装
BufferedOutputを使用した内部連携のデモとして
標準出力を汚さずに結果を取得できることを検証
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.

2 participants