Commit Graph
1139 Commits
Author SHA1 Message Date
Marshall Bowers 8602fa9ece Update tenses of doc comment summary lines (#4161)
This PR updates the tenses used by the summary line of doc comments to
match the [Rust API documentation
conventions](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#summary-sentence).

Specifically:

> The summary line should be written in third person singular present
indicative form. Basically, this means write ‘Returns’ instead of
‘Return’.

I'm sure there are plenty occurrences that I missed.

Release Notes:

- N/A
2024-01-19 11:18:50 -05:00
Conrad Irwin 9ed647ef72 Fine tune 2024-01-18 15:59:13 -07:00
Conrad Irwin 40af370595 Fix right click handler for tabs (#4130)
Also, some fun test helpers

Co-Authored-By: Mikayla <mikayla@zed.dev>

You can now use .debug_selector() to make it possible for tests to find
a given element,
and .debug_bounds() to find the coordinates of where it was painted.


Release Notes:

- (Added|Fixed|Improved) ...
([#<public_issue_number_if_exists>](https://github.com/zed-industries/community/issues/<public_issue_number_if_exists>)).
2024-01-18 13:07:25 -07:00
Conrad IrwinandMikayla baee8dafd6 Fix right click handler for tabs
Also, some fun test helpers

Co-Authored-By: Mikayla <mikayla@zed.dev>
2024-01-18 12:10:38 -07:00
Max Brunsfeld b41c6148e8 Store the impersonator id on access tokens created via ZED_IMPERSONATE (#4108)
* Use the impersonator id to prevent these tokens from counting against
the impersonated user when limiting the users' total of access tokens.
* When connecting using an access token with an impersonator add the
impersonator as a field to the tracing span that wraps the task for that
connection.
* Disallow impersonating users via the admin API token in production,
because when using the admin API token, we aren't able to identify the
impersonator.
2024-01-18 10:26:34 -08:00
Max Brunsfeld b3e45be0c5 Update verify_access_token doc comment 2024-01-17 18:06:16 -08:00
Max Brunsfeld 791081ebff For impersonating access tokens, store impersonatee in the new column
This way, we don't need an index on both columns
2024-01-17 18:06:16 -08:00
Max BrunsfeldandMarshall 090aea60ec Store the impersonator id on access tokens created via ZED_IMPERSONATE
* Use the impersonator id to prevent these tokens from counting
  against the impersonated user when limiting the users' total
  of access tokens.
* When connecting using an access token with an impersonator
  add the impersonator as a field to the tracing span that wraps
  the task for that connection.
* Disallow impersonating users via the admin API token in production,
  because when using the admin API token, we aren't able to identify
  the impersonator.

Co-authored-by: Marshall <marshall@zed.dev>
2024-01-17 18:06:16 -08:00
Mikayla Maki 607f2a7ba5 Add typo detection to CI (#4107)
Adding the typos crate to our CI will take some doing, as we have
several tests which rely on typos in various ways (e.g. checking state
as the user types), but I thought I'd take a first stab at fixing what
it finds.

Release Notes:

- N/A
2024-01-17 17:13:47 -08:00
Piotr OsiewiczandKirill f4f65e9c2c Editor docs (#4097)
Release Notes:

- N/A

---------

Co-authored-by: Kirill <kirill@zed.dev>
2024-01-18 00:48:37 +01:00
Mikayla dfdb70d06a Add typos configuration for zed and add a few more typo fixes 2024-01-17 15:22:37 -08:00
Max Brunsfeld cdfb3f57df Update local development workflow to not involve zed.dev (#4103)
When testing Zed locally, it's rarely necessary to log in the real with,
via Zed.dev and GitHub. We usually use `zed-local`. Since zed.dev is not
going to be open source (at least right away), this PR removes it from
our local development workflow.

* Remove zed.dev from the Procfile
* Change the `seed` script to not create an admin user for your
signed-in github user
* Instead have both `zed-local` and the `seed` script read from an
`.admins.json` file, which the user can create in order to customize who
they sign in as when running `zed-local`.
* Update all of the docs for building and developing zed.
2024-01-17 15:07:20 -08:00
Mikayla c9dff553af Fix a few more typos 2024-01-17 14:58:58 -08:00
Mikayla Maki 325d7f44b1 Merge branch 'main' into fix-typos 2024-01-17 14:36:03 -08:00
Mikayla Maki 6f345de8eb Document party 2 (#4106)
@mikayla-maki and @nathansobo's contributions

Release Notes:

- N/A
2024-01-17 14:33:52 -08:00
Mikayla 0b43bd7c14 Fix typos detected by crate-ci/typos 2024-01-17 14:31:21 -08:00
Mikayla Maki 0b787d1540 Fix scrolling in collab panel (#4105)
When the `List` element's state is `ListState::reset()`, it eagerly
trashes it's cached element heights in anticipation of a prompt render.
But, due to the recent `display_layer` changes, that re-render is not
always forthcoming. This is a problem for `ListState::scroll()`, which
depends on these cached elements to correctly calculate the new logical
scroll offset.

Solutions we attempted:

- Cache the element heights and continue the scroll calculation 
- This was conceptually incorrect, reset should only be called when the
underlying data has been changed, making any calculation with the old
results meaningless.
- Lazily re-compute the element heights in scroll 
- Beyond being a non-trivial refactor, this would probably also cause us
to double-render the list in a single frame, which is bad.
- Cache the scroll offset and only calculate it in paint 
- This solution felt awkward to implement and meant we can't supply
synchronous list scroll events.
- Delay resetting until paint 
- This means that all of the other APIs that `ListState` supplies would
give temporarily incorrect results, worsening the problem

Given these issues, we settled on the solution with the least
compromises: drop scroll events if the state has been `reset()` between
`paint()` and `scroll()`. This shifts the responsibility for the problem
out of the List element and into consumers of `List`, if you want
perfectly smooth scrolling then you need to use `reset()` judiciously
and prefer `splice()`.

That said, I tested this by aggressively scrolling the Collab panel, and
it seems to work as well as it did before.

This PR also includes some initial testing infrastructure for working
with input from the platform and rendered elements.

Release Notes:

- N/A
2024-01-17 14:11:34 -08:00
MikaylaandNathan 5014891253 Update method name and partially document platform crate
co-authored-by: Nathan <nathan@zed.dev>
2024-01-17 14:07:57 -08:00
Max Brunsfeld b82cde2e83 Rework db-seeding, so that it doesn't depend on a github auth token
Instead, admins are specified using a JSON file, 'admins.json'. This file is
gitignored. If it is not present, there is a default list of admins in
'admins.default.json'.
2024-01-17 13:28:58 -08:00
Marshall BowersandConrad 5f5679ddf8 Add more documentation to collab (#4095)
This PR adds more documentation to the `collab` crate.

Release Notes:

- N/A

---------

Co-authored-by: Conrad <conrad@zed.dev>
2024-01-17 13:38:12 -05:00
Mikayla bfd8f15884 Fix test failures 2024-01-16 22:30:44 -08:00
Max Brunsfeld d2f724df7f Avoid playing newly published audio tracks when deafened (#4040)
Release Notes:

- Fixed a bug where the 'deafen' button would only apply to audio from
the call's current participants, but not any participants who joined
after the button was pressed.
- Fixed a bug where after being granted write access to a channel, the
microphone icon appeared non-muted, even though audio was not shared.
2024-01-15 14:08:49 -08:00
Max Brunsfeld 8dfc542f46 Add and enhance tests for muting/deafening, fix exposed logic errors 2024-01-15 14:03:38 -08:00
Conrad Irwin 4704e268d2 chat panel ++ (#4044)
- Update chat panel with current channel
- Open chat panel for guests
- Open chat when joining a channel with guests
- Some tweaks for chat panels
- Don't lose focus on default panel state
- Make chat prettier (to my eyes at least)
- Fix multiple mentions in one message
- Show a border when scrolled in chat
- Fix re-docking chat panel
- Move settings subscription to dock

[[PR Description]]

Release Notes:

- Opens chat by default when joining a public channel
- Improves chat panel UI
2024-01-14 13:54:10 -07:00
Conrad Irwin d97618364c Fix multiple mentions in one message 2024-01-13 21:53:22 -07:00
Mikayla 4a824521f3 remove more commented code 2024-01-12 20:10:40 -08:00
Max Brunsfeld 80647be85a Don't initialize audio crate in integration tests
Otherwise, a lot of time is spent in Audio::play_sound
2024-01-12 17:29:33 -08:00
Max Brunsfeld cd29d1f9d4 Fix routing of leader updates from unshared projects
Previously, leader updates in unshared projects would be sent to
all followers regardless of project, as if they were not scoped
to any project.
2024-01-11 13:47:31 -08:00
Mikayla Maki cbffc6e05d Whoops (#4011)
Fixes a spelling mistake I made in the database schema 😬

Release Notes:

- n/a
2024-01-11 10:57:08 -08:00
Mikayla 10f7f2c447 enviroment -> environment 2024-01-10 22:57:58 -08:00
Conrad Irwin 60f7c45d35 Stop following when project is unshared
Before this change the views would continue to update in the background
of the "disconnected" dialogue, which was disconcerting.
2024-01-10 23:09:09 -07:00
Mikayla 5d8c7ace88 Restore missing test 2024-01-10 11:26:11 -08:00
Conrad Irwin 69c56ed4ed Remove extra assertion
As part of debugging the port of following tests we added an assertion
that the project was dropped. Now that we initialize the editor and
handle focus correctly in tests, the project is retained by
`refresh_document_highlights`. That doesn't affect the meaning of the
tests
2024-01-10 10:18:45 -07:00
Conrad Irwin a021f69da3 Ensure focus_in and focus_out fire on window activation (#3993)
Also:
- Rename cx.on_blur to cx.on_focus_lost
- Fix a bug where notify calls in focus handlers were ignored
- Fix a bug where vim would get stuck in the wrong mode when switching
  windows

Release Notes:

- (preview only) vim: fix switching between multiple windows
2024-01-10 10:00:07 -07:00
Conrad Irwin 57296f3d42 Prototype cursor sharing (the inefficient way) (#3970)
Release Notes:

- Sync guest users' cursor positions
2024-01-09 22:21:24 -07:00
Conrad Irwin c2fb3b071c guest promotion (#3969)
Release Notes:

- Adds the ability to promote read-only guests to read-write
participants in calls
2024-01-09 22:21:13 -07:00
Conrad Irwin bf8823caf0 Fix some tests (mostly more run_until_parked's...) 2024-01-09 22:14:11 -07:00
Conrad Irwin 836ad478de Run migrations on development server start (#3971)
Release Notes:

- N/A
2024-01-09 21:42:30 -07:00
Conrad Irwin a8fe6c1755 Ensure focus-sensitive tests have active windows 2024-01-09 21:38:06 -07:00
Mikayla 85b2c5841f And a few more todos 2024-01-09 16:41:17 -08:00
Conrad Irwin 13ae271a65 Implement live kit promotion/demotion 2024-01-09 16:10:12 -07:00
Mikayla ab829df8b6 Fix / remove small todos 2024-01-09 14:16:46 -08:00
Conrad Irwin 8103e6f428 Fix merge conflict 2024-01-09 09:44:22 -07:00
Conrad Irwin ce7ac3a693 Merge branch 'main' into migrations-on-server-start 2024-01-09 09:43:14 -07:00
Conrad Irwin 0baab44664 Run migations on development server start 2024-01-08 22:45:15 -07:00
Conrad Irwin fb7516db13 Prototype cursor sharing (the inefficient way)
I think this will be a key user experience driver, but we do need to
find a way to enable it without widening our vector clocks.
2024-01-08 22:32:30 -07:00
Conrad Irwin 6291e43619 Failing test for unmuting microphone 2024-01-08 22:30:03 -07:00
Conrad Irwin 71ef720072 Allow adding write access to guests 2024-01-08 22:02:56 -07:00
Conrad Irwin 32f85b5bc6 guest acls (#3958)
- First pass of real access control
- Check user is host for host-broadcasted project messages
- Only allow read-write users to update buffers

[[PR Description]]

Release Notes:

- (Added|Fixed|Improved) ...
([#<public_issue_number_if_exists>](https://github.com/zed-industries/community/issues/<public_issue_number_if_exists>)).
2024-01-08 15:45:21 -07:00
Conrad Irwin bcf30f19d6 Disallow creating files with '..' (#3156)
Release Notes:

- Fixed a crash that could occur when creating files with '..' in the
path
2024-01-08 15:43:57 -07:00