CommandCodeAI / CommandCodeAI/command-code

Shift+Enter can't insert a newline

オープン 初心者向け
#841 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
言語のデータがありません
スター
4k
フォーク
350
PR マージ指標
30日以内にマージされた PR はありません

説明

Summary

Shift+Enter submits the prompt instead of inserting a newline, so multi-line prompts are impossible without knowing the undocumented Ctrl+J fallback. The input parser already accepts the enhanced Shift+Enter sequences; the app never activates the kitty keyboard protocol, so capable terminals keep sending a bare CR.

Expected Behavior

Enter submits, Shift+Enter inserts a newline — as the help panel states: "Shift+Enter / Alt+Enter → Insert a newline".  tui.input.newLine  already defaults to ["shift+enter","ctrl+j"] .

Actual Behavior

Shift+Enter behaves exactly like Enter: the prompt submits immediately. Only Ctrl+J inserts a newline.

Cause: the build bundles  ink  7.1.0 but never sets  kittyKeyboard , and contains no protocol push ( \x1b[>1u ). The parser does accept the encoded sequence ( isNewlineShortcutKey  handles  \x1b[13;2u ,  \x1b[27;2;13~  and peers), so only the activation is missing.

Steps to reproduce the issue
  1. Run  cmd  in a kitty-protocol terminal (WezTerm here; it needs  enable_kitty_keyboard = true ).
  2. Type  AAA , press Shift+Enter, type  BBB , press Enter.
  3. Observed: submits on Shift+Enter, only  AAA  is sent. Expected: two lines.

Pushing  \x1b[>1u  around the binary from a zsh wrapper makes Shift+Enter send  \x1b[13;2u  and work correctly, which confirms the terminal and parser are fine.

Command Code Version

1.53.1

Operating System

Arch Linux 7.2.4-arch1-2 / Hyprland 0.56.2 (Wayland)

Terminal/IDE

WezTerm 20260716-195552-76b606ec

Shell

zsh 5.9.2

Session file (optional)

No response

Fix prompt (optional)

Enable the kitty keyboard protocol in the Ink render call — Ink supports it since 6.7.0:

render(<App />, { kittyKeyboard: { mode: 'enabled' } });

Use  'enabled' , not  'auto'  (auto-detection fails under tmux). Pop with  \x1b[<u  on exit and in signal handlers. The parser already handles the sequences, so no parser change is needed. Keep Ctrl+J as the universal fallback and document that WezTerm needs  enable_kitty_keyboard = true .

Check:  cmd  →  AAA  → Shift+Enter →  BBB  → Enter must show two lines; Ctrl+J must still insert a newline and Enter must still submit.

Additional context

No response

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

Ink の render 呼び出しを特定し、ターミナル入力のライフサイクルがどのように処理されているかを調べます。issue では、kittyKeyboard の有効化と既存の isNewlineShortcutKey parser が関連するエントリーポイントとして示されています。kitty keyboard protocol を有効にし、Ctrl+J と Enter の動作を維持し、終了時およびシグナル発生時の protocol cleanup を処理します。kitty protocol 対応のターミナルで cmd を使い、AAA、Shift+Enter、BBB、Enter を入力して検証し、Ctrl+J でも引き続き改行が挿入されることを確認します。

索引モデルが issue の本文から書いたものです。

評価

領域
cli
issue の種類
バグ
難易度
2/5
見積もり時間
1〜3時間
活発さ
活発
明瞭さ
明確に書かれている
初心者へのやさしさ
78/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。