Antonio Scandurra
4372fe1ed0
Maintain remote buffers via UpdateBufferFile messages sent by host
2022-01-24 09:32:40 +01:00
Antonio Scandurra
31dfd01fda
Make add_local_worktree private and use find_or_create_local_worktree
...
The former always adds a worktree, even if we have one already in the
project and that could be misused. The public API should always search
for a local worktree containing the requested path first so that the
project can uphold invariants about which worktrees it has.
2022-01-22 11:23:00 +01:00
Max Brunsfeld and Nathan Sobo
2712cadaf6
Get integration tests passing
...
* Fix misuse of guest buffer's id as its remote id
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-21 17:44:24 -08:00
Max Brunsfeld
6751bd9d78
Change integration tests to open buffers via the project
2022-01-21 12:23:17 -08:00
Antonio Scandurra
6e7e86e491
Remove weak worktrees from project when nobody references them
...
Also, avoid showing them in the project panel as well as in the
contacts panel.
2022-01-21 14:34:14 +01:00
Antonio Scandurra
71082d4cdc
Return a Task<Result<()>> in {ItemView,Buffer,MultiBuffer}::save
2022-01-20 09:58:24 +01:00
Max Brunsfeld
e56c043693
Get tests passing, centralize more diagnostic logic in Project
2022-01-19 16:32:55 -08:00
Max Brunsfeld
f43dcd6763
Move logic for starting language servers to the project
2022-01-19 14:05:06 -08:00
Antonio Scandurra
f51cf6b05e
Cleanup worktrees' shared state when unsharing
2022-01-17 10:58:49 +01:00
8b53868f8a
Preserve the order of responses with respect to all other incoming messages
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2022-01-12 18:26:00 +01:00
Antonio Scandurra and Nathan Sobo
9e4b118214
Use synchronous locks for Peer state
...
We hold these locks for a short amount of time anyway, and using an
async lock could cause parallel sends to happen in an order different
than the order in which `send`/`request` was called.
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-12 18:02:41 +01:00
Antonio Scandurra and Nathan Sobo
310def2923
Implement Buffer::format
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-12 18:01:20 +01:00
Antonio Scandurra and Nathan Sobo
cf62d26ed8
Display a "Checking..." message when running disk-based diagnostics
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-07 15:03:19 +01:00
Nathan Sobo and Max Brunsfeld
943571af2a
Report backtraces of pending conditions when deterministic executor illegally parks
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2022-01-06 13:33:55 -07:00
Nathan Sobo and Max Brunsfeld
2dbee1d914
Send diagnostic summaries to guests when they join the project
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2022-01-06 12:12:09 -07:00
Max Brunsfeld
0bcd0a3f08
Forward events from remote worktrees to their projects
2022-01-04 16:01:25 -08:00
Max Brunsfeld and Antonio Scandurra
d8b888c9cb
Replicate diagnostic summaries
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2022-01-04 14:29:22 -08:00
Antonio Scandurra
508b9dc024
Rip out "diagnostic providers"
2022-01-04 16:32:17 +01:00
Max Brunsfeld
a080ae98c6
Allow the zed app to connect to both the old and new rpc endpoints
...
In the case of the new Next.js app, the app will follow a redirect
from 'zed.dev/rpc' to the subdomain where the rust service is hosted.
Until then, the app will connect directly to zed.dev/rpc.
2022-01-03 15:29:26 -08:00
Antonio Scandurra
393009a05c
Implement Buffer::diagnostic_group
2021-12-24 12:08:55 +01:00
Antonio Scandurra
17094ec542
Allow opening of remote projects via the contacts panel
2021-12-21 12:05:38 +01:00
Antonio Scandurra
c6dd797f4e
Drop project instead of worktree to simulate client leaving
2021-12-21 10:20:05 +01:00
Antonio Scandurra
afec4152f4
Update contacts as projects/worktrees get registered/unregistered
2021-12-21 10:17:26 +01:00
Antonio Scandurra
40da3b233f
Get more integration tests passing
2021-12-21 09:50:11 +01:00
Max Brunsfeld
788bb4a368
Get some RPC integration tests passing
2021-12-20 18:08:53 -08:00
Max Brunsfeld
55910c0d79
Get the server and integration tests compiling
2021-12-20 16:30:29 -08:00
Max Brunsfeld and Nathan Sobo
466a377e1d
Merge branch 'main' into share-project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-12-20 11:42:59 -08:00
Nathan Sobo
ab5db0bc1e
Fix warnings and tests
2021-12-18 11:06:07 -07:00
Max Brunsfeld and Nathan Sobo
c41b958829
WIP - start restructuring collaboration around entire projects
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-12-17 22:00:39 -08:00
Max Brunsfeld
fb492a9fb8
Correctly incorporate editor settings into diagnostic header rendering
2021-12-16 16:36:33 -08:00
Antonio Scandurra
7bcce23dc9
Fix compile error in server integration tests
2021-12-15 08:48:50 +01:00
Max Brunsfeld
6ab795c629
Handle buffer deduping in the worktree instead of in workspace
...
Previously, buffers were only deduped by file if they were opened
through Workspace::open_entry
2021-12-13 16:35:46 -08:00
418a9a3d66
Get things compiling with diagnostics on worktree
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-12-13 11:15:03 -08:00
Nathan Sobo
8432daef6a
WIP: Start on removing selections from buffer in favor of editor
2021-12-10 19:23:34 -07:00
Nathan Sobo
c8b43e3078
Move multi_buffer to editor crate
2021-12-10 17:37:53 -07:00
Max Brunsfeld
a758bd4f8d
Fill in some missing methods on MultiBuffer, MultiBufferSnapshot
2021-12-10 14:27:04 -08:00
Antonio Scandurra and Nathan Sobo
7524974f19
Get everything compiling again
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-12-10 17:15:16 +01:00
Max Brunsfeld
5e516f59c0
Merge branch 'fragment-locators' into HEAD
2021-12-09 14:49:04 -08:00
Antonio Scandurra and Nathan Sobo
91a7bbbba2
Fix some of the diagnostic tests and make DiagnosticEntry generic
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-12-09 17:53:08 +01:00
Antonio Scandurra and Nathan Sobo
65711b2256
Remove anchor collections
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-12-09 17:28:27 +01:00
Nathan Sobo and Max Brunsfeld
87d16c271e
Get Editor compiling with MultiBuffer as its buffer
...
There's a bunch of unimplemented methods in MultiBuffer, but everything compiles.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-12-08 19:23:04 -07:00
Nathan Sobo and Max Brunsfeld
748b1ba602
Fix warning
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-11-30 12:27:00 -07:00
Nathan Sobo and Max Brunsfeld
a1412166f0
Fix randomized test failures by waiting for client_b to be added to worktree_a
...
We perform an async fetch of client_b's user data on worktree_a, which ends up holding a handle that prevents worktree_a from being released later in the test. By waiting for this fetch to finish before proceeding, we can be sure worktree_a actually gets released.
A more comprehensive fix would be some way to ensure we actually perform a release if an entity is fully dropped outside of an update cycle, but this fixes the issue for now.
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2021-11-29 16:48:09 -07:00
Max Brunsfeld and Nathan Sobo
1a91aa8194
Introduce a collections crate w/ deterministic hashmap, hashset in tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-11-29 15:22:45 -08:00
Antonio Scandurra and Nathan Sobo
2c17ae9aa6
Introduce a new Grammar struct and allow it to be optional
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-11-29 17:38:59 +01:00
Nathan Sobo
4bd43e67ef
Introduce a TestClient and associate it with a PeerId
...
This makes it easier to integration test peer interactions because now we know their PeerIds.
2021-11-27 12:33:25 -07:00
Nathan Sobo
b307a7e91d
Populate the user data of worktree collaborators
...
This will make it possible for us to render their avatars. Previously we only had the user ids. During rendering, everything needs to be available synchronously. So now, whenever collaborators are added, we perform the async I/O to fetch their user data prior to adding them to the worktree.
2021-11-26 20:35:50 -07:00
Nathan Sobo
9930e92412
WIP: Give worktrees a reference to the UserStore
...
This will allow them to fetch user data when peers are added or removed. Still work to do though.
2021-11-26 19:12:12 -07:00
21aba54dc3
Introduce a worktree::Collaborator struct that holds the user_id
...
We can use this to render avatars.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2021-11-26 11:28:30 -07:00
Nathan Sobo and Antonio Scandurra
d78d5712be
Rename PeoplePanel to ContactsPanel
...
Yeah, it's true they're people, but this is a more specific way in which they're people.
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2021-11-26 11:13:05 -07:00