Skip to content

[VSCode] 質問ダイアログの複数行入力サポート(Shift+Enter)

原文(日本語に翻訳)

[VSCode] 質問ダイアログの「Other」テキスト入力に複数行入力のサポートを追加しました(Shift+Enterで改行)。

原文(英語)

[VSCode] Added multiline input support to the "Other" text input in question dialogs (use Shift+Enter for new lines)

概要

VSCode拡張のClaude Codeにおいて、Claudeからの質問ダイアログで「その他」のテキスト入力欄を選択した際、Shift+Enterで改行して複数行のテキストを入力できるようになりました。これまでは単一行の入力のみでしたが、長い説明やコードスニペットも入力できるようになりました。

基本的な使い方

複数行入力の使用

# VSCode でClaude Codeを使用中
# Claudeから質問が表示される

┌─────────────────────────────────────────┐
│ Which authentication method to use?     │
├─────────────────────────────────────────┤
│ ○ OAuth 2.0                             │
│ ○ JWT                                   │
│ ○ API Key                               │
│ ● Other (please specify)                │
├─────────────────────────────────────────┤
│ [                                    ]  │  ← テキスト入力欄
└─────────────────────────────────────────┘

# 以前: 1行のみ入力可能
"Custom SSO with SAML 2.0"

# 改善後: Shift+Enter で複数行入力
"Custom SSO with SAML 2.0
integrated with our enterprise
Active Directory and requiring
MFA for all users"

# Shift+Enter: 改行
# Enter: 送信

実践例

詳細な要件の入力

プロジェクトの要件を詳しく説明:

# Claudeの質問:
「どのようなプロジェクトを作成しますか?」

選択肢:
- Web アプリケーション
- CLI ツール
- ライブラリ
- Other

# "Other" を選択し、複数行で説明

テキスト入力:

マイクロサービスアーキテクチャのバックエンドAPI

要件:

  • RESTful API (Express.js)
  • PostgreSQL データベース
  • Redis キャッシング
  • JWT 認証
  • Swagger ドキュメント
  • Docker コンテナ化

# Shift+Enterで改行しながら入力
# Enter で送信

コードスニペットの共有

エラーメッセージやコードを直接貼り付け:

# Claudeの質問:
「どのようなエラーが発生していますか?」

選択肢:
- Syntax Error
- Type Error
- Runtime Error
- Other

# "Other" を選択

カスタムバリデーションエラー:

Error: Invalid user input at validateUser (src/validators/user.js:23) at processRequest (src/controllers/user.js:45)

Expected format: { "email": "user@example.com", "age": 25 }


# 複数行のエラーログを貼り付け可能

設計選択の理由を説明

アーキテクチャ決定の背景を記載:

# Claudeの質問:
「どのデータベースを使用しますか?」

選択肢:
- PostgreSQL
- MySQL
- MongoDB
- Other

# "Other" を選択し、詳細な理由を記載

SQLite を使用します。

理由:

  1. アプリケーションが組み込みシステムで動作
  2. 外部DBサーバーが不要(シンプルなデプロイ)
  3. データ量が中規模(数百MB程度)
  4. マルチユーザー同時アクセスは不要
  5. ファイルベースでバックアップが容易

制約:

  • WALモード必須
  • PRAGMA設定の最適化が必要

複数のパッケージやライブラリの指定

依存関係の詳細リストを提供:

# Claudeの質問:
「どの認証ライブラリを使用しますか?」

選択肢:
- Passport.js
- Auth0
- NextAuth
- Other

# "Other" を選択

複数の認証戦略を組み合わせ:

  • passport-local (ローカル認証)
  • passport-google-oauth20 (Google SSO)
  • passport-github2 (GitHub SSO)
  • passport-azure-ad (Azure AD)

設定:

  • セッションはRedisに保存
  • JWTでリフレッシュトークン管理

設定ファイルの内容を提供

既存の設定やJSONを貼り付け:

# Claudeの質問:
「ESLint設定はどうしますか?」

選択肢:
- Standard
- Airbnb
- Prettier統合
- Other

# "Other" を選択し、既存設定を貼り付け

```json
{
  "extends": [
    "eslint:recommended",
    "plugin:@typescript-eslint/recommended"
  ],
  "rules": {
    "no-console": "warn",
    "indent": ["error", 2],
    "quotes": ["error", "single"]
  }
}

### 日本語での詳細な説明
日本語で複数行の説明を入力:

Claudeの質問:

「どのような機能を追加しますか?」

選択肢:

  • ユーザー管理
  • データインポート
  • レポート生成
  • その他

"その他" を選択

カスタムワークフロー機能

概要:
ユーザーがドラッグ&ドロップで
ビジネスプロセスを定義できる
ビジュアルワークフローエディタ。

機能要件:
- ノードベースのフローチャート作成
- 条件分岐とループ処理
- 外部API呼び出し
- メール・Slack通知
- スケジュール実行

## 注意点

- **VSCode専用機能**: この改善はVSCode拡張版のみ。CLI版では従来通りの入力方法です。

- **ショートカットキー**:
  - **Shift+Enter**: 改行を挿入
  - **Enter**: 入力を送信
  - **Esc**: ダイアログをキャンセル

- **入力欄のサイズ**: 複数行入力すると、入力欄が自動的に拡大します(最大10行程度まで)。

- **貼り付けのサポート**: クリップボードから複数行テキストを貼り付けることも可能(Ctrl+V / Cmd+V)。

- **マークダウン対応**: 入力したテキストはマークダウンとして解釈されません。プレーンテキストとして扱われます。

- **文字数制限**: 非常に長いテキスト(数千行)は、パフォーマンス上の理由から制限される場合があります。

- **日本語IME対応**: 日本語入力(IME)も正常に動作します。変換中にShift+Enterで改行できます。

- **アクセシビリティ**: スクリーンリーダーは、複数行入力欄を「multiline textbox」として読み上げます。

- **他の質問タイプ**: この機能は「Other」選択肢のテキスト入力にのみ適用されます。他の質問タイプ(ラジオボタン、チェックボックスなど)には影響しません。

## 関連情報

- [VSCode Extension - Claude Code Docs](https://code.claude.com/docs/en/vscode)
- [AskUserQuestion tool](https://code.claude.com/docs/en/tools#askuserquestion)
- [Terminal Setup - Shift+Enter configuration](https://code.claude.com/docs/en/terminal-config)
- [VSCode Keybindings](https://code.visualstudio.com/docs/getstarted/keybindings)
- [Japanese IME support - v2.1.31](./2.1.31-japanese-ime-zenkaku-space.md)