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 and Nathan Sobo
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
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
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 and Nathan Sobo
25d45378e4
Implement find-all-references
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-22 14:27:16 -08:00
Max Brunsfeld and Nathan Sobo
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 and Nathan Sobo
669fe775df
Normalize paths passed to the FakeFs
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-22 12:43:56 -08:00
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
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
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 and Nathan Sobo
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 and Nathan Sobo
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 and Nathan Sobo
ededfff3a8
Download language servers on-demand
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-21 13:54:52 -08:00
Antonio Scandurra and Nathan Sobo
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 and Nathan Sobo
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 and Nathan Sobo
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 and Nathan Sobo
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 and Nathan Sobo
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 and Nathan Sobo
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 and Nathan Sobo
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 and Nathan Sobo
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 and Antonio Scandurra
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 and Nathan Sobo
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