Keith Simmons
ec57c1f4ac
Properly dedup restarts of language servers
2022-03-29 17:46:39 -07:00
Keith Simmons
6d91fd078c
Add restart-lsp keybinding
2022-03-29 17:24:23 -07:00
Max Brunsfeld
158d987965
Start work on allowing language servers to support multiple languages
2022-03-29 16:57:18 -07:00
Keith Simmons
0e1d371a67
Add typescript language server
...
Currently not tested for tsx files
Co-authored-by: Max Brunsfeld <max@zed.dev>
2022-03-29 13:42:21 -07:00
Max Brunsfeld
a8600e76a3
Make language's language server config non-optional
2022-03-28 18:14:49 -07:00
Antonio Scandurra
cbd266052d
Allow returning futures in fake language server request handlers
2022-03-28 10:44:32 +02:00
Nathan Sobo
a3e9a3afbf
Clear out project registration and sharing state on disconnect
...
Previously, we weren't fully clearing the state associated with projects and worktrees when losing connection. This caused us to not see guest avatars disappear and not be able to re-share upon reconnect.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-03-25 10:15:08 -06:00
Antonio Scandurra
865cd1960f
Preserve disk-based diagnostics whose ranges intersect with an edit since save
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-25 15:35:31 +01:00
Antonio Scandurra
a739c362d9
Rename editor::Event::Edited
to editor::Event::BufferEdited
...
This is to distinguish it from a new event we're about to add which
represent edits originating from that specific editor.
2022-03-24 08:55:46 +01:00
Nathan Sobo
ee9ed936e4
Don't try keychain after authentication fails
...
Previously, we were achieving this by deleting the keychain item, but this can sometimes fail which leads to an infinite loop. Now, we explicitly never try the keychain when reattempting authentication after authentication fails.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-03-23 12:15:36 -06:00
Antonio Scandurra
e5a99cf8cd
Stop following when leader disconnects
2022-03-22 11:16:04 +01:00
Antonio Scandurra
3117554568
Automatically unfollow when editing, scrolling or changing selections
2022-03-22 09:17:01 +01:00
Antonio Scandurra
f0b7bd6e17
Serialize initial follow state in leader and reflect it in follower
2022-03-18 10:22:13 +01:00
Max Brunsfeld
0fdaa1d715
WIP
2022-03-17 17:53:49 -07:00
Antonio Scandurra
4bbfd0918e
Start defining follow protocol
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-17 16:50:29 +01:00
Antonio Scandurra
5d14c9abdf
Introduce workspace::register_project_item
...
This lets downstream crates like `editor` define how project items should be
opened.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-17 15:54:34 +01:00
Antonio Scandurra
bff414cfbc
Remove Editor::find_or_create
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-17 15:13:47 +01:00
Antonio Scandurra
6446660c88
Rename open_buffer_for_path
to open_buffer
2022-03-17 11:42:13 +01:00
Nathan Sobo
728c708150
WIP: Massage opening of editors
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-03-16 17:40:09 -06:00
Nathan Sobo
0036e5c86c
Replace ProjectEntry struct with ProjectEntryId
...
Previously, we tracked the worktree_id and entry_id separately, but now that entry ids are unique across all worktrees this is unnecessary.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Keith Simmons <keith@the-simmons.net>
2022-03-16 15:59:47 -06:00
Max Brunsfeld
a88320dc5f
Remove workspace::Item trait
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Keith Simmons <keith@zed.dev>
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2022-03-16 13:34:06 -07:00
Antonio Scandurra
7155dabf5b
Fade out unnecessary code
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-15 15:51:59 +01:00
Antonio Scandurra
021699e51c
Implement shift-f8
to go to previous diagnostic
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-15 15:13:23 +01:00
Max Brunsfeld
3a439f141d
Open settings file in new window if current window isn't local
...
Co-Authored-By: Keith Simmons <keith@zed.dev>
2022-03-14 17:12:07 -07:00
Max Brunsfeld
5822b47b74
Ensure that worktrees' entry ids are unique across the project
...
Fixes #512
2022-03-14 12:36:56 -07:00
Max Brunsfeld
20fed599b2
Start work on relaying settings to language servers
2022-03-11 17:36:27 -08:00
Antonio Scandurra
18b1e9d35f
Don't starve main thread when lots of messages/events arrive at once
2022-03-11 10:09:13 +01:00
Antonio Scandurra
7a454003fe
Show the last in-progress task from language servers
2022-03-11 09:59:13 +01:00
Antonio Scandurra
5157b42896
Extract a LanguageServerStatus
struct
2022-03-10 18:43:56 +01:00
Antonio Scandurra
45fb470f4d
Display language server name in status bar
2022-03-10 16:48:43 +01:00
Antonio Scandurra
4243f0c339
Render pending language server work in status bar
2022-03-10 16:09:47 +01:00
Antonio Scandurra
4bbf5ed0b9
Listen to all LSP progress notifications and broadcast them to peers
2022-03-10 12:00:33 +01:00
Antonio Scandurra
7546ede288
Split language server initialization from construction
...
This gives clients a chance to register to notifications.
2022-03-09 12:31:21 +01:00
Antonio Scandurra
ef1ec88523
Remove delegate support from GPUI
...
We added this because we thought it would save some allocations when
sending operations given that we could move them to the delegate upon
notifying it, but the reality is that we serialize operations and that
only requires a reference.
2022-03-09 10:48:52 +01:00
Antonio Scandurra
0a9595b5fa
Notify all language servers only when a buffer is saved
...
Other notifications such as opening, closing or changing a document
are still tied to the buffer's language.
2022-03-09 10:44:03 +01:00
Max Brunsfeld
4cb4b99c56
Assign buffer's completion triggers from LSP capabilities
...
Also, make LanguageServer::new() async. The future resolves
once the server is initialized.
2022-03-08 17:41:52 -08:00
Antonio Scandurra
317a1bb07b
Remove language servers from buffers
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
Co-Authored-By: Keith Simmons <keith@zed.dev>
2022-03-08 15:16:07 -08:00
Antonio Scandurra
6662ba62a3
Move DidSaveTextDocument
notification from Buffer
to Project
2022-03-08 11:35:54 +01:00
Antonio Scandurra
51d5ed48f0
Remove unused CloseBuffer
message
2022-03-08 11:17:20 +01:00
Antonio Scandurra
d6c8fdb3c4
Send buffer operations via the Project
instead of Worktree
2022-03-08 11:11:25 +01:00
Max Brunsfeld
5cc5fa2f93
Populate environment from shell
...
Co-Authored-By: Keith Simmons <keith@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-07 16:39:50 -08:00
Max Brunsfeld
1982a8c27d
Put vector clock serialization logic alongside other serialization logic
...
This way, the `clock` crate doesn't depend on the `rpc` crate.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-04 13:54:07 -08:00
Nathan Sobo
a72d58a28c
Merge branch 'main' into disconnected-status
2022-03-04 10:07:26 -07:00
Antonio Scandurra
b21d91db22
Render overlay after remote project becomes read-only
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-04 17:28:18 +01:00
Antonio Scandurra
6ee5e96d7b
Merge pull request #534 from zed-industries/create-buffers-via-project
...
Open untitled buffers via the `Project`
2022-03-04 16:18:02 +01:00
Antonio Scandurra
29cad65ce0
Open untitled buffers via the Project
...
This allows the registration of such buffers in the project, which is necessary
to correctly support `::save_buffer_as` and opens the door to sharing untitled
buffers with guests in the future.
Note that, for now, this disallows guests to create untitled buffers in the
current window and will create a new window instead. This is because we don't
yet have a global way of allocating a buffer's remote id (nor a way of saving
such buffers in the host's worktree) and we instead rely on the local model ID,
which could clash with the host's buffer IDs.
I think we should revisit this once guests can share their untitled buffers
with the host and other remote peers, as well as once we start keying
operations by entry id.
2022-03-04 15:25:39 +01:00
Antonio Scandurra
d8ef3a5d61
Support formatting in fake LSP capabilities
2022-03-04 11:24:18 +01:00
Antonio Scandurra
46da80d726
Use LSP range formatting when document formatting is not available
2022-03-04 10:13:17 +01:00
Antonio Scandurra
dc5a09b3f7
Merge pull request #525 from zed-industries/preserve-worktrees
...
Grow worktrees monotonically when sharing and move most messages to the background
2022-03-04 09:48:18 +01:00
Max Brunsfeld
19658139b1
Avoid infinite loop when a language server fails to start
2022-03-03 18:13:38 -08:00
Max Brunsfeld
05df1dfae9
Disable doctests for all libraries
...
We don't use them, and they add a lot of noise to the test output
when running all tests in the workspace.
2022-03-03 16:15:56 -08:00
Max Brunsfeld
3c242a43d2
Wait for LSP capabilities to be initialized before checking them
2022-03-03 15:59:03 -08:00
Max Brunsfeld
81627a0f14
Avoid sending unhandled LSP requests to JSON language server
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-03 13:39:40 -08:00
Antonio Scandurra
410ee124af
Maintain remote worktrees correctly when building updates
...
This accidentally regressed in 53327e2
.
2022-03-03 16:13:17 +01:00
Antonio Scandurra
c613b22619
Ignore diagnostics received for invisible worktrees
2022-03-03 13:58:55 +01:00
Antonio Scandurra
14d26eeedc
Move several buffer-related messages to the background
2022-03-03 12:18:19 +01:00
Antonio Scandurra
1c14168f38
Ensure no two worktrees can point to the same root path
...
This could happen because there was a pause between creating the worktree
and adding it to the list of tracked local worktrees, and so we might end
up adding the same worktree twice when calling `create_local_worktree` in
rapid succession.
2022-03-03 10:54:52 +01:00
Antonio Scandurra
d171d8ccc4
Change the definition of check_invariants
...
- On the host, ensure that only one worktree can exist for a given absolute
path. Asserting about buffers was cool but I think should be tackled in the
context of leaning more on entry ids for collaboration (vs. buffer ids).
- On the guest, ensure that all the opened buffers don't contain deferred
operations.
2022-03-03 10:51:37 +01:00
Antonio Scandurra
53327e2bf0
Ensure worktree is registered/shared synchronously
2022-03-03 10:10:53 +01:00
Max Brunsfeld
d4ae38fcee
Check projects' buffers have unique absolute paths in random collab test
2022-03-02 14:38:16 -08:00
Max Brunsfeld
ca920e1552
Rename strong_worktrees -> visible_worktrees
2022-03-02 14:38:16 -08:00
Antonio Scandurra
68cfce1fb8
Rename weak
to visible
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-03-02 14:38:16 -08:00
Antonio Scandurra
07120d47f9
Convert weak worktree handles into strong handles when sharing
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-03-02 14:38:16 -08:00
Antonio Scandurra
efe7f61128
Use simulate_random_delay
when polling snapshot only in tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-03-01 19:17:38 +01:00
Antonio Scandurra
c661ff251d
Revert "Use async_broadcast
to emit fake FS events"
...
This reverts commit 4cfd345f9d
, because
having a bounded broadcast introduces the possibility of waiting forever
when there isn't yet a receiver processing those events.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-01 17:14:40 +01:00
Antonio Scandurra
0bb7189842
Use a weak handle to poll local worktree snapshot
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-01 17:08:10 +01:00
Antonio Scandurra
4cfd345f9d
Use async_broadcast
to emit fake FS events
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-01 15:48:15 +01:00
Antonio Scandurra
8d078ed4e2
Don't block when emitting fs events
...
Blocking could happen while processing events, which would cause the
background scanner to never make any further progress.
2022-03-01 13:08:50 +01:00
Antonio Scandurra
466db69780
Pass a reference to TestAppContext
in tests
...
This allows us to drop the context *after* we ran all futures to
completion and that's crucial otherwise we'll never drop entities
and/or flush effects.
2022-03-01 12:01:02 +01:00
Max Brunsfeld
1faaa91e52
Avoid retaining executor in the FakeFs
...
This probably isn't the *root* cause of why an executor is leaked,
but by cutting off this cyclic references, it may make it a bit easier
to track down leaks of an executor.
2022-02-28 22:40:04 -08:00
Max Brunsfeld
d1d324e42b
Never close buffers when sharing
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-28 11:36:43 -08:00
Antonio Scandurra
400a2fce58
Don't use a bounded channel for signaling that buffers have been opened
...
Blocking the sender could halt deserialization for no reason if nobody
is consuming the notifications.
2022-02-28 15:26:10 +01:00
Antonio Scandurra
1313ca8415
Don't delete buffer state when calling get_open_buffer
...
...as we might be in the process of completing a request that could
open a buffer. This was causing a failure in the randomized integration
test.
2022-02-28 14:27:31 +01:00
Antonio Scandurra
abdfdcdabf
Include buffer's deferred ops when computing has_buffered_operations
2022-02-28 14:22:24 +01:00
Antonio Scandurra
720056d0db
Add unit test for project search
2022-02-28 11:10:22 +01:00
Nathan Sobo
dd6f8d20a3
Remove carriage returns
2022-02-27 07:47:46 -07:00
Nathan Sobo
e822c6a64e
Handle project-wide search on guests
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-25 15:09:47 -07:00
Antonio Scandurra
88bfe5acb0
Allow splitting project find and maintain the searches in sync
2022-02-25 16:20:02 +01:00
Antonio Scandurra
29e035a70d
Don't report a buffer when it doesn't contain any matches
2022-02-25 15:40:19 +01:00
Antonio Scandurra
2147db9b41
Open searched buffers in parallel
2022-02-25 12:29:50 +01:00
Antonio Scandurra
561123d6de
Avoid extra smol::channel
when iterating through snapshot paths
2022-02-25 11:49:33 +01:00
Antonio Scandurra
6a0cca7178
Add a fast path for when the search query is empty
2022-02-25 10:58:45 +01:00
Antonio Scandurra
0bf944e038
Use Project::search
in ProjectFind
and show search results
2022-02-25 10:32:45 +01:00
Antonio Scandurra
6d9b003634
WIP: Start sketching in ProjectFindView
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-24 19:07:00 +01:00
Antonio Scandurra
e83d1fc9fc
Start on a regex implementation of SearchQuery
2022-02-24 16:33:31 +01:00
Antonio Scandurra
76cc9b347e
Extract a search
module
2022-02-24 15:55:13 +01:00
Antonio Scandurra
6a323ce2dd
Implement a basic project-wide search using Aho-Corasick
2022-02-24 15:33:56 +01:00
Antonio Scandurra
26f7f4f5b2
WIP: Remove ripgrep and start matching query for paths ourselves
2022-02-24 12:33:28 +01:00
Antonio Scandurra
119bfaa99f
WIP
2022-02-24 11:57:53 +01:00
Antonio Scandurra
fed6f708c0
Start on project-wide find
2022-02-24 11:57:53 +01:00
Antonio Scandurra
8fa23c702c
Store ops if buffer handle can't be upgraded and buffer requests are in-flight
2022-02-24 09:32:31 +01:00
Max Brunsfeld
a6613d5345
Store operations for unknown buffers when there are outstanding buffer RPC requests
2022-02-23 20:35:05 -08:00
Max Brunsfeld
6060077444
Remove unused pending_updates field from RemoteWorktree
2022-02-23 16:59:39 -08:00
Max Brunsfeld
170487a528
Fix race conditions with LSP requests that return buffers
...
* Avoid panic when registering a buffer that was previously open,
and whose weak handle was still present in the open_buffers map.
* Avoid releasing any buffers while a request is outstanding which
could return a reference to a buffer.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-23 15:26:01 -08:00
Nathan Sobo
17c9aa1819
Remove ShareWorktree message
...
Instead, create an empty worktree on guests when a worktree is first *registered*, then update it via an initial UpdateWorktree message.
This prevents the host from referencing a worktree in definition RPC responses that hasn't yet been observed by the guest. We could have waited until the entire worktree was shared, but this could take a long time, so instead we create an empty one on guests and proceed from there.
We still have randomized test failures as of this commit:
SEED=9519 MAX_PEERS=2 ITERATIONS=10000 OPERATIONS=7 ct -p zed-server test_random_collaboration
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-23 11:56:09 -07:00
Antonio Scandurra
d1b4384f80
WIP
2022-02-23 19:04:22 +01:00
Antonio Scandurra
8440644dc9
Remove update_id from worktree update messages
...
We don't need this anymore because worktree updates are foreground
messages.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-23 18:35:25 +01:00
Antonio Scandurra
f3c6320eeb
Move document highlights RPC message to the background
2022-02-23 16:16:02 +01:00
Antonio Scandurra
9e173564e9
Pass an AsyncAppContext
to fake language server request handlers
2022-02-23 16:14:36 +01:00
Max Brunsfeld
e140f70e3c
Show document highlights from the language server when moving the cursor
2022-02-22 17:16:31 -08:00
Max Brunsfeld
25d45378e4
Implement find-all-references
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-22 14:27:16 -08:00
Max Brunsfeld
5d2201c4ca
Add integration test for project symbols
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-22 12:44:17 -08:00
Max Brunsfeld
669fe775df
Normalize paths passed to the FakeFs
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-22 12:43:56 -08:00
Max Brunsfeld
64098247cb
Allow languages to be registered at any time
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-22 10:35:20 -08:00
Antonio Scandurra
d7db3791d5
Show worktree root name for symbol when there are multiple worktrees
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-22 18:57:41 +01:00
Antonio Scandurra
0e4bd4b418
Sign symbols so that we can trust opening buffers for them from guests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-22 18:43:16 +01:00
Antonio Scandurra
fad335b2ba
Don't serialize the full LSP symbol when collaborating
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-22 18:08:43 +01:00
Antonio Scandurra
72ad3c2897
Render paths in ProjectSymbolsView
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-22 17:48:14 +01:00
Antonio Scandurra
f0195ac3a3
Allow opening of buffers associated with a project symbol
2022-02-22 16:26:01 +01:00
Antonio Scandurra
2a6d486d14
Retrieve project symbols over RPC
2022-02-22 14:50:06 +01:00
Antonio Scandurra
ab73343323
WIP: Start on getting project symbols over RPC
2022-02-22 12:15:38 +01:00
Antonio Scandurra
326f1f43fe
Syntax-highlight symbols based on their kind
2022-02-22 12:00:16 +01:00
Antonio Scandurra
8a8ae0fbcd
Rename CompletionLabel
to CodeLabel
and add Project::symbols
...
This only works locally for now and we haven't implemented the
`RustLsp::label_for_symbol` method yet.
2022-02-22 10:01:08 +01:00
Antonio Scandurra
8f375a5026
Start on a new project_symbols
crate
2022-02-22 08:42:12 +01:00
Max Brunsfeld
ededfff3a8
Download language servers on-demand
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-21 13:54:52 -08:00
Antonio Scandurra
aee479d615
Show message indicating when we're downloading language servers
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-21 17:25:52 +01:00
Antonio Scandurra
d2c83a7097
Use a Shared
future to represent started language servers
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-21 17:04:47 +01:00
Antonio Scandurra
1ca50d0134
Make language server initialization asynchronous
2022-02-21 09:39:28 +01:00
Max Brunsfeld
aece541255
Handle GetDefinition via LspCommand trait
2022-02-18 16:45:52 -08:00
Max Brunsfeld
de87fa58f6
Use async_trait for LspCommand
2022-02-18 16:07:30 -08:00
Max Brunsfeld
2841605328
Refactor handling of remote renames
2022-02-18 10:45:06 -08:00
Antonio Scandurra
3a6fb0a8fe
Fix warning
2022-02-18 12:21:24 +01:00
Antonio Scandurra
a682ebb08d
Add test for preparing and performing a rename
2022-02-18 12:18:01 +01:00
Antonio Scandurra
f9723ae16b
Undo temporary edits before performing rename or canceling it
...
Also, wire up remote renames.
2022-02-18 11:41:47 +01:00
Max Brunsfeld
54d7642712
Start work on renames
2022-02-17 18:01:07 -08:00
Max Brunsfeld
6d8db5f6bb
Convert some project tests to use FakeFs
...
Also, tweak some FakeFs methods to make them slightly more convenient.
2022-02-17 11:09:27 -08:00
Antonio Scandurra
303e8e1688
Wait for version before returning code actions
2022-02-17 14:46:26 +01:00
Antonio Scandurra
50a31721eb
Wait for version before returning completions
2022-02-17 11:41:19 +01:00
Antonio Scandurra
e824a6f220
Avoid stalling server when test notifications aren't being processed
2022-02-17 10:38:56 +01:00
Antonio Scandurra
1fbcea6c0d
Randomly detach requests on guest to let them race with other local ops
2022-02-17 09:05:06 +01:00
Max Brunsfeld
e3c4ce208a
Remove unnecessary waiting when handling save RPC requests
...
Add saving to the randomized integration test
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-16 17:47:21 -08:00
Max Brunsfeld
3315750361
Remove waiting for edits when handling code action RPC requests
...
Add code actions to the randomized integration test
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-16 17:34:23 -08:00
Max Brunsfeld
41ba980c9b
Remove unnecessary waiting during completion RPC requests
...
Also, add completion requests to the randomized collaboration integration test,
to demonstrate that this is valid.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-16 17:23:16 -08:00
Max Brunsfeld
c4dff12d69
Allow multiple fake language servers to be started for a given project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-16 16:10:36 -08:00
Max Brunsfeld
bee7055634
Avoid storing operations when no buffers are being loaded
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-16 11:54:49 -08:00
Max Brunsfeld
93ed34f918
In random collaboration test, compare all guests' buffers to the host's buffers
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-16 11:31:53 -08:00
Max Brunsfeld
06fb9ccca0
Restore synchronization between responses and incoming messages
...
This removes the need to buffer pending messages in Client.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-16 10:28:32 -08:00
Antonio Scandurra
0173025f4b
Close buffers in randomized integration test
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-16 17:56:27 +01:00
Antonio Scandurra
c3ba8f59ed
Ensure worktree updates are observed in order on the server
2022-02-16 14:05:10 +01:00
Antonio Scandurra
3f6feb1c12
Compare only snapshot's essential state in random collaboration test
2022-02-16 13:39:55 +01:00
Antonio Scandurra
6a07d39d61
Don't send worktree updates until the initial share is done
2022-02-16 12:23:06 +01:00
Antonio Scandurra
978dae201c
Buffer messages in Client while no entity is listening to them
2022-02-16 11:49:37 +01:00
Max Brunsfeld
71abea728e
WIP - Register client RPC handlers on app startup
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-15 18:03:06 -08:00
Max Brunsfeld
34bba303dc
In random collaboration test, add failing assertion for worktree convergence
2022-02-15 14:55:38 -08:00
Antonio Scandurra
a11495af19
Start on a randomized integration test
2022-02-15 17:33:43 +01:00
Antonio Scandurra
17b13b9362
Wait for request and response version before resolving completions
2022-02-15 10:17:35 +01:00
Max Brunsfeld
4e748b188e
WIP - Wait for code action anchors to be valid
2022-02-14 18:05:43 -08:00
Max Brunsfeld
d358072c74
Include the desired version in a SaveBuffer RPC request
...
When handling this messages on the host, wait until the desired
version has been observed before performing the save.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-14 17:51:26 -08:00
Max Brunsfeld
8d06049124
Ensure worktree updates are applied in order
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-14 16:19:29 -08:00
Nathan Sobo
28ba49b47b
Wait for buffer if it doesn't exist when deserializing a reference
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-14 15:55:37 -07:00