Antonio Scandurra
e80439daaa
Merge branch 'main' into rpc
2021-06-29 10:25:42 +02:00
Nathan Sobo
b7a4393f29
Redesign Worktree save API and make test_rescan_simple pass
...
This commit does too much. The first goal was to change our approach to saving new buffers so that we don't need to construct a File for an entry that doesn't exist. Rather than doing that, we call `Worktree::save_buffer_as` with the buffer handle, the path, and the contents. This then saves the buffer and returns a handle to a `File` that references an entry that actually exists. I needed to do this so that we can store an entry id on `File`.
In the process, I noticed intermittent test failures on `test_rescan_simple`, so I made some changes required to fix those related to our reuse of existing ids. Our previous approach of removing a path when inserting a new entry was broken, because of the recursive nature of `remove_path`. Instead, I simply recycle the id of an existing worktree entry with the same path if one is present, then allow it to be replaced.
2021-06-28 19:05:38 -06:00
Nathan Sobo
1793eda470
Eagerly populate worktree entries on load
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-06-28 12:29:46 -06:00
Antonio Scandurra
958345b5ce
Assign a stable identity to Worktree entries
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-28 19:41:33 +02:00
Antonio Scandurra
65aa9733d7
Restructure RPC state to also keep track of remote worktrees on guests
2021-06-28 15:35:36 +02:00
Antonio Scandurra
e72b4ae03d
Maintain active selections as editors are focused and blurred
2021-06-28 12:37:58 +02:00
Antonio Scandurra
0bc8663d36
Remove selection set when an editor is closed
2021-06-28 11:43:21 +02:00
Max Brunsfeld
e2b9ab500f
Avoid double handle-read in File::buffer_updated
2021-06-25 17:21:42 -07:00
Max Brunsfeld
60ee97be24
Always represent anchor as a versioned offset
...
Remove the `Start` and `End` variants, and always
use the structure that was previously called `Middle`.
This makes Anchors simpler to serialize and deserialize.
2021-06-25 17:02:48 -07:00
Max Brunsfeld
b9952bad8b
Send and receive buffer operations
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-25 16:26:35 -07:00
Max Brunsfeld
04c80578bc
Start work on sending buffer operations
2021-06-25 13:46:36 -07:00
Nathan Sobo
7ee0862b99
Notify host when guests close buffers
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-25 11:33:40 -07:00
Nathan Sobo
2257abd7dd
Add Entity release hooks
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-25 10:35:06 -06:00
Antonio Scandurra
d59267a7ef
Move remote
module from workspace
to worktree
2021-06-25 12:14:04 +02:00
Nathan Sobo
3ba22230dc
Merge pull request #97 from zed-industries/limit-bundle-uploads
...
Only upload artifacts to workflow runs on the main branch
2021-06-24 19:07:04 -06:00
Nathan Sobo
0faabc2177
Only upload artifacts to workflow runs on the main branch
...
We're running out of actions storage, and we don't really need an artifact stored for every single build.
2021-06-24 19:02:57 -06:00
Nathan Sobo
c4729de913
Merge pull request #96 from zed-industries/retry-flaky-tests
...
Add a "retries" option to gpui::test macro and use it in flaky tests
2021-06-24 18:08:06 -06:00
Nathan Sobo
8f7111b0f7
Upgrade bindgen to fix warnings on new Rust
2021-06-24 18:02:53 -06:00
Nathan Sobo
3d67266d0b
Add a "retries" option to gpui::test macro and use it in flaky tests
2021-06-24 17:51:16 -06:00
Antonio Scandurra
779dbf86dd
Allow cleaning up connections/handlers state using Peer::reset
2021-06-24 15:58:43 +02:00
Max Brunsfeld
ce2f3f664a
Consolidate more logic for joining worktree in Worktree::remote
...
This way we can use this method in tests and avoid
needing to construct a Workspace.
2021-06-23 18:07:09 -07:00
Max Brunsfeld
6a166554e8
Add public method for connecting to RPC server with a given address
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-23 18:05:03 -07:00
Max Brunsfeld
54c4b31249
Fix last usage of App::test_async in one test
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-23 18:05:03 -07:00
Max Brunsfeld
efc8bc3124
Add a test-support feature flag that enables compilation of zed::test module
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-23 18:05:03 -07:00
Max Brunsfeld
a57cb2b189
Add a public gpui::TestAppContext::new method
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-23 16:34:36 -07:00
Antonio Scandurra
f1587fbb6e
Make replica_id
optional in OpenWorktreeResponse
2021-06-23 17:32:05 +02:00
Antonio Scandurra
02321af08a
Respond to proto::OpenBuffer
requests
2021-06-23 16:20:02 +02:00
Nathan Sobo
c5e08b6548
Eagerly update worktree entries when saving
...
Don't use ModelHandles for storing Files.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-22 17:53:35 -07:00
Max Brunsfeld
dc8e216fcb
WIP - Maintain a set of open buffers on a LocalWorktree
2021-06-22 12:29:58 -07:00
Nathan Sobo
a364839e93
Replace FileHandle with File entity that subscribes to Worktree update events
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-21 20:40:40 -06:00
Max Brunsfeld
cabf6b1f58
Emit a diff event when worktree's snapshot is updated
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-21 17:07:56 -07:00
Nathan Sobo
8ae5c0d7d6
Implement worktree::Snapshot::diff
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-21 15:08:21 -06:00
Nathan Sobo
1364ba6f5e
Allow async background work when polling worktree background snapshot
...
This prepares us to perform a diff against the previous snapshot before installing a new worktree snapshot on the foreground thread.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-21 14:03:29 -06:00
Nathan Sobo
986afd26e9
Remove other_mount_paths
...
We only needed this when we relied on inodes for file identity, which we no longer attempt to do.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-21 13:06:29 -06:00
Antonio Scandurra
5c0f4e572f
💄
2021-06-21 17:30:08 +02:00
Antonio Scandurra
7489e86c47
Fix deadlock when comparing FileHandle
s when handles are the same
2021-06-21 16:18:18 +02:00
Antonio Scandurra
95024c616e
Put back worktree_id
in CloseFile
and OpenBuffer
messages
2021-06-21 14:44:01 +02:00
Antonio Scandurra
2905ce3ba7
WIP: Load remote history
2021-06-21 12:15:58 +02:00
Antonio Scandurra
f4d6fbe14f
Issue only one OpenFile
and CloseFile
request per handle
2021-06-21 12:04:38 +02:00
Max Brunsfeld
96c118b4df
Stub in more logic for open_file and close_file
2021-06-20 22:36:01 -07:00
Nathan Sobo
0deaa3a61d
WIP
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-18 17:26:12 -06:00
Nathan Sobo
bfccb173c4
Update prost to include our changes
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-18 15:12:22 -06:00
Max Brunsfeld
a2a6d67e1e
Start work on implementing ::file on remote WorktreeHandles
2021-06-18 13:32:38 -07:00
Antonio Scandurra
f9d8e952f2
WIP
2021-06-18 19:28:39 +02:00
Antonio Scandurra
89d25458ac
Add worktree to workspace when joining a remote worktree
2021-06-18 14:52:38 +02:00
Antonio Scandurra
79cac1340e
Replace Worktree
with an enum
...
For now this enum only contains a `Local` variant, but the next step is
to add a `Remote` variant that will be constructed when joining a remote
worktree.
2021-06-18 12:07:57 +02:00
Max Brunsfeld
7a66cd1ae1
Implement Display for ConnectionId
2021-06-17 20:53:20 -07:00
Max Brunsfeld
cdfb33b283
Add a name to EnvelopedMessage for logging purposes
2021-06-17 20:48:26 -07:00
Max Brunsfeld
7a88e44264
Add menu command to join worktree using URL on clipboard
...
Introduce rpc::Client struct that wraps zed_rpc::Peer
2021-06-17 20:42:36 -07:00
Max Brunsfeld
3a78f053f6
Use strings for paths and buffer contents
2021-06-17 16:25:30 -07:00