Commit log

1471105 edit_prediction: Remove duplicate definition of interpolate_edits (#44485)

Click to expand commit body
Release Notes:

- N/A

Piotr Osiewicz created

f05ee8a Fix menu capitalization (#44450)

Click to expand commit body
This PR fixes fixes capitalization of two menu items for consistency
elsewhere in the application.

Release Notes:

- N/A

Aaron Feickert created

4d0cada git_ui: Hide breakpoints in commit views (#44484)

Click to expand commit body
Release Notes:

- Improved commit view to not show breakpoints on hover

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>

Xiaobo Liu created

abf90cc language: Add auto-surround for Plain Text, JSON, and JSONC (#42631)

Click to expand commit body
**Summary**
When users selected text and pressed opening brackets (`(`, `[`, `{`),
the text was deleted instead of being wrapped.

- Added bracket pairs: `()`, `[]`, `{}`, `""`, `''` with `surround =
true`
- Added `surround = true` to existing bracket pairs
- Added `()` bracket pair

**Production Build Fix** (`crates/languages/src/lib.rs`)
- Fixed bug where `brackets` config was stripped in non-`load-grammars`
builds
- Preserved `brackets: config.brackets` in production mode

Closes #41186

**Screen recording**

https://github.com/user-attachments/assets/22067fe7-d5c4-4a72-a93d-8dbaae640168

Release Notes:

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

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>

Mustaque Ahmed and Smit Barmase created

b79d92d language_extension: Handle prefixed WASI windows paths in extension spawning (#44477)

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

Release Notes:

- Fixed some wasm language extensions failing to spawn on windows

Lukas Wirth created

660234f docs: Improve documentation for updating an extension (#44475)

Click to expand commit body
Release Notes:

- N/A

Finn Evers created

2b02b60 Fix a search filter in top-ranking issues script (#44468)

Click to expand commit body
Release Notes:

- N/A

Lena created

9d49c1f Switch from labels to types in Top-Ranking issues (#44383)

Click to expand commit body
Since we've run a script to replace labels with types on the open issues
(e.g. label 'bug' → type 'Bug'), and those labels are deprecated, the
script is updated to deal with issue types only.

Other changes:
- only get top-100 search results for each section since we only look at
top-50 anyway: this way we don't need to deal with rate limiting, and
the entire script runs way faster when it doesn't need to fetch 1000+
bugs
- subtract the "-1" reactions from the "+1" reactions on a given issue
to give a slightly more accurate picture in the overall ranking (this
can further be improved by adding the distinct heart reactions but we'll
leave that for another day)
- only output the issues with a score > 0
- use Typer's built-in error handling for a missing argument
- since we're only dealing with types and not labels now, remove the
handling of potentially duplicate issues in the search results per
section
- make `Tracking` its own section since this issue type exists now
- remove the `unlabeled` section with issues of no type since all the
open issues have a type now and we intend to keep it that way for the
sake of these and other stats (and also because GitHub's REST API has
caught up with types but not with `no:type`)
- replace pygithub and custom classes with requests directly to the
GitHub API and plain data structures for a lighter footprint
- spell out the date of the update in the resulting text to avoid the
ambiguity (10/6 → October 06).

The way the script is invoked has not been changed.

Example run:

```
*Updated on December 08, 2025 06:57 AM (EST)*

## Features

1. https://github.com/zed-industries/zed/issues/11473 (679 :thumbsup:)
2. https://github.com/zed-industries/zed/issues/4642 (674 :thumbsup:)
3. https://github.com/zed-industries/zed/issues/10910 (638 :thumbsup:)
4. https://github.com/zed-industries/zed/issues/8279 (592 :thumbsup:)
5. https://github.com/zed-industries/zed/issues/5242 (581 :thumbsup:)
6. https://github.com/zed-industries/zed/issues/4355 (552 :thumbsup:)
7. https://github.com/zed-industries/zed/issues/15968 (453 :thumbsup:)
8. https://github.com/zed-industries/zed/issues/4930 (357 :thumbsup:)
9. https://github.com/zed-industries/zed/issues/5066 (345 :thumbsup:)
10. https://github.com/zed-industries/zed/issues/5120 (312 :thumbsup:)
11. https://github.com/zed-industries/zed/issues/7450 (310 :thumbsup:)
12. https://github.com/zed-industries/zed/issues/14801 (291 :thumbsup:)
13. https://github.com/zed-industries/zed/issues/10696 (276 :thumbsup:)
14. https://github.com/zed-industries/zed/issues/16965 (258 :thumbsup:)
15. https://github.com/zed-industries/zed/issues/4688 (231 :thumbsup:)
16. https://github.com/zed-industries/zed/issues/4943 (228 :thumbsup:)
17. https://github.com/zed-industries/zed/issues/9459 (223 :thumbsup:)
18. https://github.com/zed-industries/zed/issues/21538 (223 :thumbsup:)
19. https://github.com/zed-industries/zed/issues/11889 (194 :thumbsup:)
20. https://github.com/zed-industries/zed/issues/9721 (180 :thumbsup:)
21. https://github.com/zed-industries/zed/issues/5039 (172 :thumbsup:)
22. https://github.com/zed-industries/zed/issues/9662 (162 :thumbsup:)
23. https://github.com/zed-industries/zed/issues/4888 (160 :thumbsup:)
24. https://github.com/zed-industries/zed/issues/26823 (158 :thumbsup:)
25. https://github.com/zed-industries/zed/issues/21208 (151 :thumbsup:)
26. https://github.com/zed-industries/zed/issues/4991 (149 :thumbsup:)
27. https://github.com/zed-industries/zed/issues/6722 (144 :thumbsup:)
28. https://github.com/zed-industries/zed/issues/18490 (139 :thumbsup:)
29. https://github.com/zed-industries/zed/issues/10647 (138 :thumbsup:)
30. https://github.com/zed-industries/zed/issues/35803 (121 :thumbsup:)
31. https://github.com/zed-industries/zed/issues/4808 (118 :thumbsup:)
32. https://github.com/zed-industries/zed/issues/12406 (118 :thumbsup:)
33. https://github.com/zed-industries/zed/issues/37074 (118 :thumbsup:)
34. https://github.com/zed-industries/zed/issues/7121 (117 :thumbsup:)
35. https://github.com/zed-industries/zed/issues/15098 (112 :thumbsup:)
36. https://github.com/zed-industries/zed/issues/4867 (111 :thumbsup:)
37. https://github.com/zed-industries/zed/issues/4751 (108 :thumbsup:)
38. https://github.com/zed-industries/zed/issues/14473 (98 :thumbsup:)
39. https://github.com/zed-industries/zed/issues/6754 (97 :thumbsup:)
40. https://github.com/zed-industries/zed/issues/11138 (97 :thumbsup:)
41. https://github.com/zed-industries/zed/issues/17455 (90 :thumbsup:)
42. https://github.com/zed-industries/zed/issues/9922 (89 :thumbsup:)
43. https://github.com/zed-industries/zed/issues/4504 (87 :thumbsup:)
44. https://github.com/zed-industries/zed/issues/17353 (85 :thumbsup:)
45. https://github.com/zed-industries/zed/issues/4663 (82 :thumbsup:)
46. https://github.com/zed-industries/zed/issues/12039 (79 :thumbsup:)
47. https://github.com/zed-industries/zed/issues/11107 (75 :thumbsup:)
48. https://github.com/zed-industries/zed/issues/11565 (73 :thumbsup:)
49. https://github.com/zed-industries/zed/issues/22373 (72 :thumbsup:)
50. https://github.com/zed-industries/zed/issues/11023 (71 :thumbsup:)

## Bugs

1. https://github.com/zed-industries/zed/issues/7992 (457 :thumbsup:)
2. https://github.com/zed-industries/zed/issues/12589 (113 :thumbsup:)
3. https://github.com/zed-industries/zed/issues/12176 (105 :thumbsup:)
4. https://github.com/zed-industries/zed/issues/14053 (96 :thumbsup:)
5. https://github.com/zed-industries/zed/issues/18698 (90 :thumbsup:)
6. https://github.com/zed-industries/zed/issues/8043 (73 :thumbsup:)
7. https://github.com/zed-industries/zed/issues/7465 (65 :thumbsup:)
8. https://github.com/zed-industries/zed/issues/9403 (56 :thumbsup:)
9. https://github.com/zed-industries/zed/issues/9789 (55 :thumbsup:)
10. https://github.com/zed-industries/zed/issues/30313 (52 :thumbsup:)
11. https://github.com/zed-industries/zed/issues/13564 (47 :thumbsup:)
12. https://github.com/zed-industries/zed/issues/18673 (47 :thumbsup:)
13. https://github.com/zed-industries/zed/issues/43025 (44 :thumbsup:)
14. https://github.com/zed-industries/zed/issues/15166 (43 :thumbsup:)
15. https://github.com/zed-industries/zed/issues/14074 (41 :thumbsup:)
16. https://github.com/zed-industries/zed/issues/38109 (39 :thumbsup:)
17. https://github.com/zed-industries/zed/issues/21076 (38 :thumbsup:)
18. https://github.com/zed-industries/zed/issues/32792 (38 :thumbsup:)
19. https://github.com/zed-industries/zed/issues/26875 (36 :thumbsup:)
20. https://github.com/zed-industries/zed/issues/21146 (35 :thumbsup:)
21. https://github.com/zed-industries/zed/issues/39163 (35 :thumbsup:)
22. https://github.com/zed-industries/zed/issues/13838 (32 :thumbsup:)
23. https://github.com/zed-industries/zed/issues/16727 (32 :thumbsup:)
24. https://github.com/zed-industries/zed/issues/9057 (31 :thumbsup:)
25. https://github.com/zed-industries/zed/issues/38151 (31 :thumbsup:)
26. https://github.com/zed-industries/zed/issues/38750 (30 :thumbsup:)
27. https://github.com/zed-industries/zed/issues/8352 (29 :thumbsup:)
28. https://github.com/zed-industries/zed/issues/11744 (29 :thumbsup:)
29. https://github.com/zed-industries/zed/issues/20559 (29 :thumbsup:)
30. https://github.com/zed-industries/zed/issues/23640 (29 :thumbsup:)
31. https://github.com/zed-industries/zed/issues/11104 (27 :thumbsup:)
32. https://github.com/zed-industries/zed/issues/13461 (27 :thumbsup:)
33. https://github.com/zed-industries/zed/issues/13286 (25 :thumbsup:)
34. https://github.com/zed-industries/zed/issues/29962 (25 :thumbsup:)
35. https://github.com/zed-industries/zed/issues/14833 (23 :thumbsup:)
36. https://github.com/zed-industries/zed/issues/15409 (23 :thumbsup:)
37. https://github.com/zed-industries/zed/issues/11127 (22 :thumbsup:)
38. https://github.com/zed-industries/zed/issues/12835 (22 :thumbsup:)
39. https://github.com/zed-industries/zed/issues/31351 (22 :thumbsup:)
40. https://github.com/zed-industries/zed/issues/33942 (22 :thumbsup:)
41. https://github.com/zed-industries/zed/issues/7086 (21 :thumbsup:)
42. https://github.com/zed-industries/zed/issues/13176 (20 :thumbsup:)
43. https://github.com/zed-industries/zed/issues/14222 (20 :thumbsup:)
44. https://github.com/zed-industries/zed/issues/29757 (20 :thumbsup:)
45. https://github.com/zed-industries/zed/issues/35122 (20 :thumbsup:)
46. https://github.com/zed-industries/zed/issues/29807 (19 :thumbsup:)
47. https://github.com/zed-industries/zed/issues/4701 (18 :thumbsup:)
48. https://github.com/zed-industries/zed/issues/35770 (18 :thumbsup:)
49. https://github.com/zed-industries/zed/issues/37734 (18 :thumbsup:)
50. https://github.com/zed-industries/zed/issues/4434 (17 :thumbsup:)

## Tracking issues

1. https://github.com/zed-industries/zed/issues/7808 (298 :thumbsup:)
2. https://github.com/zed-industries/zed/issues/24878 (101 :thumbsup:)
3. https://github.com/zed-industries/zed/issues/7371 (60 :thumbsup:)
4. https://github.com/zed-industries/zed/issues/26916 (51 :thumbsup:)
5. https://github.com/zed-industries/zed/issues/31102 (41 :thumbsup:)
6. https://github.com/zed-industries/zed/issues/25469 (30 :thumbsup:)
7. https://github.com/zed-industries/zed/issues/10906 (18 :thumbsup:)
8. https://github.com/zed-industries/zed/issues/9778 (11 :thumbsup:)
9. https://github.com/zed-industries/zed/issues/23930 (10 :thumbsup:)
10. https://github.com/zed-industries/zed/issues/23914 (8 :thumbsup:)
11. https://github.com/zed-industries/zed/issues/18078 (7 :thumbsup:)
12. https://github.com/zed-industries/zed/issues/25560 (6 :thumbsup:)

## Crashes

1. https://github.com/zed-industries/zed/issues/13190 (33 :thumbsup:)
2. https://github.com/zed-industries/zed/issues/32318 (15 :thumbsup:)
3. https://github.com/zed-industries/zed/issues/39097 (14 :thumbsup:)
4. https://github.com/zed-industries/zed/issues/31149 (11 :thumbsup:)
5. https://github.com/zed-industries/zed/issues/36139 (10 :thumbsup:)
6. https://github.com/zed-industries/zed/issues/39890 (10 :thumbsup:)
7. https://github.com/zed-industries/zed/issues/16120 (9 :thumbsup:)
8. https://github.com/zed-industries/zed/issues/20970 (5 :thumbsup:)
9. https://github.com/zed-industries/zed/issues/28385 (5 :thumbsup:)
10. https://github.com/zed-industries/zed/issues/27270 (4 :thumbsup:)
11. https://github.com/zed-industries/zed/issues/30466 (4 :thumbsup:)
12. https://github.com/zed-industries/zed/issues/37593 (4 :thumbsup:)
13. https://github.com/zed-industries/zed/issues/27751 (3 :thumbsup:)
14. https://github.com/zed-industries/zed/issues/29467 (3 :thumbsup:)
15. https://github.com/zed-industries/zed/issues/39806 (3 :thumbsup:)
16. https://github.com/zed-industries/zed/issues/40998 (3 :thumbsup:)
17. https://github.com/zed-industries/zed/issues/10992 (2 :thumbsup:)
18. https://github.com/zed-industries/zed/issues/31461 (2 :thumbsup:)
19. https://github.com/zed-industries/zed/issues/37291 (2 :thumbsup:)
20. https://github.com/zed-industries/zed/issues/38275 (2 :thumbsup:)
21. https://github.com/zed-industries/zed/issues/43547 (2 :thumbsup:)
22. https://github.com/zed-industries/zed/issues/20014 (1 :thumbsup:)
23. https://github.com/zed-industries/zed/issues/30993 (1 :thumbsup:)
24. https://github.com/zed-industries/zed/issues/31498 (1 :thumbsup:)
25. https://github.com/zed-industries/zed/issues/31829 (1 :thumbsup:)
26. https://github.com/zed-industries/zed/issues/32280 (1 :thumbsup:)
27. https://github.com/zed-industries/zed/issues/36036 (1 :thumbsup:)
28. https://github.com/zed-industries/zed/issues/37918 (1 :thumbsup:)
29. https://github.com/zed-industries/zed/issues/39269 (1 :thumbsup:)
30. https://github.com/zed-industries/zed/issues/42825 (1 :thumbsup:)
31. https://github.com/zed-industries/zed/issues/43522 (1 :thumbsup:)
32. https://github.com/zed-industries/zed/issues/43774 (1 :thumbsup:)

## Windows

1. https://github.com/zed-industries/zed/issues/12288 (36 :thumbsup:)
2. https://github.com/zed-industries/zed/issues/20559 (29 :thumbsup:)
3. https://github.com/zed-industries/zed/issues/12013 (15 :thumbsup:)
4. https://github.com/zed-industries/zed/issues/38682 (8 :thumbsup:)
5. https://github.com/zed-industries/zed/issues/36241 (7 :thumbsup:)
6. https://github.com/zed-industries/zed/issues/28497 (3 :thumbsup:)
7. https://github.com/zed-industries/zed/issues/33748 (3 :thumbsup:)
8. https://github.com/zed-industries/zed/issues/38348 (3 :thumbsup:)
9. https://github.com/zed-industries/zed/issues/41649 (3 :thumbsup:)
10. https://github.com/zed-industries/zed/issues/41734 (3 :thumbsup:)
11. https://github.com/zed-industries/zed/issues/42873 (3 :thumbsup:)
12. https://github.com/zed-industries/zed/issues/36318 (2 :thumbsup:)
13. https://github.com/zed-industries/zed/issues/38886 (2 :thumbsup:)
14. https://github.com/zed-industries/zed/issues/39038 (2 :thumbsup:)
15. https://github.com/zed-industries/zed/issues/39056 (2 :thumbsup:)
16. https://github.com/zed-industries/zed/issues/39189 (2 :thumbsup:)
17. https://github.com/zed-industries/zed/issues/39473 (2 :thumbsup:)
18. https://github.com/zed-industries/zed/issues/39764 (2 :thumbsup:)
19. https://github.com/zed-industries/zed/issues/40430 (2 :thumbsup:)
20. https://github.com/zed-industries/zed/issues/43051 (2 :thumbsup:)
21. https://github.com/zed-industries/zed/issues/18765 (1 :thumbsup:)
22. https://github.com/zed-industries/zed/issues/35174 (1 :thumbsup:)
23. https://github.com/zed-industries/zed/issues/35958 (1 :thumbsup:)
24. https://github.com/zed-industries/zed/issues/36193 (1 :thumbsup:)
25. https://github.com/zed-industries/zed/issues/36849 (1 :thumbsup:)
26. https://github.com/zed-industries/zed/issues/38760 (1 :thumbsup:)
27. https://github.com/zed-industries/zed/issues/39346 (1 :thumbsup:)
28. https://github.com/zed-industries/zed/issues/39435 (1 :thumbsup:)
29. https://github.com/zed-industries/zed/issues/39453 (1 :thumbsup:)
30. https://github.com/zed-industries/zed/issues/39927 (1 :thumbsup:)
31. https://github.com/zed-industries/zed/issues/40209 (1 :thumbsup:)
32. https://github.com/zed-industries/zed/issues/40277 (1 :thumbsup:)
33. https://github.com/zed-industries/zed/issues/40370 (1 :thumbsup:)
34. https://github.com/zed-industries/zed/issues/40392 (1 :thumbsup:)
35. https://github.com/zed-industries/zed/issues/40475 (1 :thumbsup:)
36. https://github.com/zed-industries/zed/issues/40585 (1 :thumbsup:)
37. https://github.com/zed-industries/zed/issues/40647 (1 :thumbsup:)
38. https://github.com/zed-industries/zed/issues/40954 (1 :thumbsup:)
39. https://github.com/zed-industries/zed/issues/42050 (1 :thumbsup:)
40. https://github.com/zed-industries/zed/issues/42366 (1 :thumbsup:)
41. https://github.com/zed-industries/zed/issues/42731 (1 :thumbsup:)
42. https://github.com/zed-industries/zed/issues/42861 (1 :thumbsup:)
43. https://github.com/zed-industries/zed/issues/43522 (1 :thumbsup:)

## Meta issues

1. https://github.com/zed-industries/zed/issues/24804 (10 :thumbsup:)
2. https://github.com/zed-industries/zed/issues/36730 (3 :thumbsup:)
```

Release Notes:

- N/A

---------

Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>

Lena and Joseph T. Lyons created

6253b1d worktree: Print canonicalization error details (#44459)

Click to expand commit body
cc https://github.com/zed-industries/zed/issues/24714

Release Notes:

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

Lukas Wirth created

4e75f0f gpui: Implement `From<String>` for ElementId (#44447)

Click to expand commit body
Release Notes:

- N/A

## Before

```rs
div()
    .id(SharedString::from(format!("process-entry-{ix}-command")))
```

## After

```rs
div()
    .id(format!("process-entry-{ix}-command"))
```

Jason Lee created

0b4f72e Tidy up single-file worktrees' opening errors (#44455)

Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/44370

Also log when fail to open the project item.

Release Notes:

- N/A

Kirill Bulatov created

dc5f54e Backout inline assistant changes (#44454)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

ba807a3 languages: Initialize Tailwind's options with `includeLanguages` (#43978)

Click to expand commit body
Since [this
PR](https://github.com/tailwindlabs/tailwindcss-intellisense/pull/1014),
the `tailwindCSS.userLanguages` option has been deprecated, and it is
recommended to use `tailwindCSS.includeLanguages` instead. Using
`tailwindCSS.userLanguages` triggers the warning shown below in the
`tailwindcss-language-server` logs.

<img width="634" height="259" alt="tailwindcss-language-server (kron)
Server Logs v"
src="https://github.com/user-attachments/assets/763551ad-f41a-4756-9d7d-dfb7df45cc5c"
/>

Release Notes:

- Fixed a warning indicating the deprecation of
`tailwindCSS.userLanguages` by initializing the options with
`tailwindCSS.includeLanguages`.

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>

Afief Abdurrahman and Smit Barmase created

45829b3 Avoid the cost of creating an anyhow error in RelPath::strip_prefix (#44444)

Click to expand commit body
Release Notes:

- Fixed a performance bottleneck that could delay Zed's processing FS
events for a long time in some cases.

Max Brunsfeld created

631e3dd collab: Remove unused `Signup` model (#44438)

Click to expand commit body
This PR removes the `Signup` database model, as it was not being used.

Release Notes:

- N/A

Marshall Bowers created

8d44bcd collab: Remove database migrations (#44436)

Click to expand commit body
This PR removes the database schema migrations from the repo, as these
are now managed by Cloud.

There's a new `20251208000000_test_schema.sql` "migration" that we use
to create the database schema for the tests, similar to what we use for
SQLite.

Release Notes:

- N/A

Marshall Bowers created

1888106 Fix telemetry for `collab::ToggleMute` and remove unregistered actions (#44432)

Click to expand commit body
This PR removes the actions `collab::ToggleScreenSharing`,
`collab::ToggleMute`, and `collab::ToggleDeafen`. They weren't actually
registered to any behavior, so while it was possible to create a keybind
bound to them, they never actually trigger. I spent ~30 minutes trying
to figure out why I was getting this result for my `"f13":
"collab::ToggleMute"` keybind in the keybind context menu:

<img width="485" height="174" alt="image"
src="https://github.com/user-attachments/assets/23064c8f-fe8d-42e5-b94f-bd4b8a0cb3b5"
/>

(This really threw me for a loop because I was trying to use this as a
known good case to compare against a _different_ action that wasn't
working because I forgot to register it.)

As a side benefit, this enables telemetry for toggling mic mute via
keybind.

Release Notes:

- Fixed telemetry for `collab::Mute`
- Removed unregistered actions `collab::ToggleMute`,
`collab::ToggleDeafen`, and `collab::ToggleScreenshare`
- The correctly-functioning actions `collab::Mute`, `collab::Deafen`,
and `collab::ScreenShare` are recommended instead

Andrew Farkas created

c005adb collab: Don't run migrations on startup (#44430)

Click to expand commit body
This PR removes the step that applies migrations when Collab starts up,
as migrations are now done as part of Cloud deployments.

Release Notes:

- N/A

Marshall Bowers created

6b2d1f1 Add `editor::InsertSnippet` action (#44428)

Click to expand commit body
Closes #20036

This introduces new action `editor: insert snippet`. It supports three
modes:

```
["editor::InsertSnippet", {"name": "snippet_name"}]
["editor::InsertSnippet", {"language": "language_name", "name": "snippet_name"}]
["editor::InsertSnippet", {"snippet": "snippet with $1 tab stops"}]
```

## Example usage

### `keymap.json`

```json
  {
    "context": "Editor",
    "bindings": {
      // named global snippet
      "cmd-k cmd-r": ["editor::InsertSnippet", {"name": "all rights reserved"}],
      // named language-specific snippet
      "cmd-k cmd-p": ["editor::InsertSnippet", {"language": "rust", "name": "debug-print a value"}],
      // inline snippet
      "cmd-k cmd-e": ["editor::InsertSnippet", {"snippet": "println!(\"This snippet has multiple lines.\")\nprintln!(\"It belongs to $1 and is very $2.\")"}],
    },
  },
```

### `~/.config/zed/snippets/rust.json`

```json
{
  "debug-print a value": {
    "body": "println!(\"$1 = {:?}\", $1)",
  },
}
```

### `~/.config/zed/snippets/snippets.json`

```json
{
  "all rights reserved": {
    "body": "Copyright © ${1:2025} ${2:your name}. All rights reserved.",
  },
}
```

## Future extensions

- Support multiline inline snippets using an array of strings using
something similar to `ListOrDirect` in
`snippet_provider::format::VsCodeSnippet`
- When called with no arguments, open a modal to select a snippet to
insert

## Release notes

Release Notes:

- Added `editor::InsertSnippet` action

Andrew Farkas created

22e1bcc languages: Check whether to update `typescript-language-server` (#44343)

Click to expand commit body
Closes #43155

Adds a missing check to also update packages when the
`typescript-language-server` package is outdated.

I created a new `SERVER_PACKAGE_NAME ` constant so that the package name
isn't coupled to the language server name inside of Zed.

Release Notes:

- Fixed the typescript language server falling out of date

tidely created

bb591f1 extension_cli: Properly populate manifest with snippet location (#44425)

Click to expand commit body
This fixes an issue where the snippet file location would not be the
proper one for compiled extensions because it would be populated with an
absolute path instead of a relative one in relation to the extension
output directory. This caused the copy operation downstream to not do
anything, because it copied the file to the location it already was
(which was not the output directory for that extension).

Also adds some tests and pulls in the `Fs` so we do not have such issues
with snippets a third time hopefully.

Release Notes:

- N/A

Finn Evers created

3d6cc3d terminal: Fix performance issues with hyperlink regex matching (#44407)

Click to expand commit body
Problem statement: When given a line that contained a lot of matches of
your hyperlink regex of choice (thanks to #40305), we would look for
matches
that intersected with currently hovered point. This is *hella*
expensive, because we would re-walk the whole alacritty grid for each
match. With the repro that Joseph shared, we had to go through 4000 such
matches on each frame render.

Problem solution: We now convert the hovered point into a range within
the line (byte-wise) in order to throw away matches that do not
intersect the
hovered range. This lets us avoid performing the unnecessary conversion
when we know it's never going to yield a match range that intersects the
hovered point.

Release Notes:

- terminal: Fixed performance regression when handling long lines.

---------

Co-authored-by: Dave Waggoner <waggoner.dave@gmail.com>

Piotr Osiewicz and Dave Waggoner created

464d4f7 git: Use branch names for resolve conflict buttons (#44421)

Click to expand commit body
This makes merge conflict resolution clearer because we're now parsing
the branch names from the conflict region instead of hardcoding HEAD and
ORIGIN.

### Before
<img width="1157" height="1308" alt="image"
src="https://github.com/user-attachments/assets/1fd72823-4650-48dd-b26a-77c66d21614d"
/>

### After
<img width="1440" height="1249" alt="Screenshot 2025-12-08 at 2 17
12 PM"
src="https://github.com/user-attachments/assets/d23c219a-6128-4e2d-a8bc-3f128aa55272"
/>

Release Notes:

- git: Use branch names for git conflict buttons instead of HEAD and
ORIGIN

Anthony Eid created

f489255 codex: Fallback to locally installed version if update fails (#44419)

Click to expand commit body
Closes #43900

Release Notes:

- Fallback to locally installed codex version if update fails

Bennet Bo Fenner created

387059c language: Add `LanguageName::new_static` to reduce allocations (#44380)

Click to expand commit body
Implements a specialized constructor `LanguageName::new_static` for
`&'static str` which reduces allocations.

`LanguageName::new` always backs the underlying `SharedString` with an
owned `Arc<str>` even when a `&'static str` is passed. This makes us
allocate each time we create a new `LanguageName` no matter what.
Creating a specialized constructor for `&'static str` allows us to
essentially construct them for free.

Additional change:
Encourages using explicit constructors to avoid needless allocations.
Currently there were no instances of this trait being called where the
lifetime was not `'static` saving another 48 locations of allocation.

```rust
impl<'a> From<&'a str> for LanguageName {
    fn from(str: &'a str) -> Self {
        Self(SharedString::new(str))
    }
}

// to 

impl From<&'static str> for LanguageName {
    fn from(str: &'static str) -> Self {
        Self(SharedString::new_static(str))
    }
}

```

Release Notes:

- N/A

tidely created

4a382b2 fuzzy: Use lowercase representations for matrix size calculation (#44338)

Click to expand commit body
Closes #44324

Release Notes:

- Uses the lowercase representation of the query for the matrix length
calculation to match the bounds size expected in `recursive_score_match`

Nereuxofficial created

b948d8b git: Improve self-hosted provider support and Bitbucket integration (#42343)

Click to expand commit body
This PR includes several minor modifications and improvements related to
Git hosting providers, covering the following areas:

1. Bitbucket Owner Parsing Fix: Remove the common `scm` prefix from the
remote URL of self-hosted Bitbucket instances to prevent incorrect owner
parsing.
[Reference](https://github.com/gitkraken/vscode-gitlens/blob/a6e3c6fbb255116507eaabaa9940c192ed7bb0e1/src/git/remotes/bitbucket-server.ts#L72-L74)
2. Bitbucket Avatars in Blame: Add support for displaying Bitbucket
avatars in the Git blame view.
<img width="2750" height="1994" alt="CleanShot 2025-11-10 at 20 34
40@2x"
src="https://github.com/user-attachments/assets/9e26abdf-7880-4085-b636-a1f99ebeeb97"
/>
3. Self-hosted SourceHut Support: Add support for self-hosted SourceHut
instances.
4. Configuration: Add recently introduced self-hosted Git providers
(Gitea, Forgejo, and SourceHut) to the `git_hosting_providers` setting
option.
<img width="2750" height="1994" alt="CleanShot 2025-11-10 at 20 33
48@2x"
src="https://github.com/user-attachments/assets/44ffc799-182d-4145-9b89-e509bbc08843"
/>


Closes #11043

Release Notes:

- Improved self-hosted git provider support and Bitbucket integration

ᴀᴍᴛᴏᴀᴇʀ created

bc17491 gpui: Revert grid template columns default behavior to align with Tailwind (#44368)

Click to expand commit body
When using the latest version of `GPUI`, I found some grid layout
issues. I discovered #43555 modified the default behavior of grid
template columns. I checked the implementation at
https://tailwindcss.com/docs/grid-template-columns, and it seems our
previous implementation was correct.

If a grid layout is placed inside a flexbox, the layout becomes
unpredictable.

```rust
impl Render for HelloWorld {
    fn render(&mut self, _window: &mut Window, _cx: &mut Context<Self>) -> impl IntoElement {
        div()
            .flex()
            .size(px(500.0))
            .bg(rgb(0x505050))
            .text_xl()
            .text_color(rgb(0xffffff))
            .child(
                div()
                    .size_full()
                    .gap_1()
                    .grid()
                    .grid_cols(2)
                    .border_1()
                    .border_color(gpui::red())
                    .children((0..10).map(|ix| {
                        div()
                            .w_full()
                            .border_1()
                            .border_color(gpui::green())
                            .child(ix.to_string())
                    })),
            )
    }
}
```

| Before | After |
| - | - |
| <img width="612" height="644" alt="After1"
src="https://github.com/user-attachments/assets/64eaf949-0f38-4f0b-aae7-6637f8f40038"
/> | <img width="612" height="644" alt="Before1"
src="https://github.com/user-attachments/assets/561a508d-29ea-4fd2-bd1e-909ad14b9ee3"
/> |

I also placed the grid layout example inside a flexbox too.

| Before | After |
| - | - |
| <img width="612" height="644" alt="After"
src="https://github.com/user-attachments/assets/fa6f4a2d-21d8-413e-8b66-7bd073e05f87"
/> | <img width="612" height="644" alt="Before"
src="https://github.com/user-attachments/assets/9e0783d1-18e9-470d-b913-0dbe4ba88835"
/> |

I tested the changes from the previous PR, and it seems that setting the
table's parent to `v_flex` is sufficient to achieve a non-full table
width without modifying the grid layout. This was already done in the
previous PR.

I reverted the grid changes, the blue border represents the table width.
cc @RemcoSmitsDev

<img width="1107" height="1000" alt="table"
src="https://github.com/user-attachments/assets/4b7ba2a2-a66a-444d-ad42-d80bc9057cce"
/>

So, I believe we should revert to this implementation to align with
tailwindcss behavior and avoid potential future problems, especially
since the cause of this issue is difficult to pinpoint.

Release Notes:

- N/A

Floyd Wang created

f6a6630 agent_ui: Auto-capture file context on paste (#42982)

Click to expand commit body
Closes #42972


https://github.com/user-attachments/assets/98f2d3dc-5682-4670-b636-fa8ea2495c69

Release Notes:

- Added automatic file context detection when pasting code into the AI
agent panel. Pasted code now displays as collapsible badges showing the
file path and line numbers (e.g., "app/layout.tsx (18-25)").

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>

ozzy and Bennet Bo Fenner created

1842184 nix: Fix nix build failure due to missing `protoc` (#44412)

Cameron Mcloughlin created

2143942 Add support for Grok 4.1 Fast models in xAI provider (#43419)

Click to expand commit body
Release Notes:

- Added support for Grok 4.1 Fast (reasoning and non-reasoning) models
in the xAI provider, with 2M token context windows and full vision
capabilities.
- Extended 2M token context to existing Grok 4 Fast variants (from 128K)
for consistency with xAI updates.
- Enabled image/vision support for all Grok 4 family models.

Doc:
https://docs.x.ai/docs/models/grok-4-1-fast-reasoning
https://docs.x.ai/docs/models/grok-4-1-fast-non-reasoning

Martin Bergo created

044f7b5 editor: Fix buffer fold focuses first buffer in multi-buffer instead of the toggled one (#44394)

Click to expand commit body
Closes #43870

Regressed in https://github.com/zed-industries/zed/pull/37953

Release Notes:

- Fixed issue where toggling buffer fold focuses first buffer in
multi-buffer instead of the toggled one.

Smit Barmase created

12dba5e git_ui: Improve the branch picker when in the panel (#44408)

Click to expand commit body
This PR adapts the design for the panel version of the branch picker.


https://github.com/user-attachments/assets/d04b612b-72e8-4bc9-9a19-9d466b9fe696

Release Notes:

- N/A

Danilo Leal created

216a3a6 keymap: Fix windows keys for open and open files actions (#44406)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/44040
Closes https://github.com/zed-industries/zed/issues/44044
 
Release Notes:

- Fixed incorrect keybindings for `open folder` and `open files` actions
on windows' default keymap

Lukas Wirth created

6678960 editor: Goto references skip multibuffer if single match (#43026)

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

Cameron Mcloughlin and Agus created

62c312b Update Recent Projects picker to show SSH host (#44349)

Click to expand commit body
**Problem addressed:**

Cannot distinguish an identical path on multiple remote hosts in the
"Recent Projects" picker.

**Related work:**

- Issue #40358 (already closed) identified the issue in the "Expected
Behavior" section for both WSL and SSH remotes.
- PR #40375 implemented WSL distro labels.

**Screenshots:**

Before:
<img width="485" height="98" alt="screenshot-sample-project-before"
src="https://github.com/user-attachments/assets/182d907a-6f11-44aa-8ca5-8114f5551c93"
/>

After:
<img width="481" height="94" alt="screenshot-sample-project-after"
src="https://github.com/user-attachments/assets/5f87ff12-6577-404e-9319-717f84b7d2e7"
/>

**Implementation notes:**

RemoteConnectionOptions::display_name() will be subject to
exhaustiveness checking on RemoteConnectionOption variants.

Keeps the same UI approach as the WSL distro variants.

Release Notes:

- Improved Recent Projects picker: now displays SSH hostname with
remotes.

Lee Nussbaum created

066dd5c acp: Fix download path for Codex on ARM Windows (#44395)

Click to expand commit body
Both windows paths use .zip, not .tar.gz

Closes #44378

Release Notes:

- acp: Fix codex-acp download path for ARM Windows targets

Ben Brandt created

bdba6fd remote(wsl): Make shell and platform discovery more resilient to shell scripts (#44363)

Click to expand commit body
Companion PR to https://github.com/zed-industries/zed/pull/44165

Release Notes:

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

Lukas Wirth created

2260b87 agent_ui: Fix show markdown list checked state (#43567)

Click to expand commit body
Closes #37527

This PR adds support for showing the list state of a list item inside
the agent UI.

**Before**
<img width="643" height="505" alt="Screenshot 2025-11-26 at 16 21 31"
src="https://github.com/user-attachments/assets/30c78022-4096-4fe4-a6cc-db208d03900f"
/>

**After**
<img width="640" height="503" alt="Screenshot 2025-11-26 at 16 41 32"
src="https://github.com/user-attachments/assets/ece14172-79a5-4d5e-a577-4b87db04280f"
/>

Release Notes:
- Agent UI now show the checked state of a list item

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

Remco Smits and Danilo Leal created

e6214b2 extensions: Don't recompile Tree-sitter parsers when up-to-date (#43442)

Click to expand commit body
When installing local "dev" extensions that provide tree-sitter
grammars, compiling the parser can be quite intensive[^anecdote]. This
PR changes the logic to only compile the parser if the WASM object
doesn't exist or the source files are newer than the object (just like
`make(1)` would do).

[^anecdote]: The tree-sitter parser for LLVM IR takes >10 minutes to
compile and uses 20 GB of memory on my laptop.

Release Notes:

- N/A

---------

Co-authored-by: Finn Evers <finn.evers@outlook.de>

Kian Kasad and Finn Evers created

7ef4591 editor: Fix link navigation within editors that don't have a workspace (#44389)

Click to expand commit body
This mostly affects Channel Notes, but due to a change in
https://github.com/zed-industries/zed/pull/43921 we were
short-circuiting before opening links.

I moved the workspace checks back to right before we need them so that
we still follow the same control flow as usual for these editors.

Closes #44207

Release Notes:

- N/A

Ben Brandt created

00e6cbc git_ui: Fix tooltip overlaying context menu in git blame (#42764)

Click to expand commit body
Closes #26949


## Summary

1. Split editor references to avoid borrow conflicts in event handlers
2. Check
[has_mouse_context_menu()](vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-browser/workbench/workbench.html)
state directly in tooltip conditional instead of caching stale value
3. Restructured context menu deployment to ensure proper sequencing:
hide popover → build menu → deploy menu → notify for re-render

**Screen recording**



https://github.com/user-attachments/assets/8a00f882-1c54-47b0-9211-4f28f8deb867



Release Notes:

- Fixed an issue where the context menu in the Git Blame view would be
frequently overlapped by the commit information tooltip.

---------

Co-authored-by: Finn Evers <finn.evers@outlook.de>

Mustaque Ahmed and Finn Evers created

9e0a4c2 terminal_view: Fix casing of popover menu entry (#44377)

Click to expand commit body
This ensures that the casing of this entry aligns with other entries in
the app popover Menus.

Release Notes:

- N/A

---------

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

Finn Evers and Piotr Osiewicz created

a8b61c5 ui: Remove support for unnecessary Switch colors (#44388)

Click to expand commit body
This PR removes the default, error, warning, and success color variants
from the `SwitchColor` enum. In the most YAGNI spirit, I think we'll
probably never want to use these colors for the switch, so there's no
reason to support them. And if we ever want to do it, we can re-add
them.

I also took the opportunity to change the default color to be "accent",
which is _already_ what we use for all instances of this component, so
there's no need to have to define it every time. This effectively makes
the enum support only "accent" and "custom", which I think is okay for
now if we ever need an escape hatch before committing to supporting new
values.

Release Notes:

- N/A

Danilo Leal created

d312d59 Add `zeta distill` command (#44369)

Click to expand commit body
This PR partially implements a knowledge distillation data pipeline.

`zeta distill` gets a dataset of chronologically ordered commits and
generates synthetic predictions with a teacher model (one-shot Claude
Sonnet).

`zeta distill --batches cache.db` will enable Message Batches API. Under
the first run, this command will collect all LLM requests and upload a
batch of them to Anthropic. On subsequent runs, it will check the batch
status. If ready, it will download the result and put them into the
local cache.


Release Notes:

- N/A

---------

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Co-authored-by: Ben Kunkle <ben@zed.dev>

Oleksiy Syvokon , Piotr Osiewicz , and Ben Kunkle created

b4083ec Fix typo in `prompt.md` (#44326)

Click to expand commit body
"too calls" → "tool calls"

Release Notes:

- N/A

Thomas Wood created

e75a7ae languages: Fix Markdown list items are automatically indented erroneously (#44381)

Click to expand commit body
Closes #44223

Regressed in https://github.com/zed-industries/zed/pull/40794 in attempt
to fix https://github.com/zed-industries/zed/issues/40757. This PR
handles both cases and add more tests around it.

Bug is only in Nightly.

Release Notes:

- N/A

Smit Barmase created

03cf7dd acp: Update to agent-client-protocol rust sdk v0.9.0 (#44373)

Click to expand commit body
Release Notes:

- N/A

Ben Brandt created

9364d39 Improve TS/TSX/JS syntax highlighting for parameters, types, and punctuation (#43437)

Click to expand commit body
This pull request enhances syntax highlighting for JavaScript,
TypeScript, TSX, and JSDoc by adding more precise rules for parameters,
types, and punctuation.

- Added queries for highlighting parameters (`@variable.parameter`)
- Expanded highlighting for type identifiers, type aliases, interfaces,
classes
- Extended/implemented types to improve distinction between different
type constructs (`@type`, `@type.class`)
- Added highlighting for punctuation in type parameters, unions,
intersections, annotations, index signatures, optional fields, and
predicates (`@punctuation.special`, `@punctuation.bracket`)
- Added highlighting for identifiers in JSDoc comments
(`@variable.jsdoc`)

Release Notes:

- Refined syntax highlighting in JavaScript and TypeScript for better
visual distinction of
  types, parameters, and JSDoc elements

Clay Tercek created

f169134 title_bar: Fix clicking collaborators on windows not starting a follow (#44364)

Click to expand commit body
Release Notes:

- Fixed left click not allowing to follow in collab title bar on windows

Lukas Wirth created