Commit log

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

fe57e04 vim: Allow ^ as a motion

Click to expand commit body
Fixes: zed-industries/community#856

Conrad Irwin created

b055f59 vim: ctrl-c to exit visual mode

Click to expand commit body
Fixes: zed-industries/community#1447
Contributes: zed-industries/community#1089

Conrad Irwin created

14eab4e branch list: dismiss correct window on PickerEvent.

Click to expand commit body
Query proper window

Piotr Osiewicz created

6c01aea Do not perform OnTypeFormating after pair brace insert (#2672)

Click to expand commit body
Closes
https://linear.app/zed-industries/issue/Z-2358/ra-brace-auto-surround-causes-duplicate-end-char-with-selection

Release Notes:

- Fixed a bug when duplicate brace appeared after selected text got
surrounded with braces

Kirill Bulatov created

806268f Merge branch 'main' into git-menu

Piotr Osiewicz created

85701c9 Do not perform OnTypeFormating after pair brace insert

Click to expand commit body
Co-Authored-By: Julia Risley <julia@zed.dev>

Kirill Bulatov and Julia Risley created

4eedc3e Remove flex from underneath the pickers

Piotr Osiewicz created

8efb66b Do not add extra spaces to hints (#2671)

Click to expand commit body
Closes
https://linear.app/zed-industries/issue/Z-2526/inlay-hints-in-typescript-types-have-extra-space-before#comment-ac88a101

Release Notes:

- N/A

Kirill Bulatov created

43d4f04 Do not add extra spaces to hints

Kirill Bulatov created

e36d5f4 Fix % when on the last character of the line

Click to expand commit body
Contributes: zed-industries/community#682

Conrad Irwin created

026ad19 Dismiss dropdowns on click out

Piotr Osiewicz created

525521e Render match count next to branch label

Piotr Osiewicz created

138de37 Add basic sound handling infrastructure

Mikayla Maki created

18a5a47 moved semantic search model to dev and preview only.

Click to expand commit body
moved db update tasks to long lived persistent task.

Co-authored-by: maxbrunsfeld <max@zed.dev>

KCaverly and maxbrunsfeld created

3408b98 updated file compare in the semantic indexing engine, to work off of modified system times as opposed to file hashes

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

KCaverly and maxbrunsfeld created

36907bb updated vector store indexing to only use languages with an embedding.scm treesitter query

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

KCaverly and maxbrunsfeld created

e017d62 Remove excessive hint update queries (#2667)

Click to expand commit body
Closes
https://linear.app/zed-industries/issue/Z-2513/panic-in-refresh-inlay-hints

* Filter out queries for outdated buffers just before hint tasks spawn:
  multicaret edits might emit standalone events simultaneously
* Only spawn inlay update tasks for visible buffers with corresponding
  language
* Do not spawn tasks for local projects' buffers without LSP servers

Release Notes:

- N/A

Kirill Bulatov created

ae54e1d Remove excessive hint update queries

Click to expand commit body
* Filter out queries for outdated buffers just before hint tasks spawn:
  multicared edits might empit standalone events simultaneously
* Only spawn inlay update tasks for visible buffers with corresponding
  language
* Do not spawn tasks for local projects' buffers without LSP servers

Kirill Bulatov created

f83514c Fix regression in handling git FS events (#2670)

Click to expand commit body
As part of an optimization in
https://github.com/zed-industries/zed/pull/2663, I changed the way that
the worktree ignores FS events within unloaded directories. But this
accidentally prevented us from detecting some events that occur inside
of `.git` directories.

In this PR, I've made further tweaks to which FS events we can ignore.
We now explicitly opt *in* to scanning `.git` (shallowly) directories
(even though they are ignored). Note that we still don't recursively
scan the git directory (including all of the files inside `objects`
etc). This seems like the correct amount of work to do, and from my
testing (and our unit tests that use the real FS and real git
repositories), it seems to work correctly.

Release Notes:

- Fixed a bug where Zed would not detect some git repository changes
(preview only).

Max Brunsfeld created