CommandCodeAI / CommandCodeAI/command-code

Shift+Enter can't insert a newline

Đang mở Phù hợp với người mới
#841 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Ngôn ngữ chính
Không có dữ liệu ngôn ngữ
Star
4k
Fork
350
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

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

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Tìm lời gọi render của Ink và kiểm tra cách vòng đời của đầu vào terminal được xử lý; issue xác định việc kích hoạt kittyKeyboard và parser isNewlineShortcutKey hiện có là các entry point liên quan. Bật giao thức bàn phím kitty, giữ nguyên hành vi của Ctrl+J và Enter, đồng thời xử lý việc dọn dẹp giao thức khi thoát và khi có signal. Xác minh bằng cmd trong một terminal sử dụng kitty protocol với AAA, Shift+Enter, BBB và Enter, rồi xác nhận rằng Ctrl+J vẫn chèn một dòng mới.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Lĩnh vực
cli
Loại issue
Lỗi
Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
78/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.