Commit Graph
3673 Commits
Author SHA1 Message Date
Antonio ScandurraandNathan Sobo 3844634765 Hold the state lock while responding to guest joining a project
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-11 19:30:52 +02:00
Antonio Scandurra 9a8b0388fa Replace synchronous Store lock with an async lock
This also fixes some failures due to `broadcast` and `update_contacts_for_users`
being fallible. As part of this commit, these two functions don't return `Result`
anymore: the reason for this change is that we don't want a request to fail only
because a peer disconnected while we were trying to broadcast a message to them.
2022-04-11 17:56:30 +02:00
Antonio Scandurra 273ee0ae58 Acquire guest connection ids after save request has been forwarded
This fixes a bug that would cause the server to broadcast the save
message to guests that have potentially left the project.
2022-04-11 16:27:14 +02:00
Antonio Scandurra c3927c541f Simulate random guest disconnection and reconnection 2022-04-11 16:27:11 +02:00
Antonio ScandurraandNathan Sobo f99a1437cd Distribute operation workload evenly across peers in randomized test
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-11 14:43:30 +02:00
Antonio Scandurra 02f96c6def Simulate parallelism among peers correctly in randomized collab test
Previously they were all using the same foreground executor, which was
not properly simulating concurrency among tasks from different peers.
2022-04-11 13:42:30 +02:00
Antonio Scandurra bb8dc6120b Allow taking an Arc<Deterministic> in [gpui::test]-decorated tests 2022-04-11 13:42:30 +02:00
Antonio Scandurra 28f44a3252 Merge pull request #787 from zed-industries/buffer-divergence
Fix divergence bug when peer reconnects reusing a prior replica id
2022-04-11 13:34:30 +02:00
Antonio Scandurra f9e0899e58 Fix divergence bug when peer reconnects reusing a prior replica id
We forgot to observe the footprint of the reconnecting replica's prior
undos into the local clock. This could cause the replica to generate
edits with a version strictly smaller than what other peers may have
observed. As such, those peers would think they had already seen those
edits and skip them.
2022-04-11 13:17:47 +02:00
Nathan Sobo af674e1c00 Merge pull request #770 from zed-industries/better-settings-schema
Improve Settings Completions
2022-04-09 08:23:58 -06:00
Nathan Sobo 56fcffb634 Remove unused imports 2022-04-09 07:55:23 -06:00
Nathan Sobo 17195e615e Merge pull request #781 from zed-industries/structured-logging
Introduce structured logging
2022-04-09 07:40:24 -06:00
Max Brunsfeld 1778622960 Merge pull request #773 from zed-industries/namespace-actions
Change how actions are declared so that they are always associated with a namespace
2022-04-08 11:57:13 -07:00
Max Brunsfeld ed2b690b9e Merge branch 'main' into namespace-actions 2022-04-08 11:48:43 -07:00
Nathan Sobo 8a7d3ea82a Merge pull request #778 from zed-industries/test-random-disconnect
Introduce host disconnection in randomized collaboration test
2022-04-08 11:36:39 -06:00
Nathan SoboandAntonio Scandurra b507e21831 Enable JSON logging at the trace log level in K8s
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-08 10:08:52 -06:00
Nathan SoboandAntonio Scandurra 7e5a3f9f6b Introduce structured logging
We're enabling the log crate feature everywhere, but only using it on the server for now.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-08 10:06:51 -06:00
Antonio ScandurraandNathan Sobo 53a7f9c43e Introduce a timeout when processing incoming messages
We have an hypothesis that the server gets stuck while processing
an incoming message, either because the buffer fills up or because
a handler never completes. This should mitigate that and, once we
add logging, give us some clue as to what is causing it exactly.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-08 16:21:39 +02:00
Antonio ScandurraandNathan Sobo 0b1fda3e13 Remove postage from zed-server
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-08 16:14:54 +02:00
Antonio ScandurraandNathan Sobo 24cb44fb00 Remove postage from rpc
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-08 16:13:37 +02:00
Antonio Scandurra 32fd4eb3ac Insert project id in connection's project during project registration
...in contrast to doing so during worktree registration. This fixes a
randomized test failure which would panic because store invariants would be
violated. This would happen when a peer disconnected before it had a chance
to register a worktree because, when removing all the state associated with
that peer upon disconnection, we would notice the registered project without
however finding it in the peer's connection state.
2022-04-08 14:41:56 +02:00
Antonio Scandurra 222cd09838 Allow host to reconnect to the server in randomized test 2022-04-08 14:41:30 +02:00
Antonio Scandurra c994263225 Don't insert an empty vector in Project::buffer_snapshots
Other code paths rely on at least a version always being there, so
we should enforce that invariant everywhere.
2022-04-08 14:14:45 +02:00
Antonio Scandurra 663beab1b9 Avoid panicking when receiving a request for a dropped buffer 2022-04-08 12:10:45 +02:00
Antonio Scandurra 3daaef02ca Replace postage::oneshot with futures::channel::oneshot
This fixes an error in the randomized test that would cause the future
returned from `Worktree::share` to never finish due to a bug in `postage`
that causes its waker to not be notified upon drop.
2022-04-08 12:03:09 +02:00
Antonio Scandurra da976012a9 Allow simulate_guest and simulate_host to fail when host disconnects 2022-04-08 11:29:00 +02:00
Antonio Scandurra fae9048a2a Remove non-determinism from Peer caused by using std's HashMap 2022-04-08 11:28:19 +02:00
Keith Simmons 3e40b5bead dynamically inject theme names and language properties into schema 2022-04-07 18:15:02 -07:00
c801a52492 Convert some actions to use named fields
Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-07 16:44:37 -07:00
5242a3a6dc Restructure action macro to assign a namespace to every action
Also, allow arbitrary types to be used as Actions via the impl_actions macro

Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-07 16:20:49 -07:00
Keith Simmons 035cd37aa8 Add explicit types for LanguageOverrides and Themes to SettingsFileContent in order to improve completions in zed settings file 2022-04-07 16:00:51 -07:00
Max Brunsfeld 206b0f0f8c 0.25.0 2022-04-07 12:03:43 -07:00
Nathan Sobo 717f53e3d2 WIP 2022-04-07 09:29:47 -06:00
Antonio Scandurra 0b8eed64ad Merge pull request #765 from zed-industries/yield-lsp
Don't starve UI thread when rapidly receiving LSP messages
2022-04-07 17:15:19 +02:00
Nathan SoboandAntonio Scandurra 80d55fd3d8 Don't starve UI thread when rapidly receiving LSP messages
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-07 08:30:42 -06:00
Nathan Sobo 7a151ffc75 Merge pull request #764 from zed-industries/refine-event-handlers-behavior
Calculate hit-box based on visible bounds in `{Mouse}EventHandler`
2022-04-07 08:16:14 -06:00
Antonio Scandurra b396909035 Calculate hitbox based on visible bounds in {Mouse}EventHandler
This is in contrast to not dispatching the event altogether in `Flex` when
the event is not contained in the flex element bounds. That approach was
problematic because it didn't give an opportunity to `MouseEventHandler`s
to handle mouse move events when they didn't intersect with the element bounds,
causing elements to never clear their hover state, cursor style, etc.
2022-04-07 15:12:09 +02:00
Antonio Scandurra 73f2fd6b09 Pass visible bounds to Element::dispatch_event 2022-04-07 15:10:09 +02:00
Antonio Scandurra ae415ee49b Merge pull request #763 from zed-industries/inconsistent-diagnostic-state
Fix bad diagnostic state when restarting a language server w/ a running diagnostic task
2022-04-07 09:54:00 +02:00
Antonio Scandurra 7c21b61ad9 Merge pull request #748 from zed-industries/fix-outline-panic
Don't assume there are always matches in outline view
2022-04-07 09:49:13 +02:00
Antonio Scandurra 52251c3463 Merge pull request #745 from zed-industries/scroll-tabs
Allow pane tabs to be scrolled when they overflow
2022-04-07 09:48:54 +02:00
Max Brunsfeld f73de202d0 Fix diagnostic updates after restarting an LSP w/ a pending diagnostic job 2022-04-06 22:02:27 -07:00
Max Brunsfeld b354af7bda Use an unbounded channel in gpui test helper methods
The bounded channel could fill up when many events were emitted in one
effect cycle.
2022-04-06 22:02:04 -07:00
Max Brunsfeld ce547010d8 Merge pull request #759 from zed-industries/breadcrumb-multibuffer-fix
Update breadcrumbs when multibuffers' excerpts change
2022-04-06 17:21:18 -07:00
Max Brunsfeld ec837fa6d7 Update breadcrumbs when multibuffers' excerpts change 2022-04-06 17:12:36 -07:00
Max Brunsfeld 8f38ac8270 Tweak structure of Project::on_lsp_progress so it can be auto-formatted
Previously, rustfmt seems to have given up on formatting this method.
2022-04-06 16:35:58 -07:00
Max Brunsfeld f9e1b4de96 Merge pull request #758 from zed-industries/open-excerpts-in-same-pane
Don't activate the next pane when opening excerpts
2022-04-06 15:56:22 -07:00
Max Brunsfeld ea63df0519 Don't activate the next pane when opening excerpts 2022-04-06 15:46:11 -07:00
Max Brunsfeld 3d8e4adcde Merge pull request #757 from zed-industries/restructure-settings
Enable language specific tab sizes
2022-04-06 15:18:13 -07:00
Keith SimmonsandMax Brunsfeld 67b15ee037 Use language specific tabsize in editor commands
Co-authored-by: Max Brunsfeld <max@zed.dev>
2022-04-06 15:10:29 -07:00