Commit graph

11177 commits

Author SHA1 Message Date
Mikayla
3074455386
WIP 2023-08-16 16:56:00 -07:00
Joseph T. Lyons
07675e3c55 v0.101.x dev 2023-08-16 14:22:54 -04:00
Max Brunsfeld
442ec606d0 collab 0.17.0 2023-08-16 11:05:08 -07:00
Max Brunsfeld
4ea8b8292c
Introduce channels and move collab popover contents to a collaboration panel (#2828)
### Summary

This PR introduces channels: a new way of starting collaboration
sessions. You can create channels and invite others to join them. You
can then hold a call in a channel, where any member of the channel is
free to join the call without needing to be invited.

Channels are displayed in a new panel called the collaboration panel,
which now also contains the contacts list, and the current call. The
collaboration popover has been removed from the titlebar.

![Screen Shot 2023-08-15 at 9 25 37
AM](https://github.com/zed-industries/zed/assets/326587/0f989dea-7fb7-4d50-9acd-25c8f1c30cd1)


For now, the channels functionality will only be revealed to staff, so
the public-facing change is just the move from the popover to the panel.

### To-do

* User-facing UI
  * [x] signed-out state for collab panel
  * [x] new icon for collab panel
  * [x] for now, channels section only appears for zed staff
* [x] current call section styling
(https://zed-industries.slack.com/archives/C05CJUNF2BU/p1691189389988239?thread_ts=1691189120.403009&cid=C05CJUNF2BU)
* [x] Channel members
* Channels
  * [x] style channel name editor
* [x] decide on a special "empty state" for the panel, when user has no
contacts
* [x] ensure channels are sorted in a consistent way (expose channel id
paths to client)
  * [x] Figure out layered panels UX
  * [x] Change add contacts to be the same kind of tabbed modal
* [x] race condition between channel updates and user fetches
(`ChannelStore::handle_update_contacts`)
* [x] race condition between joining channels and channel update
messages `collab::rpc::channel_updated`)
* [x] don't display mic as muted when microphone share is pending upon
first joining call

Release Notes:

- Moved the collaboration dropdown into its own panel.
- Added settings for disabling the AI assistant panel button.
- Switch to lazily initializing audio output sources
(https://github.com/zed-industries/community/issues/1840,
https://github.com/zed-industries/community/issues/1919)
2023-08-16 11:03:53 -07:00
Nate Butler
925e09e012 Update collab panel empty state to match project panel
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2023-08-16 13:56:11 -04:00
Nate Butler
43127384c6 Update modal icon styles
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2023-08-16 13:48:12 -04:00
Nate Butler
6c15636ccc Style cleanup for channels panel 2023-08-16 12:38:44 -04:00
Kirill Bulatov
1601892f35
Focus terminal view on mouse click in terminal (#2852)
Before, terminal view focused the parent (pane) instead and, if
terminal's search bar was open and focused, pane transferred the focus
back

Release Notes:

- Fixed terminal search focus not switching to terminal on mouse click
inside
2023-08-16 15:25:17 +03:00
Kirill Bulatov
80c779b95e Focus terminal view on mouse click in terminal
Before, terminal view focused the parent (pane) instead and, if
terminal's search bar was open and focused, pane transferred the focus
back
2023-08-16 15:16:20 +03:00
Kirill Bulatov
139cbbfd3a
Move gpui derives tests into gpui crate to avoid dependency cycles (#2851)
`cargo run` on Zed project leads to rust-analyzer evantually emitting

`[ERROR project_model::workspace] cyclic deps:
gpui_macros(Idx::<CrateData>(269)) -> gpui(Idx::<CrateData>(264)),
alternative path: gpui(Idx::<CrateData>(264)) ->
gpui_macros(Idx::<CrateData>(269))`

error after loading the project.

The PR fixes this by moving away the test to the "root" project.

Release Notes:

- N/A
2023-08-16 10:41:12 +03:00
Kirill Bulatov
1c4be24fb7 Move gpui derives tests into gpui crate to avoid dependency cycles
`cargo run` on Zed project leads to rust-analyzer evantually emitting

`[ERROR project_model::workspace] cyclic deps:
gpui_macros(Idx::<CrateData>(269)) -> gpui(Idx::<CrateData>(264)),
alternative path: gpui(Idx::<CrateData>(264)) ->
gpui_macros(Idx::<CrateData>(269))`

error after loading the project.

The PR fixes this by moving away the test to the "root" project.
2023-08-16 10:19:20 +03:00
Mikayla
0524abf114
Lazily initialize and destroy the audio handle state on call initiation and end 2023-08-15 23:19:11 -07:00
Max Brunsfeld
706227701e Keep collab panel focused after deleting a channel 2023-08-15 16:14:24 -07:00
Mikayla Maki
facb942156
Add component traits to GPUI (#2850)
Release Notes:

- N/A
2023-08-15 15:53:12 -07:00
Mikayla
7d3ffae47d
move component into gpui 2023-08-15 15:44:59 -07:00
Nate Butler
a56747af8c Update assistant status bar icon 2023-08-15 18:36:30 -04:00
Nate Butler
28649fb71d Update channel context menu 2023-08-15 18:36:23 -04:00
Max Brunsfeld
3623a9ca5e Simplify Component implementation
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-15 15:26:02 -07:00
Max Brunsfeld
1ffde7bddc Implement calling contacts into your current channel
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-15 14:56:54 -07:00
Kirill Bulatov
2670e2c9ec
Support editor::SelectAll in Terminal (#2848)
![image](https://github.com/zed-industries/zed/assets/2690773/3aae1e6a-9993-4e65-8ed1-20f2f4b452df)

Allows to use `editor::SelectAll`(`cmd-a` by default) in Terminal to
select all text in it, for future copying.
Currently, does not try to be smart and trim the selected whitespaces
after the last prompt, and copies them too.

Release Notes:

- Support `editor::SelectAll` in Terminal
2023-08-15 23:59:26 +03:00
Joseph T. Lyons
88e094c6e2
Associate additional file extensions with known languages (#2847)
Going to do these in batches.  Here is the first one.

Release Notes:

- Associated additional file extensions with known languages
(([#633](https://github.com/zed-industries/community/issues/633)),
([#1822](https://github.com/zed-industries/community/issues/1822))).
    - C++: `cxx`, `hxx`, `inl`
    - JavaScript: `cjs`
    - Python: `mpy`
    - TypeScript: `cts`, `d.cts`, `d.mts`, `mts`
2023-08-15 16:46:42 -04:00
Kirill Bulatov
de69f08c10 Support editor::SelectAll in Terminal 2023-08-15 23:43:32 +03:00
Max Brunsfeld
943aeb8c09 Run until parked when setting editor's state via EditorTestContext
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-15 13:42:54 -07:00
Joseph T. Lyons
d6ca0a1f24 Associate extensions with language 2023-08-15 16:33:02 -04:00
Nate Butler
13cf3ada39 Update checked icon 2023-08-15 16:29:01 -04:00
Max Brunsfeld
ddf3642d47 Avoid flicker when moving between channels 2023-08-15 13:18:56 -07:00
Max Brunsfeld
46928fa871 Reword channel-creation tooltips 2023-08-15 13:08:44 -07:00
Nate Butler
9d60e550be Additional status bar styles 2023-08-15 15:32:14 -04:00
Mikayla
d13cedb248
seperate out channel styles in theme 2023-08-15 12:12:30 -07:00
Mikayla
d05e8852d3
Add dismiss on escape 2023-08-15 11:02:18 -07:00
Mikayla
d95b036fde
Fix cursor style
co-authored-by: Nate <nate@zed.dev>
2023-08-15 10:58:31 -07:00
Mikayla
e36dfa0946
Add active styling 2023-08-15 10:53:30 -07:00
Mikayla
9e99b74fce
Add the channel name into the current call 2023-08-15 10:45:36 -07:00
Max Brunsfeld
fafc10d57c Merge branch 'main' into collab-panel 2023-08-15 09:09:50 -07:00
Conrad Irwin
404b1aa65a
Fix vim selection to include entire range (#2787)
Update vim mode to have vim selection and editor selections match.
Before this we had to adjust between vim selections and real selections
when making changes; now we have to adjust when making selections.

Release Notes:

- vim: Ensure editor selection matches the vim selection
([#1796](https://github.com/zed-industries/community/issues/1796)).
- vim: Fix `s` in visual line mode
- vim: Add `o` and `shift-o` to toggle direction of visual selection
- vim: Fix `v` and `shift-v` to toggle back to normal mode
- vim: Fix block selections like `vi}` to contain correct whitespace
2023-08-15 08:36:17 -06:00
Conrad Irwin
1e3f468fc7
Fix vim escape in normal mode (#2844)
Fixes: zed-industries/community#1857

- vim: Fix escape in normal mode
([#1857](https://github.com/zed-industries/community/issues/1857)).
2023-08-15 08:35:49 -06:00
Mikayla
111e17b220
Merge branch 'main' into collab-panel 2023-08-15 03:25:45 -07:00
Mikayla Maki
22da42fc69
Add components example (#2846)
This PR is a continuation of the components UI exploration I've been
doing. It adds an example to the GPUI examples page and totally
restructures the generics on our MouseEventHandler.

Release Note:
- N/A
2023-08-15 03:17:50 -07:00
Mikayla
e5eed29c72
Add components example
Re-arrange generics on mouse event handler
Add TypeTag struct for dynamically tagged components
2023-08-15 03:06:43 -07:00
Max Brunsfeld
cbf497bc12 Fix race condition when UpdateChannel message is received while fetching participants for previous update
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-14 17:36:35 -07:00
Max Brunsfeld
71454ba27c Limit number of participants shown in channel face piles
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-14 17:11:03 -07:00
Max Brunsfeld
13982fe2f4 Display intended mute status while still connecting to a room
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-14 16:47:26 -07:00
Max Brunsfeld
5af8ee71aa Fix clicking outside of modals to dismiss them
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-14 16:38:21 -07:00
Max Brunsfeld
d7f21a9155 Ensure channels are sorted alphabetically
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-14 16:27:35 -07:00
Conrad Irwin
1af7425059 Fix vim escape in normal mode
Fixes: zed-industries/community#1857
2023-08-14 16:05:41 -06:00
Conrad Irwin
fb90eada70 Merge branch 'main' into vim-visual-selection 2023-08-14 15:29:33 -06:00
Nate Butler
ef73e77d3d Update some status bar icons and states 2023-08-14 17:15:25 -04:00
Conrad Irwin
5b37cdcb04 Better tests 2023-08-14 15:03:16 -06:00
Nate Butler
b4b044ccbf Initial modal styles 2023-08-14 17:01:34 -04:00
Nate Butler
e0d73842d2 Continue panel styles 2023-08-14 16:12:39 -04:00