Commit Graph
25009 Commits
Author SHA1 Message Date
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 SoboandAntonio 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 ScandurraandNathan 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 BrunsfeldandNathan 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 SoboandMax 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 SoboandMax 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 BrunsfeldandNathan 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 BrunsfeldandNathan 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 BrunsfeldandNathan 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 BrunsfeldandNathan 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 SoboandMax 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 SoboandMax 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 BrunsfeldandNathan 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 SoboandMax Brunsfeld a72ce5e691 Implement worktree::Snapshot::diff
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-21 15:08:21 -06:00
Nathan SoboandMax 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 SoboandMax 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
Antonio Scandurra ae4d9ac6e9 💄 2021-06-21 17:30:08 +02:00
Antonio Scandurra 52b31d30e4 Fix deadlock when comparing FileHandles when handles are the same 2021-06-21 16:18:18 +02:00
Antonio Scandurra aab07a44aa Put back worktree_id in CloseFile and OpenBuffer messages 2021-06-21 14:44:01 +02:00
Antonio Scandurra f283c41d72 WIP: Load remote history 2021-06-21 12:15:58 +02:00
Antonio Scandurra 9ce1cf732e Issue only one OpenFile and CloseFile request per handle 2021-06-21 12:04:38 +02:00
Max Brunsfeld aa6a86efe7 Stub in more logic for open_file and close_file 2021-06-20 22:36:01 -07:00
Nathan SoboandMax Brunsfeld 91fe726467 WIP
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-18 17:26:12 -06:00
Nathan SoboandMax Brunsfeld ae757bb736 Update prost to include our changes
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-18 15:12:22 -06:00
Max Brunsfeld 8b914262a6 Start work on implementing ::file on remote WorktreeHandles 2021-06-18 13:32:38 -07:00
Antonio Scandurra 1409e5d9b3 WIP 2021-06-18 19:28:39 +02:00
Antonio Scandurra 06ac0a95a8 Add worktree to workspace when joining a remote worktree 2021-06-18 14:52:38 +02:00
Antonio Scandurra 1cefc76f11 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 c292e916c0 Implement Display for ConnectionId 2021-06-17 20:53:20 -07:00
Max Brunsfeld 0b67637a52 Add a name to EnvelopedMessage for logging purposes 2021-06-17 20:48:26 -07:00
Max Brunsfeld 34230ef1ba 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 b20681a257 Use strings for paths and buffer contents 2021-06-17 16:25:30 -07:00