Antonio Scandurra
3e0e1ec1f5
Send also the currently active selection sets when serializing a buffer
2021-07-02 11:29:36 +02:00
Max Brunsfeld
3e359a06ab
Serialize RPC sends and responses using a channel
2021-07-01 22:02:27 -07:00
Max Brunsfeld and Nathan Sobo
cebf64172d
Avoid spurious error logging when host edits buffers not open by guests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-07-01 11:23:51 -07:00
Antonio Scandurra and Nathan Sobo
95ebf2da86
Fix memory leak of Editor due to blinking cursors
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-07-01 15:57:17 +02:00
Antonio Scandurra
f1b948cc43
Report SelectionSet deletion operations correctly
2021-07-01 12:54:16 +02:00
Antonio Scandurra
25637cba98
Start on rendering remote selections
2021-07-01 11:21:43 +02:00
Antonio Scandurra
f51b978ae4
Expose Worktree::{peers,replica_id}
2021-07-01 09:36:09 +02:00
Antonio Scandurra
d2391ebea2
Send a CloseWorktree message when a shared Worktree is dropped
2021-06-30 17:00:29 +02:00
Antonio Scandurra
469cd5e732
Store online peers when joining a worktree
2021-06-30 15:07:33 +02:00
Antonio Scandurra
c6e78d4bd6
Maintain a set of peers as they join and leave the worktree
2021-06-30 13:22:22 +02:00
Antonio Scandurra
d7d83f640e
Avoid logging errors in RPC message handlers
...
The `on_message` helper already logs when an error occurs.
2021-06-30 12:05:58 +02:00
Antonio Scandurra
378465b1b8
💄
2021-06-30 12:00:13 +02:00
Antonio Scandurra
a8b155dffc
Move remote::update_buffer main logic into Worktree::update_buffer
2021-06-30 11:57:05 +02:00
Nathan Sobo
b754d628b6
Store shared buffers on LocalWorktree
...
It's okay for our domain objects to model remote state. We should minimize what we need to store in the rpc::ClientState struct.
2021-06-29 21:01:43 -06:00
Nathan Sobo
40a86d0d4a
Store a reference to the LangageRegistry on the Worktree
2021-06-29 20:07:37 -06:00
d18e78edc7
Use entry_id on File instead of worktree::Diff to detect when buffers' files change
...
Rather than computing a diff after processing a batch of FSEvents, we instead detect renames as we're inserting entries. We store an entry_id on the File object that is owned by each buffer, and use this to detect when the path of the File has changed.
We now also manage all File-related state and event emission for Buffers in the LocalWorktree, since the logic will need to be totally different in the remote case.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2021-06-29 18:19:38 -06:00
Antonio Scandurra
ee884b25cc
Merge branch 'main' into rpc
2021-06-29 10:25:42 +02:00
Nathan Sobo
f5671b79ad
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 and Antonio Scandurra
165ac10d84
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 and Nathan Sobo
f60a54940a
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
44273a8153
Restructure RPC state to also keep track of remote worktrees on guests
2021-06-28 15:35:36 +02:00
Antonio Scandurra
97d22397fb
Maintain active selections as editors are focused and blurred
2021-06-28 12:37:58 +02:00
Antonio Scandurra
69b68545ba
Remove selection set when an editor is closed
2021-06-28 11:43:21 +02:00
Max Brunsfeld
00887978c5
Avoid double handle-read in File::buffer_updated
2021-06-25 17:21:42 -07:00
Max Brunsfeld
a87ce7ba29
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 and Nathan Sobo
48e8f4c169
Send and receive buffer operations
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-06-25 16:26:35 -07:00
Max Brunsfeld
ef9ba32688
Start work on sending buffer operations
2021-06-25 13:46:36 -07:00
Nathan Sobo and Max Brunsfeld
16a7034303
Notify host when guests close buffers
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-06-25 11:33:40 -07:00
Nathan Sobo and Max Brunsfeld
6db1d090b2
Add Entity release hooks
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-06-25 10:35:06 -06:00
Antonio Scandurra
50731eb075
Move remote module from workspace to worktree
2021-06-25 12:14:04 +02:00
Nathan Sobo
fe0e37064e
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
9b400a1173
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
48d24b7441
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
4bd8b64746
Upgrade bindgen to fix warnings on new Rust
2021-06-24 18:02:53 -06:00
Nathan Sobo
d67b451284
Add a "retries" option to gpui::test macro and use it in flaky tests
2021-06-24 17:51:16 -06:00
Antonio Scandurra
7677e38cff
Allow cleaning up connections/handlers state using Peer::reset
2021-06-24 15:58:43 +02:00
Max Brunsfeld
258154b15f
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 and Nathan Sobo
d88896380d
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 and Nathan Sobo
9b2a5bee5e
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 and Nathan Sobo
ddfcaf32a2
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 and Nathan Sobo
4e9b6f3a95
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
22bc4ca650
Make replica_id optional in OpenWorktreeResponse
2021-06-23 17:32:05 +02:00
Antonio Scandurra
9cf03b5d33
Respond to proto::OpenBuffer requests
2021-06-23 16:20:02 +02:00
Nathan Sobo and Max Brunsfeld
58ee9b72e9
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
a9eb97c222
WIP - Maintain a set of open buffers on a LocalWorktree
2021-06-22 12:29:58 -07:00
Nathan Sobo and Max Brunsfeld
cc434521e3
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 and Nathan Sobo
61582ca4ad
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 and Max Brunsfeld
a72ce5e691
Implement worktree::Snapshot::diff
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-06-21 15:08:21 -06:00
Nathan Sobo and Max Brunsfeld
18f9658bfe
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 and Max Brunsfeld
89a45221a4
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