Commit Graph
100 Commits
Author SHA1 Message Date
Nathan Sobo 4da3005b5c Allow users with no invites to be fetched from the API 2022-06-24 09:57:52 -06:00
Nathan Sobo 44c8ee5709 Add mouse down out handlers
These will fire whenever the left/right mouse button is pressed down outside a specific region. I'll use these to cancel the context menu in the next commit.
2022-05-27 12:56:44 -06:00
Nathan Sobo 9909fc529b Allow context menu to be cancelled after deploying it twice
Previously, two right clicks would cause an issue with cancelling the context menu via escape.
2022-05-27 12:00:11 -06:00
Nathan Sobo c3baf2748f Block hovering behind overlays 2022-05-27 11:54:51 -06:00
Nathan Sobo 5413a97c7e Restrict multiple hovered regions to a single stacking context
We won't hover regions from stacking contexts that are below the one being hovered.
2022-05-27 11:09:07 -06:00
Nathan Sobo aedfd74d30 Use the hit bounds when painting mouse regions 2022-05-26 20:05:20 -06:00
Nathan SoboandMax Brunsfeld 893f15ddab Switch MouseEventHandler to use MouseRegions
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-05-26 20:00:01 -06:00
Nathan SoboandMax Brunsfeld 50edcb06dd Add drag callbacks to mouse regions
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-05-26 18:59:38 -06:00
Nathan SoboandMax Brunsfeld bd62a68234 Eliminate ElementStateContext trait
We now always have a RenderContext when rendering MouseEventHandlers or scrollable Flex columns/rows.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-05-26 18:37:28 -06:00
Nathan SoboandMax Brunsfeld b6b16fc9c3 In UniformList, guard against misbehavior of append_items
If for some reason the handle got dropped and we call it, we'll deal with it somewhat gracefully.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-05-26 18:30:28 -06:00
Nathan SoboandMax Brunsfeld 8dd82fdce1 Take a RenderContext in ListState's build item callback
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-05-26 18:23:44 -06:00
Nathan SoboandMax Brunsfeld 2ea085b178 Pass a RenderContext to UniformList
In some cases, we need to render during layout. Previously, we were rendering with a LayoutContext in some cases, but this commit adds the ability to retrieve a render context with a given handle and we use that feature in UniformList.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-05-26 18:03:34 -06:00
Nathan Sobo d69776585d Add mouse_state method to RenderContext
We can use this to determine if a region is hovered or clicked.
2022-05-26 13:22:23 -06:00
Nathan Sobo 3a59d2a331 Allow hovered and clicked mouse regions to be tracked in the presenter 2022-05-26 12:44:52 -06:00
Nathan SoboandAntonio Scandurra 0866f0ed55 Introduce CursorRegion struct
This will blend in with an upcoming MouseRegion struct that sits next to it in the scene.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-05-26 11:00:10 -06:00
Nathan SoboandAntonio Scandurra c0aafac387 Put keystrokes in their own column
This requires rendering the menu for measurement in a totally different way, where the top level is a flex row. We don't want to render the menu like this for presentation because of hovers / highlights on individual items needing to include the keystrokes.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-05-26 09:59:25 +02:00
Nathan Sobo dcee8439b6 Start on context_menu crate 2022-05-26 09:59:25 +02:00
Nathan Sobo b428d0de38 Break context menu items out in theme 2022-05-26 09:59:25 +02:00
Nathan Sobo 6b96822c1a Fix editor tests 2022-05-26 09:59:25 +02:00
Nathan Sobo 5b7825d5de Add MutableAppContext::keystrokes_for_action
This can be used to lookup keystrokes that will dispatch an action based on the currently focused view. There might be multiple, but we return the first found, meaning the most recently added bindings matching that action for the closest view to the focused view in the hierarchy.
2022-05-26 09:59:25 +02:00
Nathan Sobo b110fd5fb7 Render a context menu when right-clicking in project panel
It doesn't currently do anything, but I managed to get it rendering in an absolutely positioned way.
2022-05-26 09:59:25 +02:00
Nathan Sobo 742dd75041 Implement /rpc_server_snapshot endpoint
This returns a JSON snapshot of the state of the server
2022-05-25 17:42:25 -06:00
Nathan Sobo 6a32d55d85 Merge pull request #1065 from zed-industries/fix-build-script
Fix theme build issue in build.rs
2022-05-25 15:51:32 -06:00
Nathan Sobo 5fd2c5cb2e v0.35.0 2022-05-24 11:32:12 -06:00
Nathan Sobo d30d2d67e7 Merge pull request #1049 from zed-industries/invite-codes-2
Support inviting new Zed users
2022-05-23 18:29:51 -06:00
Nathan Sobo 4cedf056a9 Bump protocol version 2022-05-23 18:18:15 -06:00
Nathan Sobo 6ed503fe6e Implement get_invite_code_for_user on test db 2022-05-23 18:07:23 -06:00
Nathan SoboandMax Brunsfeld 5c2fdc01ff Update foreign key constraints to allow users to be deleted
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-05-23 17:46:06 -06:00
Nathan SoboandMax Brunsfeld 51a61cc485 Don't assign invite code when updating count from 0 to 0
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-05-23 17:28:05 -06:00
Nathan Sobo 4b8f24c84e Set INVITE_LINK_PREFIX in K8s 2022-05-23 15:49:51 -06:00
Nathan Sobo d8dbbf1c05 Merge remote-tracking branch 'origin/main' into invite-codes-2 2022-05-23 15:46:39 -06:00
Nathan Sobo 7a8ff5abd7 Accept an optional email address when creating new users 2022-05-20 20:25:21 -06:00
Nathan SoboandAntonio Scandurra eedb8ba59f Add affordance to copy user's invite link if they have a code
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-05-19 17:57:46 -06:00
Nathan SoboandAntonio Scandurra a3bbabaaac Add ability to get the user for an invite code in collab API
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-05-19 12:35:07 -06:00
Nathan SoboandAntonio Scandurra 3d7e912c6b Enable descriptive HTTP errors to be returned from DB layer
For now, we only use this when redeeming an invite code.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-05-19 11:55:55 -06:00
Nathan Sobo d1b7a249b4 WIP 2022-05-19 11:09:44 -06:00
Nathan Sobo 51f9b915a0 WIP 2022-05-18 16:14:58 -06:00
Nathan Sobo 37fcfeab8d WIP 2022-05-18 11:51:47 -06:00
Nathan SoboandAntonio Scandurra b3038c2de9 Return 404 from API if no user is found
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-05-18 10:32:58 -06:00
Nathan SoboandAntonio Scandurra 7e2d1fefc4 Add ability to update invite count to collab API
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-05-18 10:23:08 -06:00
Nathan SoboandAntonio Scandurra cfb31067a5 Add invite codes / counts to users table
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-05-18 09:56:37 -06:00
Nathan Sobo 1c9ad942df v0.34.0 2022-05-17 11:10:21 -06:00
Nathan Sobo 1e366b8093 Merge pull request #1003 from zed-industries/moar-logs
Log JSON in Kubernetes
2022-05-17 11:09:10 -06:00
Nathan SoboandAntonio Scandurra fb246ac343 Log JSON in Kubernetes
If you set LOG_JSON=true, we'll output JSON from the tracing subscriber instead of pretty-printing trace output.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-05-17 11:05:22 -06:00
Nathan Sobo d821e7a4c1 Cancel join requests when the requester closes the window 2022-05-16 20:29:36 -06:00
Nathan Sobo 7c3eebf93e Refine messages on waiting to join screen and include host avatar 2022-05-16 16:52:31 -06:00
Nathan Sobo 91257f308e Remove "They won't know if you decline" message 2022-05-16 13:15:46 -06:00
Nathan Sobo 08206dc78d Merge pull request #996 from zed-industries/fix-cursor-flicker
Only synthesize mouse moves on scene construction if window is active
2022-05-13 14:21:21 -06:00
Nathan Sobo a620665bed Only synthesize mouse moves on scene construction if window is active 2022-05-13 14:05:13 -06:00
Nathan Sobo 02e39e756b 0.33.0 2022-05-12 14:46:33 -06:00
Nathan Sobo 7847707090 Merge pull request #990 from zed-industries/more-tracing
Improve tracing support
2022-05-12 14:45:50 -06:00
Nathan Sobo 451338061d Try to improve tracing messages when client disconnects 2022-05-12 13:05:05 -06:00
Nathan Sobo a3b9ad75b0 Include login in connection-related tracing spans/events
Also, include metadata on more events and add an event called "signing out" with all this metadata to make it easier to search for.
2022-05-12 12:06:06 -06:00
Nathan Sobo 3226e07dcc Remove commented method 2022-05-12 11:37:33 -06:00
de555e3423 Enable logging of rpc crate trace events when no subscriber is present
This allows these events to be logged in the Zed client (until we setup tracing there).

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-05-12 10:17:37 -06:00
e795a7a578 💄
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-05-12 10:16:50 -06:00
Nathan SoboandAntonio Scandurra 9ca6e29a17 Use tracing instead of log in collab and rpc crates
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-05-12 10:05:49 -06:00
Nathan SoboandAntonio Scandurra 9f6e82720d WIP: Enhance tracing in Peer
- Add a bunch of events to Peer's async connection handling logic
- Use an EnvFilter to allow more control over the verbosity level of tracing on a per-module basis
- Wire up logging to emit trace events (we actually probably want to do this the other way around)

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-05-12 09:58:17 -06:00
Nathan Sobo fe89de8b11 Dismiss contact request notification if request is cancelled 2022-05-10 18:50:18 -06:00
Nathan Sobo 3bca1c29e2 Present a blank notification upon receipt of a contact request 2022-05-10 18:33:39 -06:00
Nathan Sobo bd2ae304fa Start on workspace notifications 2022-05-10 17:46:46 -06:00
Nathan Sobo 9c68c3e8a9 Put context parameter last in toggle_modal callback
This is more consistent with our treatment of context params everywhere else.
2022-05-10 16:46:53 -06:00
Nathan SoboandAntonio Scandurra b721f0064a Start on contact finder modal
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-05-10 07:24:14 -06:00
Nathan SoboandAntonio Scandurra eef99f059d Make flex elements fill available space when they contain a float
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-05-10 06:14:30 -06:00
Nathan Sobo 4e9924c717 Filter out empty projects in contacts panel 2022-05-09 20:57:41 -06:00
Nathan Sobo ef868ff023 Fix test after changing fuzzy matching for empty queries 2022-05-09 20:41:18 -06:00
Nathan SoboandMax Brunsfeld 3d6db9083d Update a user's contacts when they connect; fix test failures
The test failure we fixed doesn't seem directly related to the contact update. Maybe it just caused a failure to occur earlier than it would have in the sequence of seeds.

