Commit log

7a4de73 git: Ensure no more than 4 blame processes run concurrently for each multibuffer (#44843)

Click to expand commit body
Previously we were only awaiting on up to 4 of the blame futures at a
time, but we would still call `Project::blame_buffer` eagerly for every
buffer in the multibuffer. Since that returns a `Task`, all the blame
invocations were still launched concurrently.

Release Notes:

- N/A

Cole Miller created

b8d0da9 collab: Add `copilot-swe-agent[bot]` to the `GET /contributor` endpoint (#44934)

Click to expand commit body
This PR adds the `copilot-swe-agent[bot]` user to the `GET /contributor`
endpoint so that it passes the CLA check.

Release Notes:

- N/A

Finn Evers created

870159e git: Fix partially-staged paths not being accurately rendered (#44837)

Click to expand commit body
Updates #44089 

- Restores the ability to have a partially staged/`Indeterminate` status
for the git panel checkboxes
- Removes the `optimistic_staging` logic, since its stated purpose is
served by the `PendingOps` system in the `GitStore` (which may have
bugs, but we should fix them in the git store rather than adding another
layer)

Release Notes:

- Fixed partially-staged files not being represented accurately in the
git panel.

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Cole Miller and Anthony Eid created

0ead466 project_panel: Fix divider taking too much horizontal space (#44920)

Click to expand commit body
Closes: #44917

While setting up the project for contribution, I noticed that the
divider in the welcome dialog was rendering incorrectly on the `main`
branch compared to the latest release.

**Current behaviour (`main` branch):**
<img width="796" height="690" alt="image"
src="https://github.com/user-attachments/assets/3f7d6c73-14eb-47f3-ad83-4796f5f7be0f"
/>

**Expected behaviour (Release `0.216.1`):**
<img width="794" height="692" alt="image"
src="https://github.com/user-attachments/assets/b67857dc-a03d-4e49-bb33-22fe0c83ac5d"
/>

---

After some investigation, it looks like the issue was introduced in
#44505, specifically in [these
changes](https://github.com/zed-industries/zed/pull/44505/changes#diff-4ea61133da5775f0d5d06e67a8dccc84e671c3d04db5f738f6ebfab3a4df0b01R147-R158),
which caused the divider to take the full width instead of being
properly constrained.

**PR result**:
<img width="666" height="574" alt="image"
src="https://github.com/user-attachments/assets/e12b7778-b7cc-4855-b82e-3470dfe43365"
/>

Release Notes:

- Fixes -or- divider rendering incorrectly

Artem Molonosov created

b52f907 extension_ci: Auto-assign version bumps to GitHub actor (#44929)

Click to expand commit body
Release Notes:

- N/A

Finn Evers created

4096bc5 languages: Add injections for string and tagged template literals for JS/TS(X) (#44180)

Click to expand commit body
Hi! This pull request adds language injections for string and tagged
template literals for JS/TS(X).
This is similar to what [this
extension](https://marketplace.visualstudio.com/items?itemName=bierner.comment-tagged-templates)
provides for VSCode. This PR is inspired by this tweet
https://x.com/leaverou/status/1996306611208388953?s=46&t=foDQRPR8oIl1buTJ4kZoSQ

I've added injections queries for the following languages: HTML, CSS,
GraphQL and SQL.
This works for:

- String literals: `const cssString = /* css */'button { color: hotpink
!important; }';`
- Template literals: ```const cssString = /* css */`button { color:
hotpink !important; }`;```

All injections support the format with whitespaces inside, i.e. `/* html
*/` and without them `/*html*/`.

## Screenshots

|before|after|
|---------|-----------|
| <img width="1596" height="1476" alt="CleanShot 2025-12-04 at 21 12
00@2x"
src="https://github.com/user-attachments/assets/8e0fb758-41f0-43a8-93e6-ae28f79d7c8f"
/> | <img width="1576" height="1496" alt="CleanShot 2025-12-04 at 21 08
35@2x"
src="https://github.com/user-attachments/assets/b47bb9c1-224e-4a24-8f08-a459f1081449"
/>|

Release Notes:

- Added language injections for string and tagged template literals in
JS/TS(X)

Vitaly Slobodin created

97f6cda Add an autofix workflow (#44922)

Click to expand commit body
One of the major annoyances with writing code with claude is that its
poorly indented; instead of requiring manual intervention, let's just
fix that in CI.

Similar to https://autofix.ci, but as we already have a github app,
we can do it without relying on a 3rd party.

This PR doesn't trigger the workflow (we need a separate change in Zippy
to do
that) but will let me test it manually.

Release Notes:

- N/A

Conrad Irwin created

5987dff Add save_file and restore_file_from_disk agent tools (#44789)

Click to expand commit body
Release Notes:

- Added `save_file` and `restore_file_from_disk` tools to the agent,
allowing it to resolve dirty buffer conflicts when editing files. When
the agent encounters a file with unsaved changes, it will now ask
whether you want to keep or discard those changes before proceeding.

Nathan Sobo created

eceece8 docs: Update links to account page (#44924)

Click to expand commit body
This PR updates the links to the account page to point to the Dashboard.

Release Notes:

- N/A

Marshall Bowers created

faef5c9 docs: Drop deprecated key from settings for Agent Panel (#44923)

Click to expand commit body
The `version` key was deprecated a while ago.

Release Notes:

- N/A

Kunall Banerjee created

47a6bd2 Terminal ANSI colors (#44912)

Click to expand commit body
Closes #38992 

Release Notes:

- N/A

---------

Co-authored-by: dangooddd <dangoodds@gmail.com>

Matt Miller and dangooddd created

c7a1852 collab: Add `dependabot[bot]` to the `GET /contributor` endpoint (#44919)

Click to expand commit body
This PR adds the `dependabot[bot]` user to the `GET /contributor`
endpoint so that it passes the CLA check.

Release Notes:

- N/A

Finn Evers created

ee6469d project: Clear worktree settings when worktrees get removed (#44913)

Click to expand commit body
Release Notes:

- N/A *or* Added/Fixed/Improved ...

Lukas Wirth created

9e11aae Add ZoomIn and ZoomOut actions for independent zoom control (#44587)

Click to expand commit body
Closes #14472

Introduces `workspace::ZoomIn` and `workspace::ZoomOut` actions that
complement the existing `workspace::ToggleZoom` action. ZoomIn only
zooms if not already zoomed, and ZoomOut only zooms out if currently
zoomed. This enables composing zoom actions with
`workspace::SendKeystrokes` for workflows like "focus terminal then zoom
in".


<details><summary>Example usage</summary>
<p>

Example keybindings:

```json
[
  {
    "bindings": {
      "ctrl-cmd-,": "terminal_panel::ToggleFocus",
      "ctrl-cmd-.": "workspace::ZoomIn",
    }
  },
  {
    "context": "Terminal",
    "bindings": {
      "cmd-.": "terminal_panel::ToggleFocus"
    }
  },
  {
    "context": "!Terminal",
    "bindings": {
      "cmd-.": ["workspace::SendKeystrokes", "ctrl-cmd-, ctrl-cmd-."]
    }
  },
]
```

Demo:


https://github.com/user-attachments/assets/1b1deda9-7775-4d78-a281-dc9622032ead

</p>
</details> 



Release Notes: 

- Added the actions: `workspace::ZoomIn` and `workspace::ZoomOut` that
complement the existing `workspace::ToggleZoom` action

pedroni created

fb574d8 Inline assistant: Clear failure text when regenerating (#44911)

Click to expand commit body
Release Notes:

- N/A

Michael Benfield created

523f093 editor: Use Tree-sitter scopes to calculate quote autoclose (#44281)

Click to expand commit body
Closes #44233

Release Notes:

- Fixed quote autoclose incorrectly counting quotes inside strings

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>

Mayank Verma and Ben Kunkle created

2441dc3 gpui: Take advantage of unified memory on Apple silicon (#44273)

Click to expand commit body
Metal chooses a buffer’s default storage mode based on the type of GPU
in use.
On Apple GPUs, the default mode is shared, which allows the CPU and GPU
to access the same memory without requiring explicit synchronization.
On discrete or external GPUs, Metal instead defaults to managed storage,
which does require explicit CPU–GPU memory synchronization.

This change aligns our buffer usage with Metal’s default behavior and
avoids unnecessary synchronization on Apple-silicon Macs. As a result,
memory usage on Apple hardware is reduced and performance improves due
to fewer sync operations.

Ref:
https://developer.apple.com/documentation/metal/setting-resource-storage-modes
Ref:
https://developer.apple.com/documentation/metal/synchronizing-a-managed-resource-in-macos

With the storage mode:

<img width="356" height="74" alt="image"
src="https://github.com/user-attachments/assets/e5a5bf9a-f339-417b-b5ab-818d8f692bd1"
/>

On main branch:

<img width="356" height="74" alt="image"
src="https://github.com/user-attachments/assets/6ccd77fe-7929-4423-9696-671d185ceffb"
/>

That's a 44% reduction of memory usage.

Release Notes:

- Reduced memory usage on Apple-silicon Macs by using shared memory
where appropriate

---------

Signed-off-by: Marco Mihai Condrache <52580954+marcocondrache@users.noreply.github.com>

Marco Mihai Condrache created

969e9a6 Fix micromamba not initializing shell (#44646)

Click to expand commit body
Closes #44645

This is a continuation of #40577

Release Notes:
- initializes micromamba based on the shell

Casper van Elteren created

dbab71e Add `.claude/settings.local.json` to `.gitignore` (#44905)

Click to expand commit body
Ignore people's local Claude Code settings

Release Notes:

- N/A

Agus Zubiaga created

c75d880 Check for local files from within surrounding parens (#44733)

Click to expand commit body
Closes #18228

We parse local clickable links by looking for start/end based on
whitespace. However, this means that we don't catch links which are
embedded in parenthesis, such as in markdown syntax:
`[here's my link text](./path/to/file.txt)`

Parsing strictly against parenthesis can be problematic, because
strictly-speaking, files can have parenthesis. This is a valid file name
in at least MacOS:
`thisfilehas)parens.txt`

Therefore, this change adds a small regex layer on top of the filename
finding logic, which parses out text within parenthesis. If any are
found, they are checked for being a valid filepath. The original
filename string is also checked in order to preserve behavior.

Before:


https://github.com/user-attachments/assets/37f60335-e947-4879-9ca2-88a33f5781f5

After:



https://github.com/user-attachments/assets/bd10649e-ad74-43da-80f4-3e7fd56abd86



Release Notes:

- Improved link parsing for cases when a link is embedded in
parenthesis, e.g. markdown

KyleBarton created

3076c4e Add behavior for multiple click and drag to markdown component (#43813)

Click to expand commit body
Closes #43354

Overview:
In a diagnostic panel (and all Markdown derived panels, including
function hint popovers and the like), the expected behavior is that when
a user double clicks a word, the whole word is highlighted. If they
double click and hold, then drag, the text selection proceeds word by
word. There is similar behavior for triple click which goes line by
line, and quadruple click which selects all text.

Before this fix, the DiagnosticPopover allowed the user to click and
drag, but double click and drag reverts to selecting text character by
character. The same wrong behavior is shown for triple click (line).
Quadruple click (all text) was not previously implemented in
MarkdownElement.

Quick example of wrong behavior, showing single click and drag, double
click and drag, triple click and drag, then quadruple click (fails).


https://github.com/user-attachments/assets/1184e64d-5467-4504-bbb6-404546eab90a


Quick example showing the correct behavior fixed in this PR:


https://github.com/user-attachments/assets/06bf5398-d6d6-496c-8fe9-705031207f05



Nota bene:
I'm not a rust dev, so a lot of this relied on my C/C++ experience,
cribbing from elsewhere in the repo, and help from Claude. If that's not
ok for this project, I totally understand.

Much of this was informed by editor.rs, using a similar pattern to
SelectMode in there (see lines 450, and begin_selection and
extend_selection). It didn't seem appropriate to import SelectMode from
there (also Markdown range and Anchor range seemed different enough),
nor did it seem appropriate to move SelectMode to markdown.rs.

The tests are non-ui based, instead testing the relevant functions. Not
sure if that's what's expected.

Release Notes:

- Double- and triple-click selection now correctly expands by word and
by line within Markdown elements (diagnostics, agent panel, etc.).

RMcGhee created

0410b23 editor: Refactor cursor_offset_on_selection field in favor of VimModeSettings (#44889)

Click to expand commit body
In a previous Pull Request, a new field was added to `editor::Editor`,
namely `cursor_offset_on_selection`, in order to control whether the
cursor representing the head of a selection should be positioned in the
last selected character, as we have on Vim mode, or after, like we have
when Vim mode is disabled.

This field would then be set by the `vim` crate, depending on the
current vim mode. However, it was noted that
`vim_mode_setting::VimModeSetting` already exsits and allows other
crates to determine whether Vim mode is enabled or not. Since we're
already checking `!range.is_empty()` in
`editor::element::SelectionLayout::new` we can then rely on simply
determining whether Vim mode is enabled to decide whether tho shift the
cursor one position to the left when making a selection.

As such, this commit removes the `cursor_offset_on_selection` field, as
well as any related methods in favor of a new `Editor.vim_mode_enabled`
method, which can be used to achieve the same behavior.

Relates to #42837 

Release Notes:

- N/A

Dino created

7d7ca12 Add timeout support to terminal tool (#44895)

Click to expand commit body
Adds an optional `timeout_ms` parameter to the terminal tool that allows
bounding the runtime of shell commands. When the timeout expires, the
running terminal task is killed and the tool returns with the partial
output captured so far.

## Summary

This PR adds the ability for the agent to specify a maximum runtime when
invoking the terminal tool. This helps prevent indefinite hangs when
running commands that might wait for network, user prompts, or long
builds/tests.

## Changes

- Add `timeout_ms` field to `TerminalToolInput` schema
- Extend `TerminalHandle` trait with `kill()` method
- Implement `kill()` for `AcpTerminalHandle` and `EvalTerminalHandle`
- Race terminal exit against timeout, killing on expiry
- Update system prompt to recommend using timeouts for long-running
commands
- Add test for timeout behavior
- Update `.rules` to document GPUI executor timers for tests

## Testing

- Added `test_terminal_tool_timeout_kills_handle` which verifies that
when a timeout is specified and expires, the terminal handle is killed
and the tool returns with partial output.
- All existing agent tests pass.

Release Notes:

- agent: Added optional `timeout_ms` parameter to the terminal tool,
allowing the agent to bound command runtime and prevent indefinite hangs

Nathan Sobo created

7cd4833 agent_ui_v2: Fix `set_position` not updating the position properly (#44902)

Click to expand commit body
The panel could not be relocated using the right click menu because both
valid positions mapped to `Left`

Release Notes:

- N/A

Finn Evers created

d4f9657 editor: Accept next line prediction (#44411)

Click to expand commit body
Closes  [#20574](https://github.com/zed-industries/zed/issues/20574)

Release Notes:

- Replaced editor action editor::AcceptPartialEditPrediction with
editor::AcceptNextLineEditPrediction and
editor::AcceptNextWordEditPrediction

Tested manually on windows, attaching screen cap.
https://github.com/user-attachments/assets/fea04499-fd16-4b7d-a6aa-3661bb85cf4f

Updated existing test for accepting word prediction in copilot - it is
already marked as flaky, not sure what to do about it and I'm not really
confident creating new one without a working example.

Added migration of keymaps and new defaults for windows, linux, macos in
defaults and in cursor.

This should alleviate
[#21645](https://github.com/zed-industries/zed/issues/21645)
I used some work done in stale PR
https://github.com/zed-industries/zed/pull/25274, hopefully this one
makes it through!

---------

Co-authored-by: Agus Zubiaga <agus@zed.dev>

teleoflexuous and Agus Zubiaga created

0d891bd Enable Zeta edit predictions with custom URL without authentication (#43236)

Click to expand commit body
Enables using Zeta edit predictions with a custom
`ZED_PREDICT_EDITS_URL` without requiring authentication to Zed servers.
This is useful for:

- Development and testing workflows
- Self-hosted Zeta instances
- Custom AI model endpoints

Prior context on this usage of `ZED_PREDICT_EDITS_URL`:
https://github.com/zed-industries/zed/pull/30418

Release Notes:
- Improved self-hosted zeta UX. Users no longer have to log into Zed to
use custom or self-hosted zeta backends.

---------

Co-authored-by: Agus Zubiaga <agus@zed.dev>

Dominic Burkart and Agus Zubiaga created

1b29725 git_ui: Fix Git panel color for staged new files (#44071)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/38797

Release Notes:

- Fixed Git panel color for staged new files

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
Co-authored-by: Cole Miller <cole@zed.dev>

Xiaobo Liu and Cole Miller created

79dfae2 gpui: Fix some memory leaks on macOS platform (#44639)

Click to expand commit body
While profiling with instruments, I discovered that some of the strings
allocated on the mac platform are never released, and the profiler marks
them as leaks

<img width="1570" height="219" alt="image"
src="https://github.com/user-attachments/assets/174e9293-5139-46ae-8757-c8989f3fc598"
/>


Release Notes:

- N/A

---------

Signed-off-by: Marco Mihai Condrache <52580954+marcocondrache@users.noreply.github.com>
Co-authored-by: Anthony Eid <anthony@zed.dev>

Marco Mihai Condrache and Anthony Eid created

e106374 vim: Fix global mark overwriting inconsistency (#44765)

Click to expand commit body
Closes #43963

This issue was caused by the global marks not being deleted. Previously
marking the first file `m A`

<img width="1736" height="888" alt="Screenshot From 2025-12-13 01-37-55"
src="https://github.com/user-attachments/assets/9e46747f-7bb3-4297-82d4-44a20ef9e91a"
/>

followed by marking the second file `m A`

<img width="1736" height="888" alt="Screenshot From 2025-12-13 01-37-42"
src="https://github.com/user-attachments/assets/0d126b47-2c42-475f-826a-173c0d5a1156"
/>

and navigating back to the first file

<img width="1736" height="888" alt="Screenshot From 2025-12-13 01-37-30"
src="https://github.com/user-attachments/assets/032fd0bd-ff71-4a12-987a-7f1743016f6d"
/>

shows that the mark still exists and was not properly deleted. After
these changes the global mark in the original file is correctly
overwritten.

Added regression test for this.

Release Notes:

- Fixed bug where overwriting global Vim marks was inconsistent

AidanV created

3cc21a0 Suppress another logged backtrace (#44896)

Click to expand commit body
Do not log any error when the binary is not found, do not show any
backtrace when logging errors.

<img width="2032" height="1161" alt="bad"
src="https://github.com/user-attachments/assets/3f379c90-e61f-447f-9e46-fed989380164"
/>


Release Notes:

- N/A

Kirill Bulatov created

0a5955a Ensure Sweep and Mercury keys are loaded for Edit Prediction button (#44894)

Click to expand commit body
Follow up for #44505 

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Ben Kunkle created

34122ae editor: Don't merge adjacent selections (#44811)

Click to expand commit body
Closes #24748

Release Notes:

- Adjacent selections are not merged anymore

---------

Signed-off-by: Marco Mihai Condrache <52580954+marcocondrache@users.noreply.github.com>
Signed-off-by: Marco Mihai Condrache

Marco Mihai Condrache created

6401ac0 remote: Add ssh timeout setting (#44823)

Click to expand commit body
Closes #21527

Release Notes:

- Added a setting to specify the ssh connection timeout

---------

Signed-off-by: Marco Mihai Condrache <52580954+marcocondrache@users.noreply.github.com>

Marco Mihai Condrache created

c20cbba python: Add SQL syntax highlighting (#43756)

Click to expand commit body
Release Notes: 

- Added support for SQL syntax highlighting in Python files

## Summary

I am a data engineer who spends a lot of time writing SQL in Python
files using Zed. This PR adds support for SQL syntax highlighting with
common libraries (like pyspark, polars, pandas) and string variables
(prefixed with a `# sql` comment). I referenced
[#37605](https://github.com/zed-industries/zed/pull/37605) for this
implementation to keep the comment prefix consistent.

## Examples
<img width="738" height="990" alt="image"
src="https://github.com/user-attachments/assets/48a859da-c477-490d-be73-ca70d8e47cc9"
/>

---------

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>

Jeff Brennan and Piotr Osiewicz created

f2f3d9f Add adjustments to agent v2 pane changes (#44885)

Click to expand commit body
Follow-up to https://github.com/zed-industries/zed/pull/44190.

Release Notes:

- N/A

Danilo Leal created

b922019 git_ui: Make the file history view keyboard navigable (#44328)

Click to expand commit body
![file_history_view_navigation](https://github.com/user-attachments/assets/1435fdae-806e-48d1-a031-2c0fec28725f)

Release Notes:

- git: Made the file history view keyboard navigable

feeiyu created

d52defe Fix vitest test running and debugging for v4 with backwards compatibility (#43241)

Click to expand commit body
## Summary

This PR updates the vitest test runner integration to use the modern
`--no-file-parallelism` flag instead of the deprecated
`--poolOptions.forks.minForks=0` and `--poolOptions.forks.maxForks=1`
flags.

## Changes

- Replaced verbose pool options with `--no-file-parallelism` flag in
both file-level and symbol-level vitest test tasks
- This change works with vitest v4 while maintaining backwards
compatibility with earlier versions (or 3 at least!)

## Testing

- Added test `test_vitest_uses_no_file_parallelism_flag` that verifies:
  - The `--no-file-parallelism` flag is present in generated test tasks
  - The deprecated `poolOptions` flags are not present
- Manually tested with both vitest v4 and older versions to confirm
backwards compatibility
- All existing tests pass

## Impact

This allows Zed users to run and debug vitest tests in projects using
vitest v4 while maintaining support for earlier versions.

Release Notes:

- Fixed vitest test running and debugging for projects using vitest v4

---------

Co-authored-by: Cole Miller <cole@zed.dev>

Freddy Fallon and Cole Miller created

79a8985 vim: Add scroll keybindings for the OutlinePanel (#42438)

Click to expand commit body
Closes #ISSUE

```json
  {
    "context": "OutlinePanel && not_editing",
    "bindings": {
      "enter": "editor::ToggleFocus",
      "/": "menu::Cancel",
      "ctrl-u": "outline_panel::ScrollUp",
      "ctrl-d": "outline_panel::ScrollDown",
      "z t": "outline_panel::ScrollCursorTop",
      "z z": "outline_panel::ScrollCursorCenter",
      "z b": "outline_panel::ScrollCursorBottom"
    }
  },
  {
    "context": "OutlinePanel && editing",
    "bindings": {
      "enter": "menu::Cancel"
    }
  },
```

Release Notes:

- Added scroll keybindings for the OutlinePanel

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>

0x2CA and Ben Kunkle created

03216c9 git_ui: Display correct provider for view on remote button (#44738)

Click to expand commit body
Closes #44729

Release Notes:

- Fixed incorrect provider shown in "view on remote" button

Mayank Verma created

632bd37 git_ui: Reset the project diff at the start when it is deployed again (#43579)

Click to expand commit body
Closes #26920

Release Notes:

- Clicking the 'changes' button now resets the diff at the beginning

---------

Signed-off-by: Marco Mihai Condrache <52580954+marcocondrache@users.noreply.github.com>

Marco Mihai Condrache created

b71ef54 Add trailing commas to all asset jsonc files following #43854 (#44891)

Click to expand commit body
Closes #ISSUE

Post #43854, we are advertising trailing comma support for our asset
`jsonc` files to the JSON LSP. This results in it adding trailing commas
on format of these files. This PR batch updates the formatting for these
files, so they are not spuriously added as part of other PRs that happen
to modify these files

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Ben Kunkle created

158ebdc Allow external handles to be provided to gpui_tokio (#42795)

Click to expand commit body
This PR allows for a handle to an existing Tokio runtime to be passed to
gpui_tokio's initialization function, which means that Tokio runtimes
created externally can be used.

Mikayla suggested that the function simply take the runtime from
whatever context the initialization function is called from but I think
there could reasonably be situations where that isn't the case and this
shouldn't have a meaningful impact to code complexity. If you want to
use the current context's runtime you can just do
`gpui_tokio::init_from_handle(cx, Handle::current());`.

This doesn't have an impact on the current users of the crate - the
existing `init()` function is functionally unchanged.

Release Notes:

- N/A

William Whittaker created

f4c3a6c wsl: Fix folder picker adding wrong slashes (#44886)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/44508

Release Notes:

- Fixed folder picker inserting wrong slashes when remoting from windows
to wsl

Lukas Wirth created

6eb198c Revert "Add Doxygen injection into C and C++ comments" (#44883)

Click to expand commit body
Reverts zed-industries/zed#43581

Release notes:
- Fixed comment injections not working with C and C++.

Piotr Osiewicz created

07bf685 gpui: Support Force Touch go-to-definition on macOS (#40399)

Click to expand commit body
Closes #4644

Release Notes:

- Adds `MousePressureEvent`, an event that is sent anytime the touchpad
pressure changes, into `gpui`. MacOS only.
- Triggers go-to-defintion on force clicks in the editor.

This is my first contribution, let me know if I've missed something
here.

---------

Co-authored-by: Anthony Eid <anthony@zed.dev>
Co-authored-by: Antonio Scandurra <me@as-cii.com>

Aaro Luomanen , Anthony Eid , and Antonio Scandurra created

a6b7af3 Make LiveKit source use audio priority (#44881)

Click to expand commit body
Release Notes:

- N/A

Yara 🏳️‍⚧️ created

7889aaf lsp: Support on-type formatting request with newlines (#44882)

Click to expand commit body
We called out to `request_on_type_formatting` only in handle_input
function, but newlines are actually handled by editor::Newline action.

Closes #12383

Release Notes:

- Added support for on-type formatting with newlines.

Piotr Osiewicz created

3bf57dc Revert "extension_api: Add `digest` to `GithubReleaseAsset`" (#44880)

Click to expand commit body
Reverts zed-industries/zed#44399

Finn Evers created

a3ac595 gpui: Make refining a `Style` properly refine the `TextStyle` (#42852)

Click to expand commit body
## Motivating problem
The gpui API currently has this counter intuitive behaviour

```rust
 div()
            .id("hallo")
            .cursor_pointer()
            .text_color(white())
            .font_weight(FontWeight::SEMIBOLD)
            .text_size(px(20.0))
            .child("hallo")
            .active(|this| this.text_color(red()))
```
By changing the text_color when the div is active, the current behaviour
is to overwrite all of the text styling rather than do a proper
refinement of the existing text styling leading to this odd result:
The button being active inadvertently changes the font size.


https://github.com/user-attachments/assets/1ff51169-0d76-4ee5-bbb0-004eb9ffdf2c



## Solution
Previously refining a Style would not recursively refine the TextStyle
inside of it, leading to this behaviour:
```rust
let mut style = Style::default();
style.refine(&StyleRefinement::default().text_size(px(20.0)));
style.refine(&StyleRefinement::default().font_weight(FontWeight::SEMIBOLD));

assert!(style.text_style().unwrap().font_size.is_none());
//assertion passes
```

(As best as I can tell) Style deliberately has `pub text:
TextStyleRefinement` storing the `TextStyleRefinement` rather than the
absolute `TextStyle` so that these refinements can be elsewhere used in
cascading text styles down to element's children. But a consequence of
that is that the refine macro was not properly recursively refining the
`text` field as it ought to.

I've modified the refine macro so that the `#[refineable]` attribute
works with `TextStyleRefinement` as well as the usual `TextStyle`.
(Perhaps a little bit haphazardly by simply checking whether the name
ends in Refinement - there may be a better solution there).

This PR resolves the motivating problem and triggers the assertion in
the above code as you'd expect. I've compiled zed under these changes
and all seems to be in order there.

Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>

Serophots and Antonio Scandurra created

63bfb61 scheduler: Fix background threads ending early (#44878)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: kate <work@localcc.cc>

Yara 🏳️‍⚧️ and kate created