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
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 Brunsfeld
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 Scandurra
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 Scandurra
e551894189
Add RpcClient::subscribe
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-06-14 19:06:28 +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
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 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
Max Brunsfeld
71d64a837e
Avoid crash when user denies keychain access
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-06-11 09:47:24 -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 Brunsfeld
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
e897d1c98e
Update collaboration doc
...
Add some diagrams
2021-06-10 14:27:05 -07:00
Max Brunsfeld
9c5c9fdc36
Add initial messages for setting up a worktree share
2021-06-09 18:14:30 -07:00
Max Brunsfeld
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
ee52a5d061
Store credentials in the keychain on login
2021-06-08 18:08:09 -07:00
Max Brunsfeld
5673f116c9
Add a platform API for accessing the keychain
2021-06-08 17:44:45 -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
Max Brunsfeld
db3e01a12c
Start work on a login command
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-06-07 18:15:11 -07:00
Nathan Sobo
3a932cc9bf
Rename MainThreadPlatform to ForegroundPlatform and fix crash on quit
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-07 17:42:49 -06:00
Nathan Sobo
6daddf5146
Allow platform references to be sent to background threads
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-07 17:35:27 -06:00
Nathan Sobo
ebbe517bfa
Move path prompting methods to MainThreadPlatform
...
They need to call back into the main thread, meaning the callbacks can't be Send + Sync.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-07 17:32:03 -06:00
Nathan Sobo
7b98994d1f
Rename PlatformLifecycle to MainThreadPlatform
...
Don't love it, but at least it's accurate.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-06-07 17:21:34 -06:00
Nathan Sobo
14b519f78d
Extract a platform::Lifecycle trait
...
This will allow us to make platform::Platform be Send + Sync and keep the lifecycle on the main thread.
2021-06-07 17:02:24 -06:00
Max Brunsfeld
748c101076
Fix markdown formatting
2021-06-06 22:06:00 -07:00
Max Brunsfeld
ad71e2404b
Add login notes to the collaboration plans doc
2021-06-04 18:24:26 -07:00
Max Brunsfeld
4a07e48bf0
Merge pull request #81 from zed-industries/versioned-anchors
...
Represent edit positions and anchors as versioned offsets
2021-06-04 11:12:44 -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
Max Brunsfeld
33472ebf7e
Ensure fragments are only consumed once in apply_local_edit
2021-06-03 13:51:13 -07:00