Max Brunsfeld
d1f33d7052
🎨 Specify more dependencies at the workspace level
2023-04-24 17:41:55 -07:00
Max Brunsfeld and Julia Risley
49e1b59a47
🎨
...
Co-authored-by: Julia Risley <julia@zed.dev >
2023-04-24 13:54:47 -07:00
Max Brunsfeld and Julia Risley
4c03be4e52
Send language server updates via the same task that sends buffer operations
...
Co-authored-by: Julia Risley <julia@zed.dev >
2023-04-24 13:52:03 -07:00
Max Brunsfeld
8007447bc2
Start work on a language server log view
2023-04-24 09:43:31 -07:00
Max Brunsfeld
a17f009b00
Use a workspace dependency for the futures crate
2023-04-24 09:43:31 -07:00
Antonio Scandurra and Nathan Sobo
34e4b60b0b
Remove UpgradeModelHandle trait
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2023-04-24 16:40:30 +02:00
Max Brunsfeld
d57a8d85f9
Introduce a LanguageServerId wrapper type
...
Clarify the meaning of all the usizes in use in all of these
struct fields an method signatures.
2023-04-20 08:58:41 -07:00
Julia and Max Brunsfeld
c249101939
Avoid language servers fighting over diagnostics summaries
...
Previously each server would stomp all over the existing results
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2023-04-20 08:58:41 -07:00
Julia and Max Brunsfeld
1b06a89177
Refactor language server startup
...
Avoid parallel vecs
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2023-04-20 08:58:41 -07:00
Julia and Max Brunsfeld
a49f42a1e1
Cleanup
...
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2023-04-20 08:58:41 -07:00
Julia and Max Brunsfeld
168eb42f77
Fix failing tests
...
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2023-04-20 08:58:41 -07:00
Julia
3321d699dc
Finish getting multiple diagnostics sources building and running
2023-04-20 08:58:41 -07:00
Julia and Nathan Sobo
2ae3ba38c2
Start getting diagnostics sets to work with multiple servers
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2023-04-20 08:58:41 -07:00
Julia and Antonio Scandurra
ef288d90d9
Get ESLint to launch and provide diagnostics
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2023-04-20 08:58:41 -07:00
Julia and Max Brunsfeld
ea22f295ff
Get it to build with multiple adapters per language! 🎉
...
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2023-04-20 08:58:41 -07:00
Julia
6081351ee7
Incomplete refactor to allow for multiple adapters per language
2023-04-20 08:58:39 -07:00
Antonio Scandurra
47e5c0a73e
Relay buffer change events to Copilot
2023-04-20 09:34:20 +02:00
Max Brunsfeld
e292109bc5
Merge pull request #2379 from zed-industries/shebang
...
Select language based on a file's first content line in addition to its path
2023-04-18 17:31:19 -07:00
Max Brunsfeld
5bcf6da6ea
Fix 'invalid insertion' panic when following
...
Wait for the necessary buffer operations to arrive before attempting to
set selections and scroll top.
2023-04-18 16:13:18 -07:00
Antonio Scandurra and Max Brunsfeld
4cea626c6f
Send buffer operations in batches to reduce latency
...
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2023-04-17 10:22:13 -07:00
Max Brunsfeld
374d1fb8e3
Select language based on a file's first content line in addition to its path
2023-04-16 12:28:27 -07:00
Max Brunsfeld
b70c74f690
Fix inconsistent worktree state when renaming entries while scanning
2023-04-13 22:34:34 -07:00
Max Brunsfeld
ef57a8e02a
Add randomized test for mutating worktree during initial scan
2023-04-13 22:34:03 -07:00
Max Brunsfeld
54e7342c7e
Always bump scan_id when refreshing an entry
...
The scan_id needs to be bumped even if a scan is already in progress,
so that worktree updates can detect that entries have changed. This
means that the worktree's completed_scan_id may increase by more than
one at the end of a scan.
2023-04-13 16:51:11 -07:00
Max Brunsfeld
9bf8ade7b4
Don't process gitignore updates after the initial scan
2023-04-12 18:17:29 -07:00
Max Brunsfeld
36fc0c36e6
Prioritize path refresh requests over gitignore status updates
2023-04-12 18:08:00 -07:00
Max Brunsfeld
42e6ac50ea
Restructure background scanner to handle refresh requests even while scanning
2023-04-12 16:29:51 -07:00
Antonio Scandurra
46a76c7d22
Merge pull request #2349 from zed-industries/randomized-tests-operation-script
...
Restructure randomized integration test to allow editing and replaying a plan, fix discovered bugs
2023-04-12 11:45:47 +02:00
Antonio Scandurra
e0c2290be4
Forget buffered operations when resyncing with the host
...
Previously, we could end up with a situation where the host did not
see an operation but a guest that didn't have that buffer open would. When
such guest would finally open the buffer, they would apply the operation
without however sending it to the host. The guest wouldn't bother resyncing
it because it wasn't part of its open buffers.
2023-04-12 10:39:01 +02:00
Antonio Scandurra
c4e9506f0a
Re-send worktree if reconnecting while initial scan isn't finished yet
...
Previously, if the client was disconnected while the initial worktree
state was being sent, it would not see the remaining state after reconnecting.
This was due to `scan_id` and `completed_scan_id` both being initialized to
`0`, so the client would ask for updates since `0` and get nothing.
This commit changes the worktree to initialize `scan_id` to `1` and
`completed_scan_id` to `0`, so that we get the full worktree again on reconnect.
2023-04-11 17:15:43 +02:00
Antonio Scandurra
fe75011577
Ensure project is still alive by the time remote LSP request starts
2023-04-11 15:14:32 +02:00
Antonio Scandurra
c8bf44e0cd
Use LspCommand to handle code actions
2023-04-11 15:12:58 +02:00
Antonio Scandurra
da20031383
🔥
2023-04-11 14:53:08 +02:00
Antonio Scandurra
049c4c9eb4
Use LspCommand to handle completions
2023-04-11 14:52:07 +02:00
Antonio Scandurra
4e319f4256
Stop waiting for buffers when releasing a remote project
2023-04-11 10:42:43 +02:00
Max Brunsfeld
0098706f6e
Fix leak when project is unshared while LSP handler waits for edits
2023-04-10 17:03:58 -07:00
Max Brunsfeld and Antonio Scandurra
eeeb30f56c
Preserve ordering between UpdateProject and CreateBufferForPeer messages
...
Previously, because UpdateProject messages were sent in a separately-
spawned task, they could be sent after CreateBufferForPeer messages that
were intended to be sent after them.
Co-authored-by: Antonio Scandurra <antonio@zed.dev >
2023-04-10 12:54:25 -07:00
Antonio Scandurra
cac9fde432
Merge branch 'main' into randomized-tests-operation-script
2023-04-10 08:45:22 +02:00
Antonio Scandurra
1f033488b1
Apply BufferReloaded message to incomplete remote buffers
2023-04-10 08:41:31 +02:00
Antonio Scandurra
c3c3416c1f
Don't panic if worktree was dropped before sending path changes
...
In `refresh_entry`, we send a message to the `self.path_changes_tx` channel
to notify the background thread that a path has changed. However, given that
`refresh_entry` uses `spawn_weak`, the worktree could get dropped before sending
the message, which could cause a panic.
This commit changes the code to return an error instead of panicking.
2023-04-10 08:16:08 +02:00
Max Brunsfeld and Antonio Scandurra
dfe146d24e
Halt UpdateBuffer messages until sync if one errors
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev >
2023-04-07 17:31:52 -07:00
Max Brunsfeld
4d7e7b58e4
Wait for host to acknowledge buffer updates before sending them to other guests
2023-04-07 16:27:48 -07:00
Nathan Sobo
d937660683
Merge MutableAppContext into AppContext
...
There may have been a good reason for the difference at some point, or I was
still learning Rust. But now it's just &mut AppContext vs &AppContext.
2023-04-06 15:49:03 -06:00
Max Brunsfeld and Antonio Scandurra
1a000f51db
Fix handling of redundant buffer creation messages on guests
...
Check if the buffer already exists *before* overwriting it.
Ignore redundant registrations on remote projects.
Co-authored-by: Antonio Scandurra <antonio@zed.dev >
2023-04-06 12:17:25 -07:00
Max Brunsfeld and Antonio Scandurra
ff1fcef1ef
Move project assertions into main assertion function
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev >
2023-04-06 11:38:42 -07:00
Antonio Scandurra
e74efb996c
Update file on incomplete buffer instead of waiting for it to be opened
...
This ensures that two successive file updates coming from the host are
not applied in reverse order.
2023-04-06 17:48:44 +02:00
Antonio Scandurra
37e3b58b32
Wait to see guest's buffer version before converting completion anchor
2023-04-06 16:23:10 +02:00
Antonio Scandurra
d2d37988c6
Return error if subscribing to an entity that was already subscribed to
2023-04-06 14:42:19 +02:00
Antonio Scandurra
57400dbb98
Forget which buffers were shared when host reconnects
...
This fixes a bug where the host would momentarily disconnect and the guest
would close and reopen the project. This would cause the host to not observe
the guest closing the project. When the guest tried to open one of the
buffers opened prior to closing the project, the host would not send them the
buffer state because it would still remember that the buffer was shared.
The `shared_buffers` map is now cleared when the host reconnects and will slowly
get re-filled as guests issue `SynchronizeBuffers` requests.
2023-04-06 13:49:09 +02:00
Max Brunsfeld
d8119330cf
Clear guest's shared buffers if they rejoin project after leaving while host was disconnected
2023-04-05 16:53:36 -07:00