Commit Graph
551 Commits
Author SHA1 Message Date
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 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
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 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 4d28d03e3f Rename handle_message to on_message 2021-06-17 17:25:10 +02:00
Antonio Scandurra 82ac7e2072 Move handle_messages into an extension method for Arc<Peer> 2021-06-17 16:32:28 +02:00
Antonio Scandurra d243395e06 Use an i32 for user_id in RPC authentication message 2021-06-17 14:51:06 +02: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
Antonio ScandurraandNathan Sobo 5e4872fdf8 Replace Request and Message with a single TypedEnvelope
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-16 17:43:53 +02:00
Antonio Scandurra 8112efd522 Replace callback-based requests/messages with streams 2021-06-16 14:26:54 +02:00
Max Brunsfeld 8b66e0aa7e WIP - Allow RpcClient to register handlers for incoming messages 2021-06-15 17:22:48 -07:00
Max BrunsfeldandNathan Sobo d3a3ad2820 Remove gpui dependency from rpc_client
Also, avoid any contention between connections.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-15 15:18:40 -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 546ce14cb9 Start sharing paths with the server via RPC 2021-06-15 16:14:08 +02:00
Antonio Scandurra cf67fc6589 Simplify saving RpcClient by removing the generic connection param 2021-06-15 15:36:58 +02:00
Antonio Scandurra 3e391c0785 Move worktree sharing down into Workspace
This will make it easier to pick a worktree and give it an `RpcClient`.
2021-06-15 15:14:17 +02:00
Antonio Scandurra 7b96888ab1 Ensure that futures returns from RpcClient are 'static 2021-06-15 11:15:55 +02:00
Antonio Scandurra 04bf84af44 💄 2021-06-15 11:03:14 +02:00
Antonio Scandurra 1d9cfe6b64 Use an async Mutex to guard access to write stream in RpcClient 2021-06-15 10:57:27 +02:00
Antonio Scandurra 301531ae04 Test RpcClient::subscribe 2021-06-15 10:46:23 +02:00
Max BrunsfeldandAntonio Scandurra 1c597ed998 Report io errors when sending payloads for RpcClient methods
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-06-14 16:11:24 -07:00
Antonio ScandurraandMax Brunsfeld a87d4db155 Change RpcClient methods to take shared references
This will make it easier to spawn a future on gpui's executors
when calling `RpcClient` methods.

Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-06-14 19:59:46 +02:00
Antonio ScandurraandMax Brunsfeld e551894189 Add RpcClient::subscribe
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-06-14 19:06:28 +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
Antonio Scandurra 0ddbe0c757 Make drop test more reliable 2021-06-14 17:27:00 +02:00
Antonio Scandurra 8e3f40bfdd Close connection when RpcClient is dropped and add unit tests 2021-06-14 14:32:49 +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 ee52a5d061 Store credentials in the keychain on login 2021-06-08 18:08:09 -07:00
Max Brunsfeld 327c20510b Introduce zed-rpc with some shared auth utilities 2021-06-08 13:07:06 -07:00
Max BrunsfeldandNathan Sobo db3e01a12c Start work on a login command
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-07 18:15:11 -07:00
Antonio Scandurra 5d1afaf484 Reduce Fragment size by not storing ReplicaId twice 2021-06-04 18:03:44 +02:00
Antonio Scandurra 8f8c6c8add Delete unused Insertion struct 2021-06-04 16:42:32 +02:00
Antonio Scandurra 125be2f07a Save an allocation when editing locally 2021-06-04 13:42:37 +02:00
Antonio Scandurra e071d40058 Use a single Bias enum everywhere 2021-06-04 13:39:57 +02:00
Antonio Scandurra 3b9d760f2b Add blanket implementation for (D1, D2) when they impl Dimension 2021-06-04 12:36:38 +02:00
Antonio Scandurra f016400ddc Remove FullOffset 2021-06-04 12:34:35 +02:00
Antonio Scandurra eaf09463be Remove commented out code 2021-06-04 11:10:53 +02:00
Antonio Scandurra ec07b8ca1d Change fragment's visibility only if it was visible at a version 2021-06-04 11:07:52 +02:00
Antonio Scandurra 9bf3038857 Coalesce contiguous ranges when editing locally 2021-06-04 10:08:52 +02:00
Max Brunsfeld 23c4621b36 Reenable undo/redo in randomized concurrent edit test
Currently this fails
2021-06-03 17:41:51 -07:00
Max Brunsfeld de9626ac12 Get random concurrent edits test passing, except for undo 2021-06-03 17:38:30 -07:00
Max Brunsfeld 6f0ef36ec4 Make SEED and ITERATIONS variables work independently
This way, after finding one failure, you can still search for a
simpler failure by running another series of iterations starting
from the next seed.
2021-06-03 16:49:55 -07:00
Max Brunsfeld f6bb1a9572 Implement Ord manually for time::Lamport 2021-06-03 15:33:43 -07:00