Max Brunsfeld
65e4e78cd7
Add unit test for worktree update messages, fix minor issues
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-07-05 17:55:48 -07:00
Antonio Scandurra
53adaa77c1
Propagate file system changes to remote worktrees
2021-07-05 17:54:48 +02:00
Antonio Scandurra
2a779d3529
Rename {Add,Remove}Guest
to {Add,Remove}Peer
2021-07-05 10:24:39 +02:00
Max Brunsfeld
08991db882
Implement Copy for peer::Receipt
2021-07-02 15:54:42 -07:00
Antonio Scandurra
569a4a1e2d
WIP: Save remote buffers
2021-07-02 17:02:17 +02:00
Antonio Scandurra
b8bddd6c05
Fix tests
2021-07-02 15:18:08 +02:00
Antonio Scandurra
7ae1d9e997
Send also the currently active selection sets when serializing a buffer
2021-07-02 11:29:36 +02:00
Max Brunsfeld
9d51fe88e9
Serialize RPC sends and responses using a channel
2021-07-01 22:02:27 -07:00
Antonio Scandurra
da7bd8439b
Report SelectionSet
deletion operations correctly
2021-07-01 12:54:16 +02:00
Antonio Scandurra
ed9036f3fc
Send a CloseWorktree
message when a shared Worktree
is dropped
2021-06-30 17:00:29 +02:00
Antonio Scandurra
1d53d43d6f
Store online peers when joining a worktree
2021-06-30 15:07:33 +02:00
Antonio Scandurra
7704291432
Maintain a set of peers as they join and leave the worktree
2021-06-30 13:22:22 +02:00
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 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
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
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 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
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
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
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 Brunsfeld
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 Brunsfeld
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 Scandurra
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 Brunsfeld
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 Scandurra
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 Brunsfeld
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