Max Brunsfeld and Nathan Sobo
4436301fa3
Coalesce followed view updates only within one frame
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-03-22 17:03:24 -07:00
Max Brunsfeld and Nathan Sobo
b920b865c4
Combine updates from multiple view events when updating followers
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-03-22 16:22:42 -07:00
Keith Simmons
8bf564ecf7
Add editor lifetime events
2022-03-22 16:14:32 -07:00
Keith Simmons
8d4deb8693
Add editor selection utilities
...
Also improved test that was failing during above to use marker text approach as a drive by
2022-03-22 16:08:22 -07:00
Max Brunsfeld
5d1658e1f1
Don't represent editor's scroll top anchor as an option
...
Use Anchor::min as the special value representing a scroll top of zero
2022-03-22 13:32:25 -07:00
Max Brunsfeld
421b170515
Use env_logger when running the app in a terminal
2022-03-22 13:32:25 -07:00
Max Brunsfeld
a0d18fc007
Allow customizing the pane's following border width in the theme
2022-03-22 13:32:25 -07:00
Max Brunsfeld
76cf065588
Make UpdateBuffer a foreground message
2022-03-22 13:32:25 -07:00
Keith Simmons
3e22400212
Remove results from movement function return values, and move editor test utilities to test file
2022-03-22 10:55:03 -07:00
Antonio Scandurra and Nathan Sobo
13c6ca7adb
Ensure leader updates don't change the active pane of followers
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-03-22 16:44:59 +01:00
Antonio Scandurra and Nathan Sobo
43eeb11192
Don't trigger observations with notifications emitted prior to observing
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-03-22 16:28:11 +01:00
Antonio Scandurra and Nathan Sobo
8d901860f2
Don't trigger global subscriptions with events emitted prior to subscribing
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-03-22 16:14:21 +01:00
Antonio Scandurra and Nathan Sobo
cd00947e17
Don't trigger subscriptions with events emitted prior to subscribing
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-03-22 15:57:30 +01:00
Antonio Scandurra
b6dd7c1662
WIP
2022-03-22 13:35:37 +01:00
Antonio Scandurra
8ac8e39983
Bump protocol version
2022-03-22 13:19:07 +01:00
Antonio Scandurra
cbf7584ad3
Merge branch 'main' into follow
2022-03-22 11:20:55 +01:00
Antonio Scandurra
2fea8a3cda
Stop following when leader disconnects
2022-03-22 11:16:04 +01:00
Antonio Scandurra
e3bd33a549
Forget last pane's leader when such pane is removed
...
This is just a memory optimization and doesn't cause any observable
change in behavior.
2022-03-22 11:06:52 +01:00
Antonio Scandurra
1b6236e3db
Reflect leader's view state when recycling existing local editors
2022-03-22 10:51:17 +01:00
Antonio Scandurra
6e16603070
Always render local selections on top of remote ones
2022-03-22 10:31:28 +01:00
Antonio Scandurra
fa960c0e43
Follow last collaborator or the next one via cmd-alt-shift-f
2022-03-22 10:16:58 +01:00
Antonio Scandurra
3f03d2b641
Stop following when activating a different item on the follower pane
2022-03-22 09:42:37 +01:00
Antonio Scandurra
0de3f0980f
Automatically unfollow when editing, scrolling or changing selections
2022-03-22 09:17:01 +01:00
Max Brunsfeld
0cc1f68b61
WIP - Start work on unfollowing automatically
2022-03-21 21:52:28 -07:00
Max Brunsfeld
8c5e1610b1
Always mirror the leader's selections when following
2022-03-21 21:47:29 -07:00
Nathan Sobo
3b5830d041
Make boundary-finding methods wrap across newlines
...
This requires word and subword methods to explicitly acknowledge that they want to stop at newlines, which I think actually increases clarity. It makes the boundary finding method more general and useful for external callers such as the forthcoming vim crate.
2022-03-21 21:25:02 -06:00
Nathan Sobo
47496eda80
Improve DisplayPoint Debug impl
2022-03-21 21:07:56 -06:00
Nathan Sobo
ba73ef8861
Implement next_subword_end
2022-03-21 20:02:08 -06:00
acad71b1f5
WIP: Start on previous_subword_start
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
Co-Authored-By: Keith Simmons <keith@the-simmons.net >
2022-03-21 19:53:01 -06:00
Max Brunsfeld
c9aa130958
Show borders around avatars and panes to indicate following state
2022-03-21 15:12:15 -07:00
Nathan Sobo
37420a1dd0
Extract logic for scanning over character boundaries
2022-03-21 16:01:22 -06:00
Nathan Sobo
ffb280f963
Make multi-byte and surrounding_word tests more readable
...
Just merge multi-byte tests into the main word movement tests
2022-03-21 15:41:42 -06:00
Nathan Sobo and Keith Simmons
ce4280c12f
Remove CharKind::Newline
...
This is just a character, and so it seems clearer to refer to it specifically when we want to know if a character is a newline. There was only one case where we relied on Newline being different from Whitespace, and we special-cased that instance. Changing this actually makes us match the behavior of VS Code when double-clicking runs of multiple newlines.
/cc @as-cii
Co-Authored-By: Keith Simmons <keith@the-simmons.net >
2022-03-21 15:17:32 -06:00
Nathan Sobo and Keith Simmons
61b61e070f
Clarify word movement function names and improve test coverage
...
Co-Authored-By: Keith Simmons <keith@the-simmons.net >
2022-03-21 15:17:25 -06:00
Max Brunsfeld and Antonio Scandurra
18848bd463
Match the leader's last selection when unfollowing
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2022-03-21 14:04:55 -07:00
Max Brunsfeld and Antonio Scandurra
3cfde9b2e6
Avoid infinite loop when collaborators follow each other
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2022-03-21 11:47:00 -07:00
Antonio Scandurra
995149babe
💄
2022-03-21 18:16:06 +01:00
Nate Butler
6d1b231818
Update Zed fonts to 1.2.1
2022-03-21 12:11:31 -04:00
Antonio Scandurra
9300c2add6
Allow unfollowing of leaders by clicking on their avatar
2022-03-21 17:10:23 +01:00
Antonio Scandurra
5e249ad324
Implement Workspace::unfollow
...
This also changes the structure of the follow state back to be per-pane. This
is because we can't share the same view state across different panes for
a couple of reasons:
- Rendering the same view in N different panes is almost always not something
that we want due to global state such as focus.
- If we allowed it and a user followed the same person in two different panes,
there would be no way of unfollowing in one pane without also unfollowing in
the other.
2022-03-21 16:55:18 +01:00
Antonio Scandurra
f04e08eb4b
Hide cursor both locally and remotely when following
2022-03-21 15:16:56 +01:00
Nathan Sobo
6a987cedcc
Pass project entry id to Pane when opening a project items
...
This fixes an oversight where we were failing to associate project items with their project entry ids, which broke the logic that prevented the same project entry from being opened twice in the same pane.
2022-03-20 08:54:20 -06:00
Antonio Scandurra
0ddc5453c0
Unset follower's scroll anchor when editor is scrolled all the way up
2022-03-19 10:50:23 +01:00
Max Brunsfeld
2163cacb0c
Handle view updates when following
...
Basic following now works. Editors' scroll positions
are their only replicated view state.
2022-03-18 15:56:57 -07:00
Max Brunsfeld
0be1a81fbb
Allow clicking a titlebar avatar to initiate following
2022-03-18 13:37:07 -07:00
Max Brunsfeld
395d11d98b
Allow FollowableItem::to_state_message to return None
...
This way, we can avoid a panic if we don't handle certain cases,
like a non-singleton editor.
2022-03-18 13:36:05 -07:00
Max Brunsfeld
9d50d10dee
🎨 client
...
Forgot to push this yesterday night.
2022-03-18 13:03:43 -07:00
Max Brunsfeld and Antonio Scandurra
70e323e4dc
Start work on updating editors's scroll positions when following
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2022-03-18 12:56:20 -07:00
Max Brunsfeld and Antonio Scandurra
a1e22c5feb
Rename FollowedItem -> FollowableItem
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2022-03-18 10:12:51 -07:00
Antonio Scandurra
f80a5578ec
WIP
2022-03-18 18:07:03 +01:00