Max Brunsfeld and Nathan Sobo
90e4622ec7
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
b656ff841c
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
9058a71783
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
905c66d153
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
f0d18ddaab
Close buffers in randomized integration test
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-16 17:56:27 +01:00
Antonio Scandurra
611fd09c27
Ensure worktree updates are observed in order on the server
2022-02-16 14:05:10 +01:00
Antonio Scandurra
04fbd0c22c
Compare only snapshot's essential state in random collaboration test
2022-02-16 13:39:55 +01:00
Antonio Scandurra
cc7e5eadab
Don't send worktree updates until the initial share is done
2022-02-16 12:23:06 +01:00
Antonio Scandurra
7233c5fd01
Buffer messages in Client while no entity is listening to them
2022-02-16 11:49:37 +01:00
Max Brunsfeld and Nathan Sobo
5442f09c07
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
5cdf498001
In random collaboration test, add failing assertion for worktree convergence
2022-02-15 14:55:38 -08:00
Antonio Scandurra
fade2ba0c9
Start on a randomized integration test
2022-02-15 17:33:43 +01:00
Antonio Scandurra
f2877678e1
Wait for request and response version before resolving completions
2022-02-15 10:17:35 +01:00
Max Brunsfeld
cbbe231869
WIP - Wait for code action anchors to be valid
2022-02-14 18:05:43 -08:00
Max Brunsfeld and Nathan Sobo
f508b135e1
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 and Nathan Sobo
8869784f51
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 and Max Brunsfeld
da5b0ae77c
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
Max Brunsfeld
b1a99e7d06
Restore logic for storing operations on buffers that are still being opened
2022-02-14 11:59:22 -08:00
Antonio Scandurra
16ce316b77
Request code actions inside of task to avoid spamming the LSP
2022-02-14 17:49:03 +01:00
Antonio Scandurra
22800b4f88
Use selection instead of just the cursor when fetching code actions
2022-02-14 14:13:36 +01:00
Antonio Scandurra
7f44520436
Rename subscribe to add_{message,request}_handler in Client
...
This makes it easier to distinguish between messages and requests.
2022-02-14 09:25:31 +01:00
Antonio Scandurra
641bc43710
Pass write(true) when creating a file in RealFs
2022-02-14 09:12:32 +01:00
Antonio Scandurra
8fca79272a
Ensure client always responds when receiving a request
2022-02-13 12:21:35 +01:00
Antonio Scandurra
412645717a
Deserialize buffers synchronously when deserializing project transaction
...
On guests, this ensures we never miss updates to subsequent buffers in
the project transaction that arrive while we're waiting for edits on a
prior buffer in the transaction.
2022-02-12 13:56:07 +01:00
Antonio Scandurra
4e8b470bc6
Remove stray log statements
2022-02-12 12:32:57 +01:00
Antonio Scandurra
06f54fb050
Fix integration test verifying the rename behavior
...
Specifically, the test now ensures that the host's worktree observes a/file1's
change event *before* the rename occurs, otherwise when interpreting the change
event it will mistakenly think that the file has been deleted (because its path
has changed) and will subsequently fail to detect the rename, causing the test
to fail.
2022-02-12 12:26:39 +01:00
Antonio Scandurra
81d4457bcb
Apply worktree updates in the order they were received
2022-02-12 11:56:20 +01:00
Max Brunsfeld
7c1cc69cd3
Reduce logging in lsp tests
2022-02-11 16:37:50 -08:00
Max Brunsfeld
66ce2519e7
Remove Buffer::apply_lsp_edits
...
Always use `edits_from_lsp`.
2022-02-11 16:22:19 -08:00
c574e7eba7
Restructure fake language server to setup request handlers in advance
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-11 15:08:56 -08:00
Antonio Scandurra and Nathan Sobo
85cdfddb31
Fetch code actions on cursor movement instead of on-demand
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-11 14:41:19 +01:00
Antonio Scandurra and Nathan Sobo
1a3adbe7ef
Don't return error when definition, completions, etc. are unavailable
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-11 13:16:17 +01:00
Antonio Scandurra
e035758ba9
Move Buffer::format to Project::format
2022-02-11 12:07:46 +01:00
Max Brunsfeld
78e10785b0
Finish implementing Buffer::edits_from_lsp
2022-02-10 18:01:18 -08:00
Max Brunsfeld and Antonio Scandurra
11f6061fbb
Start work on applying LSP edits via a diff
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2022-02-10 11:14:06 -08:00
Max Brunsfeld and Nathan Sobo
c477ca9308
Give the editor a handle to the project, not a weak handle to the workspace
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-08 15:48:44 -08:00
Max Brunsfeld
08061504d4
Consolidate logic for completion alongside code actions in Project
...
This way, completions are dealt with more consistently with code actions,
and the logic is not spread across so many places. The `language::File`
trait and the multibuffer no longer need to deal with completions. Completions
are no longer generic over an anchor type.
2022-02-08 14:24:45 -08:00
Max Brunsfeld
e3e21f9b4c
Consolidate all code actions logic into Project
2022-02-08 13:17:57 -08:00
Antonio Scandurra and Nathan Sobo
9e40fdc3fc
Make transactions serializable to enable edits on behalf of other users
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-08 19:48:21 +01:00
Antonio Scandurra
943fb46052
Apply code actions remotely
2022-02-08 12:18:14 +01:00
Antonio Scandurra
3706bd91ff
Manually refresh code action when data is not present
2022-02-08 10:47:50 +01:00
Antonio Scandurra
01bc9e7e18
Merge branch 'main' into assists
2022-02-08 09:39:43 +01:00
693dd137cf
Use an unbounded channel for peer's outgoing messages
...
Using a bounded channel may have blocked the collaboration server
from making progress handling RPC traffic.
There's no need to apply backpressure to calling code within the
same process - suspending a task that is attempting to call `send` has
an even greater memory cost than just buffering a protobuf message.
We do still want a bounded channel for incoming messages, so that
we provide backpressure to noisy peers - blocking their writes as opposed
to allowing them to buffer arbitrarily many messages in our server.
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-07 12:27:13 -08:00
Antonio Scandurra
fa0c1d7923
Apply edits received from LSP code actions and open all touched buffers
2022-02-07 18:48:45 +01:00
Antonio Scandurra and Nathan Sobo
4544cf7b81
Tolerate language servers reporting non-monotonic buffer versions
...
This isn't perfect but we'll retain up to 10 old versions just in case there
are race conditions in the language server. We haven't seen this in the wild
but we're concerned about diagnostic reporting racing with code action
resolution.
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-07 16:29:05 +01:00
Antonio Scandurra and Nathan Sobo
2ffae389b0
Apply file-system operations coming from an LSP code action
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-07 16:11:40 +01:00
Antonio Scandurra
1ae79902e9
WIP: Start on applying code actions
2022-02-07 12:20:03 +01:00
Max Brunsfeld and Nathan Sobo
e47c404bdd
Add a ToPointUtf16 trait in text and multibuffer
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-04 17:35:37 -08:00
Nathan Sobo and Antonio Scandurra
a2b5773807
Fix warning when not building in test mode
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2022-02-04 09:23:16 -07:00
Antonio Scandurra and Nathan Sobo
a8b7715b73
Buffer all incoming file-system events
...
This avoids a problem where the operating system would drop events
on the floor and tell us to rescan the entire directory, which in turn
would cause a flicker in the project browser.
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-04 16:31:34 +01:00