Commit log

4ea8b82 Introduce channels and move collab popover contents to a collaboration panel (#2828)

Click to expand commit body
### 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)

Max Brunsfeld created

925e09e Update collab panel empty state to match project panel

Click to expand commit body
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>

Nate Butler and Max Brunsfeld created

4312738 Update modal icon styles

Click to expand commit body
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>

Nate Butler and Max Brunsfeld created

7f06191 Disable autoindent in visual block insert mode

Conrad Irwin created

6c15636 Style cleanup for channels panel

Nate Butler created

8839b07 Add broken Tailwind language server

Julia created

c99b530 remove kill search, and restart search immediately upon cycle mode

Click to expand commit body
Co-authored-by: Piotr <piotr@zed.dev>

KCaverly and Piotr created

aeda5d9 fix semantic search panic which is created via incompatible build_search_query path

Click to expand commit body
Co-authored-by: Piotr <piotr@zed.dev>

KCaverly and Piotr created

6e3e61e removed commented out code

KCaverly created

2a7df10 adjusted icon sizes downwards

Click to expand commit body
Co-authored-by: Piotr <piotr@zed.dev>

KCaverly and Piotr created

6f78a16 fix editor height in buffer search, but the dancing is back

Click to expand commit body
Co-authored-by: Piotr <piotr@zed.dev>

KCaverly and Piotr created

1601892 Focus terminal view on mouse click in terminal (#2852)

Click to expand commit body
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

Kirill Bulatov created

fea987b WIP

Nathan Sobo created

80c779b Focus terminal view on mouse click in terminal

Click to expand commit body
Before, terminal view focused the parent (pane) instead and, if
terminal's search bar was open and focused, pane transferred the focus
back

Kirill Bulatov created

a59535e remove redundant and unneeded styling

Click to expand commit body
Co-authored-by: Piotr <piotr@zed.dev>

KCaverly and Piotr created

d727ba1 Merge branch 'main' of github.com:zed-industries/zed into project_search_design

KCaverly created

9bf227b remove regex keymap, and made spacing consistent between search objects

Click to expand commit body
Co-authored-by: Piotr <piotr@zed.dev>

KCaverly and Piotr created

11ecb7b reorganize search bar, enable filters and disable select all during invalid states

Click to expand commit body
Co-authored-by: Piotr <piotr@zed.dev>

KCaverly and Piotr created

139cbbf Move gpui derives tests into gpui crate to avoid dependency cycles (#2851)

Click to expand commit body
`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

Kirill Bulatov created

1c4be24 Move gpui derives tests into gpui crate to avoid dependency cycles

Click to expand commit body
`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.

Kirill Bulatov created

0524abf Lazily initialize and destroy the audio handle state on call initiation and end

Mikayla created

a8ecc1a Add support for a measure function to the layout engine facade

Nathan Sobo created

4efc46c Add derive macro now new elements

Nathan Sobo created

77bc682 Render a component

Nathan Sobo created

65a5c54 Compiling checkpoint

Nathan Sobo created

7062277 Keep collab panel focused after deleting a channel

Max Brunsfeld created

facb942 Add component traits to GPUI (#2850)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

7d3ffae move component into gpui

Mikayla created

a56747a Update assistant status bar icon

Nate Butler created

28649fb Update channel context menu

Nate Butler created

3623a9c Simplify Component implementation

Click to expand commit body
Co-authored-by: Mikayla <mikayla@zed.dev>

Max Brunsfeld and Mikayla created

32bec2e left align buffer search with new structure

KCaverly created

1b4dd49 Vim visual block mode

Click to expand commit body
This isn't quite an exact emulation, as instead of using one selection
that is magically in "column mode", we emulate it with a bunch of zed
multi-selections (one per line).

I think this is better, as it requires fewer changes to the codebase,
and lets you see the impact of any changes immediately on all lines.

Fixes: zed-industries/community#984

Conrad Irwin created

1ffde7b Implement calling contacts into your current channel

Click to expand commit body
Co-authored-by: Mikayla <mikayla@zed.dev>

Max Brunsfeld and Mikayla created

2670e2c Support `editor::SelectAll` in Terminal (#2848)

Click to expand commit body
![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

Kirill Bulatov created

88e094c Associate additional file extensions with known languages (#2847)

Click to expand commit body
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`

Joseph T. Lyons created

de69f08 Support editor::SelectAll in Terminal

Kirill Bulatov created

943aeb8 Run until parked when setting editor's state via EditorTestContext

Click to expand commit body
Co-authored-by: Mikayla <mikayla@zed.dev>

Max Brunsfeld and Mikayla created

40ce099 Use originating language server to resolve additional completion edits

Julia created

d6ca0a1 Associate extensions with language

Joseph T. Lyons created

13cf3ad Update checked icon

Nate Butler created

ddf3642 Avoid flicker when moving between channels

Max Brunsfeld created

46928fa Reword channel-creation tooltips

Max Brunsfeld created

9d60e55 Additional status bar styles

Nate Butler created

d13cedb seperate out channel styles in theme

Mikayla created

1e8a7c7 refactor buffer_search to reduce redundancy and simplying height management

Click to expand commit body
Co-authored-by: maxbrunsfeld <max@zed.dev>

KCaverly and maxbrunsfeld created

d05e885 Add dismiss on escape

Mikayla created

d95b036 Fix cursor style

Click to expand commit body
co-authored-by: Nate <nate@zed.dev>

Mikayla and Nate created

e36dfa0 Add active styling

Mikayla created

9e99b74 Add the channel name into the current call

Mikayla created