Max Brunsfeld
6120d6488b
Start work on following in multi-buffers
2022-11-29 14:50:43 -08:00
Max Brunsfeld
6d9b55a654
Send full multibuffer anchors to following peers
2022-11-28 18:00:38 -08:00
Julia
03cfd23ac5
Bump protocol version back down as proto changes are non-breaking
2022-11-23 13:40:49 -05:00
Julia
a666ca3e40
Collapse proto Point into the one kind of use case, utf-16 coords
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-11-23 13:28:44 -05:00
Julia
e51cbf67ab
Fixup compile errors
2022-11-22 02:49:47 -05:00
Antonio Scandurra
4c1b4953c1
Remove version from Room
...
We won't need it once we add the per-room lock.
2022-11-18 20:18:48 +01:00
Antonio Scandurra
4f39181c4c
Revert "Don't replace newer diagnostics with older ones"
...
This reverts commit 71eeeedc05
.
2022-11-17 16:57:40 +01:00
Antonio Scandurra
e7e45be6e1
Revert "Wait for previous UpdateFollowers
message ack before sending new ones"
...
This reverts commit fe93263ad4
.
2022-11-17 16:57:32 +01:00
Antonio Scandurra
fe93263ad4
Wait for previous UpdateFollowers
message ack before sending new ones
2022-11-17 14:12:00 +01:00
Antonio Scandurra
71eeeedc05
Don't replace newer diagnostics with older ones
2022-11-17 12:21:51 +01:00
Nathan Sobo
e5f05c9f3b
Move leave_project from Store to db module
2022-11-16 17:45:47 -07:00
Antonio Scandurra
faf265328e
Wait for acknowledgment before sending the next diagnostic summary
2022-11-16 16:03:01 +01:00
Antonio Scandurra
4b1dcf2d55
Always use strings to represent paths over the wire
...
Previously, the protocol used a mix of strings and bytes without any consistency.
When we go to multiple platforms, we won't be able to mix encodings of paths anyway.
We don't know this is the right approach, but it at least makes things consistent
and easy to read in the database, on the wire, etc. Really, we should be using entry
ids etc to refer to entries on the wire anyway, but there's a chance this is the
wrong decision.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-11-15 16:46:17 +01:00
Antonio Scandurra
974ef967a3
Move Store::join_project
to Db::join_project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-11-15 16:37:51 +01:00
Antonio Scandurra
3e8fcb04f7
Finish implementing Db::update_project
2022-11-15 09:01:51 +01:00
Antonio Scandurra
40073f6100
Wait for acknowledgment before sending the next project update
2022-11-14 15:32:49 +01:00
Antonio Scandurra
9902211af1
Leave room when connection is dropped
2022-11-14 10:13:36 +01:00
Antonio Scandurra
c213c98ea4
Remove calls
table and use just room_participants
2022-11-11 15:22:04 +01:00
Antonio Scandurra
6871bbbc71
Start moving Store
state into the database
2022-11-11 12:06:43 +01:00
Antonio Scandurra
dce21900a7
Bump protocol version
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-10-24 17:06:40 +02:00
Antonio Scandurra
219793afcc
Merge remote-tracking branch 'origin/main' into screen-sharing
2022-10-19 10:04:56 +02:00
Antonio Scandurra
2c4f003897
Tell clients their peer id on connection in Hello message
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-10-18 18:42:55 +02:00
Mikayla Maki
895aeb033f
Merge branch 'main' into breadcrumbs
2022-10-17 16:51:38 -07:00
K Simmons
09a0b3eb55
increment protocol version
2022-10-17 16:20:51 -07:00
K Simmons
40c3e925ad
Add cursor blink setting and replicate cursor shape to remote collaborators
2022-10-17 16:20:47 -07:00
Mikayla Maki
5bb2edca8b
Added absolute path info to remote worktrees (updated protocol version)
2022-10-17 15:27:46 -07:00
Antonio Scandurra
81d83841ab
WIP: Start integrating screen-sharing
2022-10-17 14:50:05 +02:00
Antonio Scandurra
c9225bb87c
WIP: Start integrating with LiveKit when creating/joining rooms
2022-10-17 12:20:55 +02:00
Antonio Scandurra
f28cc5ca0c
Preserve buffer identity when underlying entry temporarily disappears
2022-10-13 09:10:10 +02:00
Antonio Scandurra
ec19f0f8e9
Remove unnecessary async from Peer::add_connection
2022-10-12 15:32:39 +02:00
Antonio Scandurra
4504b36c8f
Show a different message when participant is active on unshared project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-10-11 15:24:31 +02:00
Antonio Scandurra
bf488f2027
Show project root names when displaying incoming call notification
2022-10-11 10:59:36 +02:00
Nathan Sobo
b8c2acf0f2
Show worktree root names when sharing additional projects on a call
...
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2022-10-10 17:56:03 -06:00
Antonio Scandurra
afaacba41f
Merge remote-tracking branch 'origin/main' into room
2022-10-10 15:43:38 +02:00
Antonio Scandurra
f9fb3f78b2
WIP: Render active call in contacts popover
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-10-07 17:01:48 +02:00
Antonio Scandurra
386de03f46
Fix room disconnection problems when creating room and sharing project
2022-10-07 14:39:11 +02:00
Antonio Scandurra
d7cea646fc
Include a busy
field in proto::Contact
2022-10-07 12:21:56 +02:00
Antonio Scandurra
95e08edbb8
Always include room id in protos
...
This is redundant, but it futures-proof the ability to talk about
multiple rooms at any given time and feels safer in terms of race
conditions.
2022-10-06 15:20:49 +02:00
Antonio Scandurra
4cb306fbf3
Implement call cancellation
2022-10-06 15:12:27 +02:00
Julia
836b536a90
Merge pull request #1632 from zed-industries/git-gutter
...
Tracking PR: Git gutter
2022-10-04 15:12:28 -04:00
Antonio Scandurra
fceba6814f
Automatically share project when creating the room
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-10-04 19:25:48 +02:00
Antonio Scandurra
456dde200c
Implement Room::set_location
2022-10-04 11:46:01 +02:00
Julia
e6487de069
Rename head text to indicate that it's not always going to be from head
...
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2022-10-03 15:11:06 -04:00
Max Brunsfeld
4477f95ee6
Set staff
user property in telemetry
...
Co-authored-by: Joseph Lyons <joseph@zed.dev>
2022-10-03 10:52:57 -07:00
Mikayla Maki
52dbf2f9b8
add proto stuff
2022-10-02 18:01:37 -07:00
Julia
7f84abaf13
Increment protocol version again for previous commit
2022-10-02 14:11:35 -04:00
Mikayla Maki
512f817e2f
Added proto messages for updating the head text
2022-10-01 18:18:35 -07:00
Antonio Scandurra
964a5d2db7
WIP: require sharing projects on a given Room
2022-09-30 18:21:47 +02:00
Antonio Scandurra
074b8f18d1
Rip out project registration and use sharing/unsharing instead
2022-09-30 12:23:57 +02:00
Antonio Scandurra
be8990ea78
Remove project join requests
2022-09-30 11:35:50 +02:00
Max Brunsfeld
5d09083a7d
Identify users in amplitude via a separate 'metrics_id' UUID
2022-09-29 13:15:21 -07:00
Antonio Scandurra
b35e8f0164
Remove projects from contact updates
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-29 19:40:36 +02:00
Julia
fcf11b1181
Bump protocol version to be ahead of main
2022-09-29 13:16:02 -04:00
ForLoveOfCats
2a14af4cde
Load a file's head text on file load just to get started
2022-09-29 13:16:01 -04:00
Antonio Scandurra
80ab144bf3
Ring users upon connection if somebody was calling them before connecting
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-28 11:33:38 +02:00
Antonio Scandurra
e55e7e4844
Leave room when Room
entity is dropped
2022-09-28 11:33:38 +02:00
Antonio Scandurra
bb9ce86a29
Introduce the ability of declining calls
2022-09-28 11:33:38 +02:00
Antonio Scandurra
55b095cbd3
Implement joining a room and sending updates after people join/leave
2022-09-28 11:33:38 +02:00
Antonio Scandurra
4a9bf8f4fe
Introduce call infrastructure
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-09-28 11:33:38 +02:00
Antonio Scandurra
ebb5ffcedc
Introduce the ability of creating rooms on the server
2022-09-28 11:33:38 +02:00
Julia
f3395cf4fd
Add editor action to manually invoke buffer format
2022-09-22 18:21:05 -04:00
Antonio Scandurra
954695f5fe
Stream buffer ops in the background when creating buffer for peers
2022-08-23 16:05:56 +02:00
Antonio Scandurra
ec48ffc9da
Simplify proto::Buffer
to express its fields in terms of operations
2022-08-23 12:40:20 +02:00
Antonio Scandurra
9c9bf07e40
Create buffers for remote collaborators out of band
...
Previously, we would use `Project::serialize_buffer_for_peer` and
`Project::deserialize_buffer` respectively in the host and in the
guest to create a new buffer or just send its ID if the host thought
the buffer had already been sent.
These methods would be called as part of other methods, such as
`Project::open_buffer_by_id` or `Project::open_buffer_for_symbol`.
However, if any of the tasks driving the futures that eventually
called `Project::deserialize_buffer` were dropped after the host
responded with the buffer state but (crucially) before the guest
deserialized it and registered it, there could be a situation where
the host thought the guest had the buffer (thus sending them just the
buffer id) and the guest would wait indefinitely.
Given how crucial this interaction is, this commit switches to creating
remote buffers for peers out of band. The host will push buffers to guests,
who will always refer to buffers via IDs and wait for the host to send them,
as opposed to including the buffer's payload as part of some other operation.
2022-08-17 11:55:36 +02:00
Antonio Scandurra
9726d1f049
Bump protocol version
2022-08-17 11:31:48 +02:00
Antonio Scandurra
ab236a6008
Fix divergence bug in undo/redo
...
As part of #1405 , we changed the way we performed undo and redo to
support combining transactions that were not temporally adjacent for
IME purposes.
We introduced a bug with that release that caused divergence
when performing undo: the bug was caused by only changing the visibility
of fragments whose insertion id was contained in the undo operation. However,
an undo operation also affects deletions which we were mistakenly not
considering. Randomized tests caught this but I guess we didn't run enough
of them.
2022-08-17 11:30:04 +02:00
ForLoveOfCats
8ba2f77148
One big cleanup pass of clippy lints
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2022-08-10 16:51:01 -07:00
ForLoveOfCats
5149c15329
Add "go to type definition" action
2022-07-29 11:41:08 -04:00
Max Brunsfeld
09c0211c96
Bump the RPC protocol version
2022-07-25 11:36:52 -07:00
Antonio Scandurra
0fc7308932
Allow grouping local transactions even if remote peer edits in between
2022-07-23 09:27:21 +02:00
Max Brunsfeld
7c3421e041
Remove versioned offset ranges from transactions and undo operations
...
Now, instead of using these versioned offset ranges, we locate the
fragments associated with a transaction using the transaction's
edit ids. To make this possible, buffers now store a new map called
`insertion_slices`, which lets you look up the ranges of insertions
that were affected by a given edit.
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-07-22 17:28:55 -07:00
Isaac Clayton
f6b6d19041
Add wasmtime and fix zstd version conflict
2022-07-07 15:01:15 +02:00
Antonio Scandurra
eac76df0ac
Transmit new line ending when buffer is reloaded
2022-07-05 08:01:14 +02:00
Max Brunsfeld
9804c683c0
Rename NewlineStyle -> LineEnding
2022-07-04 12:47:40 -07:00
Antonio Scandurra
3480b50920
Detect buffer newline style and honor it when saving
2022-07-04 17:40:26 +02:00
Antonio Scandurra
d3b9eca791
Merge branch 'main' into user-timeline
2022-07-04 09:23:16 +02:00
Antonio Scandurra
484af8c7c4
Split worktree updates when a peer joins an already-shared project
2022-06-30 16:49:56 +02:00
Antonio Scandurra
09bb3ddeb8
Split worktree updates and only send 256 entries at a time
2022-06-30 14:06:41 +02:00
Antonio Scandurra
639cd71a3b
Record worktree extensions every 5 minutes
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-06-29 16:58:19 +02:00
Antonio Scandurra
e3cfc7b3ce
Register project activity for offline projects as well
2022-06-29 14:55:04 +02:00
Keith Simmons
f73af85218
bump protocol version and fix panic from storing display points instead of anchors
2022-06-27 15:10:36 -07:00
Keith Simmons
848445455d
Working underline based on symbol origin
2022-06-24 15:05:35 -07:00
Antonio Scandurra
555847449b
Use BTreeMap
in Server
so we release memory when maps are cleared
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-06-23 18:02:17 +02:00
Max Brunsfeld
4cb68b2966
Prioritize keepalive pings over incoming message handling in Peer
2022-06-22 14:44:05 -07:00
Max Brunsfeld
a14b626927
Enable env log in peer tests
2022-06-22 14:42:20 -07:00
Antonio Scandurra
f2d134917e
Remove non-determinism from Peer
caused by smol's timeout
helper
2022-06-22 18:39:12 +02:00
Antonio Scandurra
052222c91c
Bump protocol version
2022-06-17 12:39:59 +02:00
Antonio Scandurra
6f7a893ec9
Determine Buffer::is_dirty
based on the rope's fingerprint
2022-06-17 12:38:25 +02:00
Antonio Scandurra
3a1d0dd692
Track active projects in metrics
...
An active project is defined as a project where there has been at
least a buffer edit, a join request/response, or a follow update
in the last minute.
2022-06-15 10:33:20 +02:00
Antonio Scandurra
f89977ba41
Bump protocol version
2022-06-14 15:21:37 +02:00
Antonio Scandurra
68093342e7
Broadcast only visible worktree root names
2022-06-14 15:15:23 +02:00
Max Brunsfeld
36ce3eb5ef
Handle messages associated with LSP WorkDoneProgress::Begin
messages
...
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2022-06-08 10:26:41 -07:00
Keith Simmons
9d5111e86a
Merge pull request #1078 from zed-industries/lsp-hover
...
LSP Hover Information
2022-06-07 14:45:43 -07:00
Keith Simmons
67d9abc00f
Move highlighting to editor code and implement proto message types for hover response
2022-06-07 11:54:52 -07:00
Isaac Clayton
470c70d394
Get minimal POC working
2022-06-07 11:52:52 -07:00
Antonio Scandurra
bbfa6580a4
Avoid refreshing diagnostics for language servers that didn't update
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-06-07 19:05:06 +02:00
Max Brunsfeld
98b54763b9
Bump protocol version
2022-06-02 18:06:29 -07:00
Max Brunsfeld
724affc442
Upgrade deps to avoid multiple versions of transitive deps
...
* env_logger
* prost-build
* bindgen
2022-06-02 17:38:33 -07:00
Max Brunsfeld
d11beb3c02
Change project registration RPC APIs to smooth out UI updates
...
* Make `UnregisterProject` a request. This way the client-side project can wait
to clear out its remote id until the request has completed, so that the
contacts panel can avoid showing duplicate private/public projects in the
brief time after unregistering a project, before the next UpdateCollaborators
message is received.
* Remove the `RegisterWorktree` and `UnregisterWorktree` methods and replace
them with a single `UpdateProject` method that idempotently updates the
Project's list of worktrees.
2022-06-02 17:32:43 -07:00
Antonio Scandurra
339069b1d3
Cap MessageStream
buffer size to 1MB
...
We temporarily let it grow when the message size exceed the limit,
but restore the buffer's capacity shortly after. This ensures that,
for each connection in its entire lifetime, we only ever use 1MB.
2022-05-31 11:16:32 +02:00