Commit Graph
31406 Commits
Author SHA1 Message Date
Max BrunsfeldandKeith Simmons <keith@zed.dev 4353d8f0f7 Move keymap_file module into settings crate
Co-authored-by: Keith Simmons <keith@zed.dev
2022-04-11 15:22:18 -07:00
Keith Simmons 9931a12de1 Handle editor cancel in pane in order to dismiss find toolbar 2022-04-11 15:11:23 -07:00
Keith Simmons 622b87cd55 Add logging when atlas allocator fails to allocate 2022-04-11 10:31:38 -07:00
Antonio ScandurraandNathan Sobo 73755f0f24 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
Keith Simmons 885f4b8e0e Make atlas allocation fallable and skip rendering icons and paths when it fails 2022-04-11 10:15:49 -07:00
Keith Simmons 74068b292a Reraise editor events in Project Search and activate workspace item from them 2022-04-11 10:13:07 -07:00
Antonio Scandurra 7a9338847b 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 845646952d 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 0b47b46d69 Simulate random guest disconnection and reconnection 2022-04-11 16:27:11 +02:00
Antonio ScandurraandNathan Sobo 2f87a68164 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 fd6338dda2 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 5f3d58180f Allow taking an Arc<Deterministic> in [gpui::test]-decorated tests 2022-04-11 13:42:30 +02:00
Antonio Scandurra a51b05d3ff 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
Max Brunsfeld 8bc0050578 Load all keybindings from JSON file 2022-04-10 14:29:45 -07:00
Max Brunsfeld ff345ba696 Load modal key bindings from JSON file 2022-04-10 11:39:43 -07:00
Max Brunsfeld 382f3b7acc Load project and buffer search key bindings from JSON file 2022-04-10 11:30:08 -07:00
Max Brunsfeld 4fbd45fe00 Load workspace and editor key bindings from a JSON file 2022-04-10 11:18:08 -07:00
Nathan Sobo ad36f33940 Rename zed-server to collab
Over time, I think we may end up having multiple services, so it seems like a good opportunity to name this one more specifically while the cost is low. It just seems like naming it "zed" and "zed-server" leaves it a bit open ended.
2022-04-09 08:30:42 -06:00
Nathan Sobo 6ca482d91a Merge pull request #770 from zed-industries/better-settings-schema
Improve Settings Completions
2022-04-09 08:23:58 -06:00
Nathan Sobo f2a2639c48 Remove unused imports 2022-04-09 07:55:23 -06:00
Nathan Sobo 594bbeb35d Merge pull request #781 from zed-industries/structured-logging
Introduce structured logging
2022-04-09 07:40:24 -06:00
Max Brunsfeld 0908a8799c Allow actions to be deserialized from JSON
Introduce separate macro for implementing 'internal' actions which
are not intended to be loaded from keymaps.
2022-04-08 15:47:51 -07:00
Max Brunsfeld e57e6eb66c Merge branch 'main' into namespace-actions 2022-04-08 11:48:43 -07:00
Nathan Sobo 59b51036f1 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 1d6edf4759 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 66bcacd9cb 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 38fa1f3293 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 2e5904cb4b Remove postage from zed-server
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-08 16:14:54 +02:00
Antonio ScandurraandNathan Sobo ea2de7c1d2 Remove postage from rpc
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-08 16:13:37 +02:00
Antonio Scandurra 2c007b127d 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 90a21ad40c Allow host to reconnect to the server in randomized test 2022-04-08 14:41:30 +02:00
Antonio Scandurra caa849f6e8 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 b40449294b Avoid panicking when receiving a request for a dropped buffer 2022-04-08 12:10:45 +02:00
Antonio Scandurra 9d88f8ce00 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 091d0d1018 Allow simulate_guest and simulate_host to fail when host disconnects 2022-04-08 11:29:00 +02:00
Antonio Scandurra 48a9dfff00 Remove non-determinism from Peer caused by using std's HashMap 2022-04-08 11:28:19 +02:00
Keith Simmons 55f328e6a8 dynamically inject theme names and language properties into schema 2022-04-07 18:15:02 -07:00
83095256dc 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
0cf9925cb1 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 3ea362af37 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 5e0e950ccc 0.25.0 2022-04-07 12:03:43 -07:00
Nathan Sobo 6e82975727 WIP 2022-04-07 09:29:47 -06:00
Antonio Scandurra 736358da7a 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 c6d6346c14 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
Antonio Scandurra d7c4cc10ab 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 4ab12722bf Pass visible bounds to Element::dispatch_event 2022-04-07 15:10:09 +02:00
Antonio Scandurra 37b1a14242 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 ce2a590521 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 90c24e3fda 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 1e1f153e89 Fix diagnostic updates after restarting an LSP w/ a pending diagnostic job 2022-04-06 22:02:27 -07:00