Commit log

dd66294 Fix panic when saved conversations directory changes (#2685)

Click to expand commit body
Fixes
https://linear.app/zed-industries/issue/Z-2542/deleting-assistant-conversations-with-zed-open-can-cause-a-crash

We were updating the view's state but missed a `notify`, which caused
the `UniformList` responsible for rendering the saved conversations to
panic when some files were deleted.

Release Notes:

- Fixed a crash that could happen when deleting a saved assistant
conversation from the filesystem.

Antonio Scandurra created

f6c96ec Fix panic when saved conversations directory changes

Click to expand commit body
We were updating the view's state but missed a `notify`, which caused
the `UniformList` responsible for rendering the saved conversations
to panic when some files were deleted.

Antonio Scandurra created

801f41e Move audio dependency to dev

Mikayla Maki created

8b8bafe Remove spurious audio depedency

Mikayla Maki created

594b6e8 collab 0.16.0

Mikayla Maki created

6a15ae9 v0.95.x dev

Joseph T. Lyons created

76873c5 Z-2276/Z-2275: Project & Branch switchers (#2662)

Click to expand commit body
This PR adds project and branch switchers in top left corner. 

Release Notes:
- Added a project & branch switcher under project name.

Nate Butler created

b80281e cargo fmt

Piotr Osiewicz created

1baa135 Update project & git menus to be Toggleable<Interactive<ContainedText>>

Click to expand commit body
Co-Authored-By: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>

Nate Butler and Piotr Osiewicz created

afccf60 updated both embed and parsing tasks to be multi-threaded.

KCaverly created

de01fa1 Update collaboration sounds, add sounds to screensharing (#2679)

Click to expand commit body
Updates all collab sounds, add screen sharing sounds.

Release Notes:

- Improved collaboration sounds for joining and leaving a call, muting
and unmuting the mic.
- Added a sound when you start and stop screen sharing.

Nate Butler created

0e0d78d Do not render recent paths in toolbar's project switcher

Piotr Osiewicz created

ec47464 branch_list: Show match count on the right hand side of a header.

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

Piotr Osiewicz and Antonio created

85add26 Track regions instead of clicks.

Click to expand commit body
Get rid of superfluous params in RenderParams related to hover & click state.

Co-authored-by: Antonio <antonio@zed.dev>

Piotr Osiewicz and Antonio created

eff0ee3 enabled batching for embedding calls

KCaverly created

91a94d2 Simplify inlay map data (#2683)

Click to expand commit body
Current logic does not need to access inlays by id in O(1), future
dynamic hints would need to know which hint they hover at, but that will
be done using binary search over the position's anchor we hover on;
nothing else seems to need this HashMap in the near future.

Because of that removal, no need to store `InlayId` apart from the
`Inlay`, hence remove the `InlayProperties` struct entirely.
This allows to eliminate a few generics along the way.

Release Notes:

- N/A

Kirill Bulatov created

cc88bff Fix click-through behaviour of git panel

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

Piotr Osiewicz and Antonio created

d7f6b5e Remove InlayProperties

Kirill Bulatov created

6ba1c30 Simplify inlay map data

Kirill Bulatov created

8b3b1a6 fixup! Remove stacks from branch list header

Piotr Osiewicz created

64b77bf Remove stacks from branch list header

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

Piotr Osiewicz and Antonio created

5505ebf Support `assistant: quote selection` on multibuffers (#2682)

Click to expand commit body
Fixes
https://linear.app/zed-industries/issue/Z-2430/assistant-quote-selection-does-not-work-in-multi-buffer

Release Notes:

- Added support for invoking `assistant: quote selection` (`cmd->`) when
editing a multi-buffer.

Antonio Scandurra created

d5f0df9 Support `assistant: quote selection` on multibuffers

Antonio Scandurra created

1914037 Restore focus to previously focused view when dismissing a modal (#2680)

Click to expand commit body
Fixes
https://linear.app/zed-industries/issue/Z-2500/focus-is-moved-from-the-assistant-panel-when-opening-and-closing

Release Notes:

- Fixed a bug that caused modals (such as the command palette) to not
restore focus when dismissing them.

Antonio Scandurra created

03a00df Restore focus to previously focused view when dismissing a modal

Antonio Scandurra created

a8602b2 Add `Modal::has_focus` and introduce a `ModalHandle` trait object

Antonio Scandurra created

25564ea Introduce a `WindowContext::focus` method that implies the window id

Antonio Scandurra created

a7ce602 Update collaboration sounds, add sounds to screensharing

Nate Butler created

31483db Accept `null` as a valid action, to disable a keystroke (#2678)

Click to expand commit body
Deals with https://github.com/zed-industries/community/issues/772
Closes
https://linear.app/zed-industries/issue/Z-1518/allow-keybindings-to-be-removed

Now, configuration like 
```json5
[
    {
        "context": "Editor",
        "bindings": {
            "alt-v": null,
        }
    }
]
```

will make `alt+v` to print `√` instead of moving the caret one page up.

Release Notes:

- Added a way to disable keybindings with `null` value

Kirill Bulatov created

b6520a8 updated vector_store to reindex on save after timed delay

KCaverly created

4c51ab8 Accept `null` as a valid action, to disable a keystroke

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

Kirill Bulatov and Mikayla Maki created

76af424 Rename `color_scheme` -> `theme` (#2677)

Click to expand commit body
Just some theme tidying, renames some things to be more consistent with
our planned naming conventions going forward.

Release Notes:

- N/A (No public facing changes)

Nate Butler created

e45d3a0 WIP: initial reindexing logic worked out

KCaverly created

48371ab Remove PickerEvent::Dismiss emission from picker header

Piotr Osiewicz created

e9b34de Fix click behaviour of vcs/project dropdowns

Piotr Osiewicz created

0d18b72 vim: Further improve ~ handling

Click to expand commit body
Now works with Visual{line} mode, collapses selections like nvim,
and doesn't fall off the end of the line.

Conrad Irwin created

f461a70 Remove unused ts aliases

Nate Butler created

65dbb38 `color_scheme` -> `theme`

Nate Butler created

c5a42c3 Remove unused `color_scheme` field in the theme (#2676)

Click to expand commit body
We removed the `theme_testbench` crate a while back - It seems like that
was the only thing using the `color_scheme` field in the exported theme.

Removing this from the theme removes something like 42k lines of
generated JSON every time we build the theme (2k lines / 28% of the
total lines per generated theme!)

Release Notes:

- N/A (No public facing changes)

Nate Butler created

a732b2e Remove unused `color_scheme` field in the theme

Click to expand commit body
I totally didn't mean to commit this right to main T_T

Nate Butler created

c409059 Revert "Remove unused `color_scheme` field in the theme"

Click to expand commit body
This reverts commit 5a1476a1e58c43e64d051e5af9786d8edaa85088.

Nate Butler created

5a1476a Remove unused `color_scheme` field in the theme

Nate Butler created

0b4c5db Use theme store to pass `color_scheme` directly to components (#2675)

Click to expand commit body
This PR adds a theme store to allow components to directly access the
theme without requiring it to be passed down as props every time it is
used.

So before, you might need to do something like `text(theme, "variant",
"hovered")`, you could now just call `text("variant", "hovered")`.

This also means that style_trees don't need to be called with a theme
either:

```ts
export default function app(): any {
    const theme = useTheme()

    return {
        meta: {
            name: theme.name,
            is_light: theme.is_light,
        },
        command_palette: command_palette(),
        contact_notification: contact_notification(),
        // etc...
    }
}
```

We do this by creating a zustand store to store the theme, and allow it
to be accessed with `useThemeStore.getState().theme`.

```ts
import { create } from "zustand"
import { ColorScheme } from "./color_scheme"

type ThemeState = {
    theme: ColorScheme | undefined
    setTheme: (theme: ColorScheme) => void
}

export const useThemeStore = create<ThemeState>((set) => ({
    theme: undefined,
    setTheme: (theme) => set(() => ({ theme })),
}))

export const useTheme = (): ColorScheme => {
    const { theme } = useThemeStore.getState()

    if (!theme) throw new Error("Tried to use theme before it was loaded")

    return theme
}
```

Release Notes:

- N/A (No public facing changes)

Nate Butler created

8a5e704 Update a few more components

Nate Butler created

d5acfe8 Use theme store to pass `color_scheme` directly to components

Nate Butler created

0733e8d Remove editor::Cancel binding from vim

Click to expand commit body
When you hit <escape> in the command palette, it first editor::Cancel
because the command palette is also a focused editor; this binding was
catching before the `menu::Cancel` that you probably want.

From looking at the uses of editor::Cancel it seems like the only way to
trigger this is with <escape> in an editor. Rather than trying to hook
into the existing editor cancel and add vim-specific behaviour, we'll
instead take responsibility for binding directly to <escape> when
necessary.

Fixes: zed-industries/community#1347

Conrad Irwin created

f8316dd Add sound effects to calls (#2673)

Click to expand commit body
This PR adds joined, leaving, mute, and unmute sound effects to Zed. 

Release Notes:

- Added joined, leaving, mute, and unmute sound effects (preview-only)

Mikayla Maki created

c700342 Guard against uninstantiated globals in tests

Mikayla Maki created

0e4c904 Add joined sound effect when new participants join the room

Mikayla Maki created

d212782 Add first-pass sound support to Zed

Mikayla Maki created