We fixed the test failure by responding to a user joining the project while holding the lock on the Store. This ensures that we don't send messages related to the project to that user until they've had a chance to setup event handlers after receiving the response.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-05-09 15:57:16 -06:00
Nathan SoboandMax Brunsfeld 40f1427885 Show requests in contacts panel
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-05-09 12:48:07 -06:00
Nathan SoboandMax Brunsfeld e9d8cc94cc Rename script to match others (dashes)
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-05-09 11:24:16 -06:00
Nathan SoboandMax Brunsfeld e3ee19b123 Wire up UI for requesting contacts and cancelling requests
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-05-09 11:24:05 -06:00
Nathan Sobo 9b1b61355a Fully test contact request acceptance
* Be sure we send updates to multiple clients for the same user
* Be sure we send a full contacts update on initial connection

As part of this commit, I fixed an issue where we couldn't disconnect and reconnect in tests. The first disconnect would cause the I/O future to terminate asynchronously, which caused us to sign out even though the active connection didn't belong to that future. I added a guard to ensure that we only sign out if the I/O future is associated with the current connection.
2022-05-08 15:19:56 -06:00
Nathan Sobo 5d20338f69 Get basic test of accepting a contact request passing 2022-05-07 15:09:27 -06:00
Nathan Sobo 93dae88cac WIP: Fix compile errors by commenting stuff out 2022-05-07 14:04:13 -06:00
Nathan Sobo 4f06dca78b WIP: Update contacts based on deltas rather than snapshots 2022-05-06 20:50:59 -06:00
Nathan Sobo 342bdfc7e0 Render a user query editor in the contacts panel 2022-05-05 10:24:21 -06:00
Nathan Sobo 6050e0ead7 Add fuzzy_search_users to Db trait, PostgresDb 2022-05-05 09:58:18 -06:00
Nathan SoboandAntonio Scandurra 470d693d5e Rename entries via the project to prepare for guest support
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-05-04 10:28:44 -07:00
Nathan Sobo 47e7d924b2 WIP 2022-04-29 08:23:23 -06:00
Nathan Sobo 53e7c758f8 0.31.0 2022-04-29 05:58:34 -06:00
Nathan SoboandAntonio Scandurra 1fe964ac16 Start moving from logging to tracing on collab server
Install some spans. Probably more work to do here.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-28 09:45:59 -06:00
Nathan SoboandAntonio Scandurra 2d9d30f74a Set log level to info on Kubernetes
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-28 09:10:09 -06:00
Nathan SoboandAntonio Scandurra a3640eb8d4 Correctly trace async message handling
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-28 09:09:54 -06:00
Nathan SoboandAntonio Scandurra dc28305c9f Assign tracing-related environment variables in Kubernetes
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-28 08:48:57 -06:00
Nathan Sobo 6ef2d0fbec Trace handling of messages 2022-04-27 15:27:01 -06:00
Nathan Sobo 2db670308b Allow tracing level to be customized 2022-04-27 15:26:54 -06:00
Nathan Sobo 6a21a0f6b8 Wire up tracing crate to opentelemetry
Still need to

