Skip to content

input: preserve CRLF cursor boundaries and document shortcuts - #2986

Merged
huacnlee merged 1 commit into
longbridge:mainfrom
kossoy:fix/crlf-cursor-boundaries
Sep 7, 2026
Merged

input: preserve CRLF cursor boundaries and document shortcuts#2986
huacnlee merged 1 commit into
longbridge:mainfrom
kossoy:fix/crlf-cursor-boundaries

Conversation

@kossoy

@kossoy kossoy commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

End can place a text-input cursor between CR and LF; subsequent typing splits the newline. Ctrl+Home/End also lacked non-macOS document bindings.

Clip cursor and selection movement outside CRLF pairs, including the new multi-cursor movement/selection paths. Left/Right cross CRLF as one newline; a standalone CR remains an ordinary character. The rope and byte/UTF-16 APIs are unchanged. Add standard document navigation/selection bindings and a focused regression.

Validation on this branch (43c733d), adapted to the multi-cursor implementation in cbdf5ba:

  • Linux and Windows full workspace test jobs pass; the Linux log confirms textarea_cursor_treats_crlf_as_one_newline passes among 838 base tests.
  • macOS lint, workspace tests and component doc-test step pass.
  • GPUI Shell Core, Component Shell, all three Standard Runtime jobs and documentation build pass.
  • Changed Rust files pass rustfmt checking locally.

The pinned-version counterpart additionally passed native GPUI key-dispatch tests for LF/BOM/CRLF/mixed input, exact source-write payloads and actual muninn Linux Ctrl+End typing/save plus Ctrl+Home/End/Right/Left save checks in Tessera. Canonical BOM and all eight original CRLF pairs were retained.

CI run

@kossoy
kossoy marked this pull request as ready for review September 6, 2026 12:30
@huacnlee
huacnlee merged commit d88fc05 into longbridge:main Sep 7, 2026
9 checks passed
@huacnlee

huacnlee commented Sep 7, 2026

Copy link
Copy Markdown
Member

Thanks

feigeCode pushed a commit to feigeCode/gpui-component that referenced this pull request Sep 7, 2026
…idge#2986)

End can place a text-input cursor between CR and LF; subsequent typing
splits the newline. Ctrl+Home/End also lacked non-macOS document
bindings.

Clip cursor and selection movement outside CRLF pairs, including the new
multi-cursor movement/selection paths. Left/Right cross CRLF as one
newline; a standalone CR remains an ordinary character. The rope and
byte/UTF-16 APIs are unchanged. Add standard document
navigation/selection bindings and a focused regression.

Validation on this branch (43c733d), adapted to the multi-cursor
implementation in cbdf5ba:

- Linux and Windows full workspace test jobs pass; the Linux log
confirms `textarea_cursor_treats_crlf_as_one_newline` passes among 838
base tests.
- macOS lint, workspace tests and component doc-test step pass.
- GPUI Shell Core, Component Shell, all three Standard Runtime jobs and
documentation build pass.
- Changed Rust files pass rustfmt checking locally.

The pinned-version counterpart additionally passed native GPUI
key-dispatch tests for LF/BOM/CRLF/mixed input, exact source-write
payloads and actual muninn Linux Ctrl+End typing/save plus
Ctrl+Home/End/Right/Left save checks in Tessera. Canonical BOM and all
eight original CRLF pairs were retained.

[CI
run](https://github.com/longbridge/gpui-kit/actions/runs/34032397004)
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