Commit log

7d566ce Follow last collaborator or the next one via `cmd-alt-shift-f`

Antonio Scandurra created

67dbc31 Stop following when activating a different item on the follower pane

Antonio Scandurra created

3117554 Automatically unfollow when editing, scrolling or changing selections

Antonio Scandurra created

c550fc3 WIP - Start work on unfollowing automatically

Max Brunsfeld created

1728551 Always mirror the leader's selections when following

Max Brunsfeld created

ee3e604 Make boundary-finding methods wrap across newlines

Click to expand commit body
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.

Nathan Sobo created

f70f4c7 Improve DisplayPoint Debug impl

Nathan Sobo created

e5a00d7 Implement next_subword_end

Nathan Sobo created

c0d05c8 WIP: Start on previous_subword_start

Click to expand commit body
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Keith Simmons <keith@the-simmons.net>

Nathan Sobo , Max Brunsfeld , and Keith Simmons created

c8f36af Show borders around avatars and panes to indicate following state

Max Brunsfeld created

5b54874 Extract logic for scanning over character boundaries

Nathan Sobo created

0c89ad3 Make multi-byte and surrounding_word tests more readable

Click to expand commit body
Just merge multi-byte tests into the main word movement tests

Nathan Sobo created

210fa4c Remove CharKind::Newline

Click to expand commit body
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>

Nathan Sobo and Keith Simmons created

baeb7d2 Clarify word movement function names and improve test coverage

Click to expand commit body
Co-Authored-By: Keith Simmons <keith@the-simmons.net>

Nathan Sobo and Keith Simmons created

06cd9ac Match the leader's last selection when unfollowing

Click to expand commit body
Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Max Brunsfeld and Antonio Scandurra created

3e0bc97 Avoid infinite loop when collaborators follow each other

Click to expand commit body
Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Max Brunsfeld and Antonio Scandurra created

05ddd26 Merge pull request #648 from zed-industries/update-fonts-to-1-2-1

Click to expand commit body
Update Zed fonts to 1.2.1

Nathan Sobo created

13a2dac :lipstick:

Antonio Scandurra created

1c23a45 Update Zed fonts to 1.2.1

Nate Butler created

9575796 Allow unfollowing of leaders by clicking on their avatar

Antonio Scandurra created

a154e45 Implement `Workspace::unfollow`

Click to expand commit body
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.

Antonio Scandurra created

a2dbebd Hide cursor both locally and remotely when following

Antonio Scandurra created

c03eec0 Merge pull request #647 from zed-industries/fix-reopening-project-items

Click to expand commit body
Pass project entry id to Pane when opening a project item

Nathan Sobo created

7cb8935 Pass project entry id to Pane when opening a project items

Click to expand commit body
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.

Nathan Sobo created

0e920ad Unset follower's scroll anchor when editor is scrolled all the way up

Antonio Scandurra created

570c987 Handle view updates when following

Click to expand commit body
Basic following now works. Editors' scroll positions
are their only replicated view state.

Max Brunsfeld created

e338da0 Allow clicking a titlebar avatar to initiate following

Max Brunsfeld created

d860ed2 Allow FollowableItem::to_state_message to return None

Click to expand commit body
This way, we can avoid a panic if we don't handle certain cases,
like a non-singleton editor.

Max Brunsfeld created

df06320 :art: client

Click to expand commit body
Forgot to push this yesterday night.

Max Brunsfeld created

d02ab9b Start work on updating editors's scroll positions when following

Click to expand commit body
Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Max Brunsfeld and Antonio Scandurra created

2c53175 Rename FollowedItem -> FollowableItem

Click to expand commit body
Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Max Brunsfeld and Antonio Scandurra created

f4520d4 WIP

Antonio Scandurra created

7d7e105 Broadcast active view to followers

Antonio Scandurra created

3d81eb9 Allow accessing workspace after adding item to pane

Antonio Scandurra created

10e6d82 WIP: Start on sending view updates to followers

Antonio Scandurra created

f0b7bd6 Serialize initial follow state in leader and reflect it in follower

Antonio Scandurra created

0fdaa1d WIP

Max Brunsfeld created

eda06ee Add AnyWeakViewHandle

Max Brunsfeld created

5702737 Start work on an integration test for following

Max Brunsfeld created

845457e Always read project entry id from workspace::Item

Click to expand commit body
We cannot store a workspace item's project entry id separately,
since buffers' entry ids can change (for example when doing
a *save as*).

Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Max Brunsfeld and Antonio Scandurra created

9716ff7 Set up logic for starting following

Click to expand commit body
Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Max Brunsfeld and Antonio Scandurra created

2b4738d Avoid passing a closure to `workspace::register_project_item`

Click to expand commit body
Co-Authored-By: Max Brunsfeld <max@zed.dev>

Antonio Scandurra and Max Brunsfeld created

4bbfd09 Start defining follow protocol

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

c8a6226 Merge pull request #640 from zed-industries/item-view

Click to expand commit body
Remove `workspace::Item` and rename `workspace::ItemView` to `workspace::Item`

Antonio Scandurra created

5d14c9a Introduce `workspace::register_project_item`

Click to expand commit body
This lets downstream crates like `editor` define how project items should be
opened.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

bff414c Remove `Editor::find_or_create`

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

6f9c378 Add `Editor::for_multibuffer` and repurpose `Editor::for_buffer`

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

44d997c Rename `app_state` to `global` in gpui

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

84bacc5 Rename `build_editor` to `build_item` in `Pane::open_item`

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

6446660 Rename `open_buffer_for_path` to `open_buffer`

Antonio Scandurra created