Commit graph

1421 commits

Author SHA1 Message Date
Nathan Sobo
8f86fa1ccd Associate messages with their sender, fetching senders if necessary
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-25 14:20:03 -06:00
Nathan Sobo
77c7fa53da Introduce Orientation concept to List
When the Orientation is Bottom, we paint elements from the bottom of the list when underflowing and express scroll position relative to the bottom. In either orientation, when inserting elements outside the visible area, we adjust the scroll position as needed to keep the visible elements stable.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-08-25 12:45:17 -06:00
Antonio Scandurra
897826f710 Run subscription/observation callbacks in the order they were added
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-25 17:35:27 +02:00
Antonio Scandurra
1aa1e6c6ab Move pooling of line wrappers into FontCache
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-25 17:28:25 +02:00
Antonio Scandurra
0c9e72cce7 Support hard wraps in Text element
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-25 16:53:26 +02:00
Antonio Scandurra
3d5cfb78ea Use Text in chat panel
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-25 16:42:35 +02:00
Antonio Scandurra
72f282eb3a Calculate current line width correctly when wrapping shaped lines 2021-08-25 15:21:04 +02:00
Antonio Scandurra
399ecaabc6 Wrap lines in Text element 2021-08-25 14:59:52 +02:00
Antonio Scandurra
463284f0af Move LineWrapper into gpui 2021-08-25 10:43:54 +02:00
Max Brunsfeld
f404f5f32f wip2 2021-08-24 18:09:36 -07:00
Nathan Sobo
33dbbf271e WIP
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 18:09:36 -07:00
Max Brunsfeld
91c2b5825e Add LineWrapper::wrap_shaped_line
This allows us to perform wrapping based on
glyph positions in an already-shaped line. We
plan to use this in the new Text element,
because there we'll already need to do text
shaping as part of layout. This text isn't editable
so it won't need to be rewrapped with the same
frequency as the text editor's content.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-24 18:09:36 -07:00
Nathan Sobo
0187ac8fde Share a single pool of LineWrappers across all threads
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 18:16:13 -06:00
Nathan Sobo
3ac489a8b6 Fix panic when scrolling non-overflowing lists
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 17:51:37 -06:00
Nathan Sobo
a79b32cfc2 Apply theme to chat messages
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 17:46:41 -06:00
Nathan Sobo
87a103bc52 💄
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 17:46:41 -06:00
Nathan Sobo
621203eb60 Group more elements under workspace theme struct
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 17:38:26 -06:00
Nathan Sobo
e69d1f9a9b Break up theme module
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 17:33:56 -06:00
Nathan Sobo
f8fb45912d Avoid redundant notification after creating the ChannelList when not authenticated
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 17:18:40 -06:00
Nathan Sobo
ff966c8d04 Fix off-by-1 in Channel::messages_in_range
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-08-24 17:17:55 -06:00
Nathan Sobo
3ad894b7e8 Hit the local server when debugging 2021-08-24 17:11:40 -06:00
Nathan Sobo
8559be9f92 Default unstyled text to be red instead of transparent 2021-08-24 17:11:27 -06:00
Max Brunsfeld
8179f90589 Add initial unit test for channel list
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-24 13:12:02 -07:00
Max Brunsfeld
d9d52b8aa5 When loggin in, send user id instead of creating a new watch channel 2021-08-24 13:11:37 -07:00
Antonio Scandurra
bb570d3702 Init chat_panel 2021-08-24 17:54:25 +02:00
Nathan Sobo
2701abde11 WIP
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-08-24 09:29:14 -06:00
Nathan Sobo
39ad7f6a60 Make RPC client's current user_id observable
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-08-24 08:37:32 -06:00
Nathan Sobo
9b636fb81e Add "Zed > Sign" In menu item
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-08-24 08:29:36 -06:00
Nathan Sobo
e4a232acc9 Send messages on enter
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-08-24 08:15:46 -06:00
Nathan Sobo
d34f374fe7 Beautify error logging
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-08-24 08:15:24 -06:00
Antonio Scandurra
54b4a4bf6a Allow editor to be created in auto-height mode 2021-08-24 14:17:15 +02:00
Antonio Scandurra
405ff1d9db Render chat messages in ChatPanel 2021-08-24 12:23:50 +02:00
Max Brunsfeld
baded7d416 Start work on subscribing to model from ChatPanel 2021-08-23 17:21:06 -07:00
Max Brunsfeld
6df80d94ad Allow subscription/notification to be cancelled by dropping the returned Subscription
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 15:54:24 -07:00
Max Brunsfeld
f4847bd38f Get light theme loading successfully 2021-08-23 15:09:18 -07:00
Max Brunsfeld
fa0739ee2e Remove model and view specific observe/subscribe methods
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 15:07:50 -07:00
Max Brunsfeld
5ecedd894d Add ChannelList to AppState 2021-08-23 15:03:45 -07:00
Max Brunsfeld
43bb38206f Add generic subscribe and observe methods to contexts
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 15:03:12 -07:00
Max Brunsfeld
8e191f27d9 Simplify state associated with observations
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 15:03:08 -07:00
Max Brunsfeld
d02eaf9e3a Fix scrolling in List element
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 11:02:30 -07:00
Antonio Scandurra
a182db863f WIP: Render dummy chat messages to test List
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 17:29:46 +02:00
Antonio Scandurra
94e9a83326 Give up on entities being Send and Sync
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 17:04:32 +02:00
Antonio Scandurra
3543aceff3 Implement scrolling and painting for List
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 16:41:48 +02:00
Antonio Scandurra
bd89dc4114 Perform a full layout of List when width changes
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 16:04:23 +02:00
Antonio Scandurra
03b7c3c8c6 Implement and test splice for ListState
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 16:00:05 +02:00
Antonio Scandurra
2c3ba00d3e Remove vestiges of after_layout
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 15:23:06 +02:00
Antonio Scandurra
6dddb72e82 WIP: Create infrastructure for testing element layout
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 15:20:23 +02:00
Antonio Scandurra
6129bda068 Fix boxed cloning of AnyAction
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-08-23 14:45:13 +02:00
Antonio Scandurra
ab2977c65c Pass action instead of action argument to handlers 2021-08-23 12:00:31 +02:00
Nathan Sobo
86effd64a2 Get project compiling with type-safe actions 2021-08-22 21:02:48 -06:00