Commit Graph
33622 Commits
Author SHA1 Message Date
temportalflux bd7bbdd0e6 reorganize element implementation to be more readable 2026-07-11 09:31:07 -04:00
temportalflux 151d2c32aa assign default editable text colors as consts 2026-07-11 09:31:07 -04:00
temportalflux 252683a830 reduce complexity of mouse click handler and cut/copy handlers 2026-07-11 09:31:07 -04:00
temportalflux db856ae57a reduce bounds_for_range to be more readable 2026-07-11 09:31:07 -04:00
temportalflux 3a7d11a808 remove EditableTextState::storage() in favor of direct access to the member 2026-07-11 09:31:07 -04:00
temportalflux 0daa97cd47 resolve clippy errors from using Range in reverse. Add CaretSelection to represent a bidirectional inclusive range 2026-07-11 09:31:07 -04:00
temportalflux 8c0d58c86b collapse styling of conditions 2026-07-11 09:31:07 -04:00
temportalflux bbf2679380 reorganize blocks in editable text element 2026-07-11 09:31:07 -04:00
temportalflux 787d747deb migrate EditableTextActionElement::register_action and bindings to an internal macro 2026-07-11 09:31:07 -04:00
temportalflux 2cc4f237d6 rework element api to expose EditableTextState as a viable entity for users to create via use_keyed_state 2026-07-11 09:31:07 -04:00
temportalflux cc055b7f7d add very basic text sanitation for no-multiline fields 2026-07-11 09:31:07 -04:00
temportalflux 44e65e544f rework focus handle semantics to only use Window::set_focus_handle during prepaint instead of requiring changes to Interactivity 2026-07-11 09:31:07 -04:00
temportalflux 812d5aa91a add on_text_changed callback binding to allow the caller to be notified on every change to the text 2026-07-11 09:31:07 -04:00
temportalflux 6beeecb5a8 add module-level documentation with examples 2026-07-11 09:31:07 -04:00
temportalflux 1502a54b34 add action default_bindings documentation table 2026-07-11 09:31:07 -04:00
temportalflux 579b8d06f1 collapse UnicodeTextStorage api to only expose methods operating on the direction/boundary enums 2026-07-11 09:31:07 -04:00
temportalflux 18c80084d2 fill out more documentation 2026-07-11 09:31:07 -04:00
temportalflux cf6f785661 replace async-io timer with background executor timer 2026-07-11 09:31:07 -04:00
temportalflux e0458531dd add editable text documentation 2026-07-11 09:31:07 -04:00
temportalflux e91181535a rename actions to be more clear 2026-07-11 09:31:07 -04:00
temportalflux 8156acd872 apply paint order to editable text elements (text, ime, selection, caret) 2026-07-11 09:31:07 -04:00
temportalflux 0b47bd71e7 add some documentation 2026-07-11 09:31:07 -04:00
temportalflux 717f465001 reorganize editable text implementation for maintainability 2026-07-11 09:31:07 -04:00
temportalflux 5e6d3028e0 remove previous input iteration 2026-07-11 09:31:07 -04:00
temportalflux de19ea0d6d fix discrpencies between where to render the caret and determining what line semantically contains the caret 2026-07-11 09:31:07 -04:00
temportalflux f3e9ae3c56 add caret blinking which is handled via a separate entity 2026-07-11 09:31:07 -04:00
temportalflux e7e4c9adf4 rearrange element quad building 2026-07-11 09:31:07 -04:00
temportalflux 962f89c4a2 add color mutators on element 2026-07-11 09:31:07 -04:00
temportalflux 126db6dbbe scroll the area when the caret moves out of view 2026-07-11 09:31:07 -04:00
temportalflux 0ae4c8f146 port over tests from previous iteration 2026-07-11 09:31:07 -04:00
temportalflux 246bc3e6e4 implement undo/redo history tracking 2026-07-11 09:31:07 -04:00
temportalflux 58c66d50f2 resolve deprecated num_visual_lines 2026-07-11 09:31:07 -04:00
temportalflux dd61395440 add accepts_input flag as a way to track an input field's disabled state 2026-07-11 09:31:07 -04:00
temportalflux b5acea4809 merge element and state implementations back to a single type 2026-07-11 09:31:07 -04:00
temportalflux 76a02bbc46 add default-value via init-storage 2026-07-11 09:31:07 -04:00
temportalflux c1d3deb170 rename editable text module structs for consistency 2026-07-11 09:31:07 -04:00
temportalflux e84af920b9 properly implement overflow-driven scrolling via interactivity 2026-07-11 09:31:07 -04:00
temportalflux 3cff5195e2 implement coarse approach to navigating up and down a large textarea 2026-07-11 09:31:07 -04:00
temportalflux a9d139ba47 manually mark editable text elements as stateful-interactive so overflow can be specified 2026-07-11 09:31:07 -04:00
temportalflux a6aebd6ae4 render cursor even when there is no content so the user knows when they have focus in the element 2026-07-11 09:31:07 -04:00
temportalflux 7caea04bf6 reimplement text layout wrapping using the existing gpui TextLayout logic 2026-07-11 09:31:07 -04:00
temportalflux 3539798e9c disable text layout in preparation for a full rewrite taking into account the existing TextLayout implementation 2026-07-11 09:31:07 -04:00
temportalflux 030706b288 add support for padding to editable text rendering 2026-07-11 09:31:07 -04:00
temportalflux 0e34470a40 add stubs for allowing the user to provide their own storage mediums 2026-07-11 09:31:07 -04:00
temportalflux 5e08033021 move element implementation details to shared trait for input and text-area 2026-07-11 09:31:07 -04:00
temportalflux c2e3315c1d add mutator for placeholder on element 2026-07-11 09:31:07 -04:00
temportalflux 75e90de692 change select_to behavior to just move the caret/front w/o changing the end of the selected range 2026-07-11 09:31:07 -04:00
temportalflux d237be3a1a attach disabled notifies so Render updates when the selection state changes 2026-07-11 09:31:07 -04:00
temportalflux a8281b2555 rework state tracking so that action handlers can access the state of a text field, which occurs outside of the render/frame stack 2026-07-11 09:31:07 -04:00
temportalflux bf22400798 identify issue with state storage, where it cannot be accessed outside of element painting (aka in action handlers) 2026-07-11 09:31:07 -04:00