Commit log

1c79b17 zed 0.94.4

Joseph T. Lyons created

e13cbc5 Revert "Add call events (#2704)"

Click to expand commit body
This reverts commit 6c44fc59b76d0d482211599f4f38262898295557.

Joseph T. Lyons created

4dfe245 v0.94.x stable

Joseph T. Lyons created

6c44fc5 Add call events (#2704)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

93498ca zed 0.94.3

Kirill Bulatov created

af8903b Fix language servers improper restarts (#2702)

Click to expand commit body
Fixes
https://linear.app/zed-industries/issue/Z-2595/language-servers-are-unnecessarily-restarted-when-unrelated-settings

Language servers mixed `initialization_options` from hardcodes and user
settings, fix that to ensure we restart servers on their settings
changes only.

Release Notes:

- N/A

Kirill Bulatov created

ba3ce6e zed 0.94.2

Max Brunsfeld created

bd716f7 Restart LSP server on corresponding `initialization_options` change (#2690)

Click to expand commit body
Inlay hints depend on LSP server settings, but servers do not update the
initialization options and query hints with old settings.

Generally, we cannot know whether a certain option can be changed
without server restart, which the name of the options implies too, so be
on the safe side and restart the server.
Hints will update automatically after the server either sends a /refresh
request or reports its work progress end after startup.

Release Notes:

- Fixed LSP server not restarting after `initialization_options`
settings changes

Kirill Bulatov created

df882e2 Clip find preceding boundary (#2689)

Click to expand commit body
Fixes inability to do `alt + left arrow` when an inlay with `Bias::Left`
is right to the left of the caret.

Release Notes:

- N/A

Kirill Bulatov created

c28af10 Show inlay hints on startup for every language server with work events (#2686)

Click to expand commit body
Closes https://linear.app/zed-industries/issue/Z-2537/inlay-hint-issues

Language servers such as typescript-language-servers report a single
work event, ending right after server's startup.

Other servers might send more similar event, also during startup. The
rest of the events are diagnostic-related and we filter them out.

React on such events with /refresh-like hint update, that will check
only the visible part of the editor for hints and might be replaced by
other /refresh requests, if needed.

Release Notes:

- N/A

Kirill Bulatov created

cc2a803 zed 0.94.1

Antonio Scandurra created

5509c8c 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

5121702 Use less padding for typescript parameter hints (#2684)

Click to expand commit body
Part of https://linear.app/zed-industries/issue/Z-2537/inlay-hint-issues

Release Notes:

- N/A

Kirill Bulatov created

3930f3b v0.94.x preview

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

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

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

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

48371ab Remove PickerEvent::Dismiss emission from picker header

Piotr Osiewicz created

e9b34de Fix click behaviour of vcs/project dropdowns

Piotr Osiewicz 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

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