Commit Graph
44 Commits
Author SHA1 Message Date
Nathan Sobo 0fde7a55ef 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
Antonio Scandurra e80439daaa Merge branch 'main' into rpc 2021-06-29 10:25:42 +02:00
Antonio ScandurraandNathan Sobo 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
Max BrunsfeldandNathan Sobo 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 SoboandMax Brunsfeld 7ee0862b99 Notify host when guests close buffers
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-25 11:33:40 -07:00
Antonio Scandurra 779dbf86dd Allow cleaning up connections/handlers state using Peer::reset 2021-06-24 15:58:43 +02: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
Max Brunsfeld dc8e216fcb WIP - Maintain a set of open buffers on a LocalWorktree 2021-06-22 12:29:58 -07:00
Max BrunsfeldandNathan Sobo 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
Antonio Scandurra 7489e86c47 Fix deadlock when comparing FileHandles 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
Nathan SoboandMax Brunsfeld 0deaa3a61d WIP
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-18 17:26:12 -06:00
Nathan SoboandMax Brunsfeld bfccb173c4 Update prost to include our changes
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-18 15:12:22 -06: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
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 3a78f053f6 Use strings for paths and buffer contents 2021-06-17 16:25:30 -07:00
Max BrunsfeldandAntonio Scandurra f4dccc5353 Replace POST /worktrees rest endpoint with GET /rpc-address
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-06-17 16:11:54 -07:00
Max Brunsfeld 2fd0f0be50 Make TypedEnvelope fields public 2021-06-17 15:54:55 -07:00
Max Brunsfeld a3c938cc77 Ignore message-handling error in disconnect unit test 2021-06-17 15:20:56 -07:00
Max BrunsfeldandNathan Sobo 05a662b35e Allow peers to receive individual messages before starting message loop
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-17 14:19:15 -07:00
Antonio Scandurra d243395e06 Use an i32 for user_id in RPC authentication message 2021-06-17 14:51:06 +02:00
Max Brunsfeld c5cec247c4 Fix termination of peer's incoming future
* Re-enable peer tests
* Enhance request/response unit test to exercise
  peers interacting with each other end-to-end
2021-06-16 21:18:22 -07:00
Max Brunsfeld fb736d5e78 Remove peer message listeners when their receiver is dropped 2021-06-16 17:02:40 -07:00
Antonio ScandurraandNathan Sobo 9de4d73ffb Move RpcClient to zed_rpc and rename it to Peer
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-16 18:01:26 +02:00
Max Brunsfeld 8b66e0aa7e WIP - Allow RpcClient to register handlers for incoming messages 2021-06-15 17:22:48 -07:00
Max Brunsfeld 3db215418c Allow RpcClient to encapsulate arbitrarily many connections 2021-06-15 14:12:42 -07:00
Max BrunsfeldandNathan Sobo e88f33851e Flatten protobuf message namespace
* Remove `FromClient`/`FromServer` distinction.
* Remove `subscribe` concept - clients will need to handle
  unprompted messages from the server.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-15 13:06:50 -07:00
Antonio Scandurra 301531ae04 Test RpcClient::subscribe 2021-06-15 10:46:23 +02:00
Antonio ScandurraandMax Brunsfeld cd1a4c49cf Use a fixed-length delimiter for encoding/decoding messages in RPC
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-06-14 18:33:34 +02:00
Max Brunsfeld b2b1ce5e81 Start work on RpcClient 2021-06-11 14:47:13 -07:00
Max BrunsfeldandAntonio Scandurra 86ff599285 Use tiny_http for handling login HTTP request
Our manual HTTP parsing and encoding was not working with Safari.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-06-11 10:28:00 -07:00
Antonio Scandurra 4efebdaa52 Switch CreateWorktreeResponse::worktree_id to be a i32
Apparently all IDs in `sqlx` on the server are represented as i32s.
2021-06-11 16:15:06 +02:00
Max BrunsfeldandAntonio Scandurra 20542f54ef Start work on connecting to RPC endpoint
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-06-10 22:12:04 -07:00
Max Brunsfeld 9c5c9fdc36 Add initial messages for setting up a worktree share 2021-06-09 18:14:30 -07:00
Max BrunsfeldandNathan Sobo a10f4bb4ff Introduce zed_rpc::proto module containing protobuf stream logic
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-09 13:19:12 -07:00
Max Brunsfeld 3214fef727 Ensure that base64 token values are URL-safe 2021-06-08 13:58:38 -07:00
Max Brunsfeld 327c20510b Introduce zed-rpc with some shared auth utilities 2021-06-08 13:07:06 -07:00