- Set a trace level and target via environment to avoid massive noise from other libraries
- Trace the operations we care about
2022-04-27 11:48:43 -06:00
Nathan SoboandAntonio Scandurra 36b462182b Send telemetry to Honeycomb via GRPC
We updated the core-foundation crates because Tonic (the GRPC crate) relies on a newer version of core foundation to find TLS root certificates.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-27 09:58:55 -06:00
Nathan Sobo 2db20c4364 Introduce opentelemetry to collab
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-27 17:01:20 +02:00
Nathan Sobo 78afbb3599 Remove async-std and surf from client
Switch to isahc library. It's not as fancy, but it works and has a smaller footprint.
2022-04-26 21:19:15 -06:00
Nathan SoboandMax Brunsfeld 1293b21b2d Get db tests passing with Tokio Postgres adaptor
We now run tests that interact with the real database under a Tokio reactor. We make the tests run multi-threaded so we can block on the main thread on database teardown and still make progress actually tearing down the DB.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-04-26 13:30:21 -06:00
Nathan Sobo e2a92f4a86 Merge remote-tracking branch 'origin/main' into tokio 2022-04-26 11:16:35 -06:00
Nathan SoboandAntonio Scandurra 2adb9fe472 Get zed.dev working with new collab backend
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-26 11:15:41 -06:00
Nathan Sobo 7c3bdf91d9 Merge pull request #916 from zed-industries/sort-themes
Sort themes by light/dark first and then alphabetically
2022-04-26 08:18:29 -06:00
Nathan Sobo 2ae2daefe1 Merge pull request #917 from zed-industries/titlebar-design
Implement titlebar design
2022-04-26 08:17:48 -06:00
Nathan Sobo be040b60b7 WIP 2022-04-25 20:21:43 -06:00
Nathan Sobo 3938f7c364 Fix compile error 2022-04-25 20:12:32 -06:00
Nathan Sobo 2bd08a7b3f Validate API token for all API routes 2022-04-25 20:10:14 -06:00
Nathan Sobo 538fc23a77 WIP 2022-04-25 20:05:09 -06:00
Nathan SoboandMax Brunsfeld 35bec69fa4 Finish adding API routes
We haven't tested them yet.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-04-25 17:51:13 -06:00
Nathan Sobo cb9d608e53 WIP
Continue adding in more API routes
2022-04-24 18:02:14 -06:00