Commit Graph
32200 Commits
Author SHA1 Message Date
Bennet Fenner 06e1db54a7 codex: Delete older versions after installing new one (#41191)
Release Notes:

- codex: Fixed an issue where downloading a new version would not delete
older versions
2025-10-25 19:19:57 +00:00
Karl-Erik Enkelmann 8e09256c8c Handle itemDefaults in CompletionList according to spec (#41187)
Closes https://github.com/zed-extensions/java/issues/101

Previously Zed did not handle resolving CompletionList with itemDefaults
correctly according to the
[LSP-Spec](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#:~:text=/**%0A%09%20*%20The%20edit%20text,%3F%3A%20string%3B).
When a `CompletionList` is provided by the server, that includes ranges
as `itemDefaults`, the field to use for the snippet to insert as
`newText` is in the `textEditText` field, with a fallback to `label` if
that does not exist (`insertText` is ignored).

Release Notes:

- Fixed Java language severs' completion defaults handling on Zed's side
2025-10-25 22:15:32 +03:00
Remco Smits 79ef10bfc3 markdown: Add support for HTML table column align attribute (#41163)
This PR allows you to define `align="right"` for example to change the
default alignment on **HTML** table columns. This PR also refactors
where we store the alignments in order to make it so you can define it
column based instead of only row based.

See that the `Revenue` column is left aligned instead of the default
`centered`.

**Result**

<img width="1161" height="177" alt="Screenshot 2025-10-25 at 11 01 38"
src="https://github.com/user-attachments/assets/94bda4f0-00c1-4726-a3bd-99b3f2573ef5"
/>


**Code example**

```HTML
<table>
    <tr>
        <th rowspan="2">Region</th>
        <th colspan="2" align="left">Revenue</th>
        <th rowspan="2">Growth</th>
    </tr>
    <tr>
        <th>Q2 2024</th>
        <th>Q3 2024</th>
    </tr>
    <tr>
        <td>North America</td>
        <td>$2.8M</td>
        <td>$2.4B</td>
        <td>+85,614%</td>
    </tr>
    <tr>
        <td>Europe</td>
        <td>$1.2M</td>
        <td>$1.9B</td>
        <td>+158,233%</td>
    </tr>
    <tr>
        <td>Asia-Pacific</td>
        <td>$0.5M</td>
        <td>$1.4B</td>
        <td>+279,900%</td>
    </tr>
</table>
```

Release Notes:

- markdown preview: Add support for `HTML` table column `align`
attribute
2025-10-25 20:12:05 +02:00
Remco Smits 986ca19516 markdown: Fix HTML tables with mismatching columns (#41108)
Follow-up: https://github.com/zed-industries/zed/pull/39898

Right now, we don't fill the empty column when the current row count is
less than the max row count. This PR fixes that by filling it with an
empty cell. So the table columns don't flow in the wrong direction, as
you can see inside the first screenshot.

**Before**
<img width="1095" height="182" alt="Screenshot 2025-10-24 at 16 09 02"
src="https://github.com/user-attachments/assets/e3abf24e-c190-4bd7-b43a-39f2f01ecd1c"
/>

**After**
<img width="1165" height="178" alt="Screenshot 2025-10-24 at 16 19 17"
src="https://github.com/user-attachments/assets/427c25f9-82a7-498b-a1a2-d71e4c288fe5"
/>

**Code example**
```html
<table>
    <tr>
        <th rowspan="2">Region</th>
        <th colspan="2">Revenue</th>
        <th rowspan="2">Growth</th>
    </tr>
    <tr>
        <th>Q2 2024</th>
        <th>Q3 2024</th>
    </tr>
    <tr>
        <td>North America</td>
        <td>$2.8M</td>
        <td>$2.4B</td>
        <td>+85,614%</td>
        <td>+99%</td> // extra column here
    </tr>
    <tr>
        <td>Europe</td>
        <td>$1.2M</td>
        <td>$1.9B</td>
        <td>+158,233%</td>
    </tr>
    <tr>
        <td>Asia-Pacific</td>
        <td>$0.5M</td>
        <td>$1.4B</td>
        <td>+279,900%</td>
    </tr>
</table>
```

**Note** there are no release notes, as the previous PR didn't get
released yet.

Release Notes:

- N/A
2025-10-25 20:09:56 +02:00
Douglas Leão 42d8d77938 Update GDScript documentation (#41142)
Some information in the GDScript documentation page was outdated (like
it still treats Zed if it was a macOS exclusive app) or some details
were missing.

- The `zed-gdscript` URL has been updated with the new owner.
- Pre-requisites added (with netcat included).
- Godot installation steps removed, it's now listed in the
pre-requisites.
- Setup steps simplified and reworded.

The note at the bottom was removed as I didn't see the issue in my end.

Release Notes:

- N/A
2025-10-25 15:59:04 +03:00
Julia Ryan e4c90be58a Add more detailed error for remove_file (#41147)
This should help us debug #40958.

Release Notes:

- N/A
2025-10-25 02:02:06 +00:00
Julia RyanandJohn Tur 7433d85458 Notify on opening WSL paths outside of wsl (#40195)
Closes #27340

Release Notes:

- N/A

---------

Co-authored-by: John Tur <john-tur@outlook.com>
2025-10-25 01:44:32 +00:00
Kirill Bulatov 1dffdea27c Fix duplicate hints in multi buffer excerpts during editing and scrolling (#41143)
Follow-up of https://github.com/zed-industries/zed/pull/40183
Closes https://github.com/zed-industries/zed/issues/24798

Release Notes:

- N/A
2025-10-24 23:08:19 +00:00
Mohin Hasin Rabbi 1f40a3c70e Document global debug.json usage and fix REPL error copy (#40836)
## Overview
- document how to keep a per-user debug.json so global launch tasks show
up everywhere (Fixes #39849)
- sanitize REPL terminal text before copying so error blocks can be
copied and opened in buffers (Fixes #40207)

## Design Decisions
- reused the existing user debug file (paths::debug_scenarios_file) and
pointed docs at the zed::OpenDebugTasks command to stay aligned with the
settings UX
- extract a sanitize helper inside TerminalOutput::full_text to strip
\r/null padding while keeping indentation intact, then join the cleaned
lines so clipboard and buffers get readable text

## Testing
- Not run (cargo is unavailable in this environment)

Fixes #39849.
Fixes #40207.
2025-10-25 01:13:53 +03:00
Somtoo Chukwurah 92c31278ee Add support for GitHub Copilot /responses endpoint (#40762)
Add support for GithubCopilot /responses endpoint. This gives the
copilot chat provider the ability to use the new GPT-5 codex model and
any other model that lacks support for /chat/copmletions endpoint.

Closes #38858 

Release Notes:

- Add support for GithubCopilot /responses endpoint.

# Added
1. copilot_response.rs that has the /response endpoint types
2. uses response endpoint if model does not support /chat/completions.
3. new into_copilot_response() to map LanguageCompletionEvents to
Request.
4. new map_stream() to map response stream event to
LanguageCompletionEvents and tests.
5. Fixed a bug where trying to parse response for non streaming for
/chat/completion was failing

# Notes
There is a pr open - https://github.com/zed-industries/zed/pull/39989
for adding /response support for OpenAi and OpenAi compatible API.
Altough they share some similarities (copilot api seems to mirror openAi
directly) ive simplified some stuff and tried to keep it the same with
the vscode-chat implementation where possible. There might be a case for
code reuse but i think keeping them separate for now should be ok.

# Tool Calls
<img width="716" height="670" alt="Screenshot from 2025-10-15 17-12-30"
src="https://github.com/user-attachments/assets/14e88a52-ba8b-4209-8f78-73d15034b1e0"
/>

# Image
<img width="923" height="494" alt="Screenshot from 2025-10-21 02-02-26"
src="https://github.com/user-attachments/assets/b96ce97c-331e-45cb-b5b1-7aa10ed387b4"
/>
2025-10-24 13:25:58 -06:00
Danilo Leal a7c5b8d78b Add ResetAllZoom and ResetAgentZoom actions (#41124)
Very often, when I'm testing or playing around with the zoom feature,
including the agent panel, I find myself missing one quick action that
would bring everything back to normal. That's what `ResetAllZoom` does.
If you have customized your zoom level in all areas of Zed, that action
returns everything to its default state. Similarly, if you're playing
around with zoom just in the agent panel, `ResetAgentZoom` does the same
in that context.

Release Notes:

- Added the `ResetAllZoom` and `ResetAgentZoom ` actions, allowing to
return the zoom level across the whole app and/or just in the agent
panel to its default/original value.
2025-10-24 18:11:39 +00:00
+8 d1b28e6431 REVIEWERS.conl (#40533)
Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Co-authored-by: David Kleingeld <davidsk@zed.dev>
Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Co-authored-by: Julia Ryan <juliaryan3.14@gmail.com>
Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Co-authored-by: Lukas Wirth <lukas@zed.dev>
Co-authored-by: dino <dinojoaocosta@gmail.com>
Co-authored-by: John Tur <john-tur@outlook.com>
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
Co-authored-by: Anthony <anthony@zed.dev>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Co-authored-by: Kate <work@localcc.cc>
Co-authored-by: Cole Miller <cole@zed.dev>
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
2025-10-24 11:50:49 -06:00
Danilo Leal ecf179df0c agent: Scale the agent UI and buffer font proportionally (#41121)
Closes https://github.com/zed-industries/zed/issues/41094

This PR adds the `agent_buffer_font_size` settings to be scaled in the
same proportion as the agent panel's UI font size, which was the only
setting that was being accounted for. This is something that I forgot to
do when we broke down the agent panel's font size controls into these
two values.

Release Notes:

- agent: Fixed an issue where the agent panel's buffer and UI font size
wouldn't scale proportionally.
2025-10-24 14:45:32 -03:00
Ben Kunkle e54c9da2a8 Fix include ignored migration rerunning (#41114)
Closes #ISSUE

Release Notes:

- Fixed an issue where having a correct `file_finder.include_ignored`
setting would result in failed to migrate errors
2025-10-24 13:06:29 -04:00
Jakub Konka bcbc6a330e Use ShellKind::try_quote whenever we need to quote shell args (#41104)
Re-reverts
https://github.com/zed-industries/zed/commit/8f4646d6c357409cfc286104088b4d21f2bea851
with fixes

Release Notes:

- N/A
2025-10-24 18:19:53 +02:00
feeiyu f213f4bcc8 Fix duplicate process entries in WSL debug attach list (#40591)
Closes #40589

Replaced `System::new_all()` with `System::new_with_specifics` to fetch
only essential process information and exclude non-main threads from the
process list

after fix:
<img width="641" height="474" alt="image"
src="https://github.com/user-attachments/assets/32335552-2f7a-4317-8c01-f37b2eadfdc1"
/>


Release Notes:

- Fix duplicate process entries in WSL debug attach list
2025-10-24 11:49:30 -04:00
DinoandPiotr Osiewicz 0ee6ca1767 project: Fix inability to open file after save as (#41012)
Update `project::buffer_store::BufferStore.save_buffer_as` in order to
correctly update the `path_to_buffer_id` hash map, ensuring that the
currently open file's path is dissociated from the buffer's id, to
prevent the new buffer from being open when trying to open the original
file.

Closes #29783 

Release Notes:

- Fixed issue where using `workspace: save as` would prevent users from
opening the original file from which the new file was created

---------

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
2025-10-24 15:27:34 +01:00
ToBinio 762082b15a ui_input: Don’t focus previous on decrement in NumberField (#41095)
This PR removes the behavior that the number_field changes focus to the
previous element when using the decrement button.

I mainly noticed this while decreasing the tab-size of a language, since
it there closes the page...

Please note that I am unsure what if any purpose this code has.
I was unable to find a use case and since it is not present in the
`increment_handler` I guess it should never have been here

---

Release Notes:

* Fixed wrongly focus previous element on number_field decrement
2025-10-24 14:03:01 +00:00
Joseph T. Lyons fcd690d04c Enable source.organizeImports.ruff by default for Python (#41103)
Release Notes:

- Enabled automatic import organization, via
[ruff](https://github.com/astral-sh/ruff), when saving Python files. To
disable this, use:

```json
"Python": {
  "code_actions_on_format": { "source.organizeImports.ruff": false }
}
```
2025-10-24 13:44:23 +00:00
Richard Feldman 8de4b360e8 ACP Extensions (#40663)
Adds the ability to install ACP agents via extensions

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-10-24 07:52:51 -04:00
Bennet Fenner 7644e797fe agent: Fix edit_agent evals (#40921)
Release Notes:

- N/A
2025-10-24 07:48:14 +00:00
Danilo Leal 4fb91135d1 ui: Use focus_visible method for some components (#41077)
Using the cool, [recently
added](https://github.com/zed-industries/zed/pull/40940) `focus-visible`
support in some components. This will be particularly nice in the
settings UI, as it will not display the focus styles if you're
navigating it with a pointer device as opposed to the keyboard.

Release Notes:

- N/A
2025-10-24 05:47:53 +00:00
Conrad IrwinandCole Miller f45a9b351d git: Branch diff (#40188)
Release Notes:

- git: Adds the ability to view the diff of the current branch since
main

---------

Co-authored-by: Cole Miller <cole@zed.dev>
2025-10-23 22:38:40 -06:00
Danilo Leal f11a3dcc97 settings_ui: Add small UI adjustments (#41065)
Super tiny changes that impact mostly Windows/Linux.

Release Notes:

- N/A
2025-10-24 01:08:26 +00:00
Danilo Leal 5aa82887ec rules library: Improve empty state & fix quirks on Windows (#41064)
Just got a new Windows machine and realized that the rules library empty
state was completly busted. Ended up also adding some little UI tweaks
to make it better for both Windows and Linux.

Release Notes:

- N/A
2025-10-23 21:45:48 -03:00
warrenjokinen fe730e9129 Fix typo in Font Features description, s/b "OpenType" (#41058)
Fix typo (regression?), 
"Opentype" should be "OpenType"

Closes #ISSUE

Release Notes:

- N/A
2025-10-23 21:19:21 -03:00
John Tur 59a98bae3a Add attribution for code sourced from Windows Terminal (#41061)
Release Notes:

- N/A
2025-10-24 00:12:06 +00:00
Agus Zubiaga 1cf765e126 Revert: Spawn terminal process on background executor (#41060)
Reverts https://github.com/zed-industries/zed/pull/40774 and
https://github.com/zed-industries/zed/pull/40824 since they introduce a
bug where Nushell processes are leaked and Ctrl+C doesn't kill the
current process.

Release Notes:

- Fix a bug where nushell processes wouldn't get killed after closing a
terminal tab
2025-10-23 23:37:23 +00:00
Tom Planche 79eff1fe05 Make cursor move to duplicated line when duplicating line up (#41004)
![Screen Recording 2025-10-23 at 14 50
26](https://github.com/user-attachments/assets/3427aa06-faf4-4f76-a604-bfc5af30f8ce)

Closes #40919
Follow-up of #39610

Release Notes:
- When duplicating line up, fixed cursor to move to the duplicated line
2025-10-24 02:20:16 +03:00
Kunall Banerjee af0d2ad491 docs: Fix small grammatical typo in JSX section (#41055)
Happened to notice this typo while going through the docs.

Release Notes:

- N/A

---

💖
2025-10-24 00:38:32 +02:00
Anthony EidandMikayla Maki f0ac54e8a5 settings_ui: Fix memory leak (#41036)
Closes #40351

The leak mainly showed up in the appearance page because it had a lot of
dropdown menus. The problem occurred because the drop-down menus were
creating a new entity on each frame instead of using the
`window.use_state...` API.

Release Notes:

- settings ui: Fixed memory leak in UI

---------

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
2025-10-23 21:31:20 +00:00
Niaanddino 68707ffc74 crashes: Avoid crash handler on detached threads (#40883)
Set a TLS bit to skip invoking the crash handler when a detached thread
panics.

cc @P1n3appl3 - is this at odds with what we need the crash handler to
do?

May close #39289, cannot repro without a nightly build

Release Notes:

- Fixed extension panics crashing Zed on Linux

Co-authored-by: dino <dinojoaocosta@gmail.com>
2025-10-23 21:04:22 +00:00
Conrad Irwin 1ce9a85a1a git: Only save dirty files during staging (#41047)
Closes #40581

Release Notes:

- git: No longer save clean files when staging (to avoid triggering
unnecessary rebuilds in external file watchers like vite)
2025-10-23 20:53:19 +00:00
Joseph T. Lyons 1966d4c818 Add an issue template for Git bugs (#41048)
Release Notes:

- N/A
2025-10-23 16:22:32 -04:00
Smit Barmase b6a18671dc settings_ui: Fix settings window doesn't inherit Zed icon (#41031)
Closes #40946

Release Notes:

- N/A
2025-10-24 01:32:09 +05:30
Jakub Konka c0ff8ef8e9 remote: Do not compress remote by default when building from source (#40994)
Release Notes:

- N/A
2025-10-23 21:26:34 +02:00
Lukas Wirth 66ec0fc0e1 Revert zero-width non-joiner insertion in text shaping (#41043)
Reverts parts of https://github.com/zed-industries/zed/pull/39928
Closes https://github.com/zed-industries/zed/issues/40987

Release Notes:

- Fixed some fonts rendering with absurd spacing on MacOS
2025-10-23 19:22:28 +00:00
435eab6896 Fix ESLint linebreak-style errors by preserving line endings in LSP communication (#38773)
Closes https://github.com/zed-industries/zed/issues/38453

Current `Buffer` API only allows getting buffer text with `\n` line
breaks — even if the `\r\n` was used in the original file's text.

This it not correct in certain cases like LSP formatting, where language
servers need to have original document context for e.g. formatting
purposes.

Added new `Buffer` API, replaced all buffer LSP registration places with
the new one and added more tests.

Release Notes: 

- Fixed ESLint linebreak-style errors by preserving line endings in LSP
communication

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
2025-10-23 19:11:48 +00:00
Sean Hagstrom 55bc679c19 docs: Ensure macOS and Linux keybindings are escaped in HTML (#39802)
Closes #39654

Release Notes:

- Fixed the formatting of macOS and Linux keybindings in the Zed docs to
escape the backslash character when templating.
2025-10-23 14:13:35 -04:00
Lukas Wirth 6aaf19f276 multi_buffer: Split multi_buffer into more modules (#41033)
There are a of separate APIs in this, partially interleaved making it
difficult to grasp.

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-10-23 17:57:52 +00:00
Marshall Bowers d83ed4e03e docs: Update docs for theme_overrides setting (#41038)
This PR updates the docs to reference the `theme_overrides` setting
instead of the old `experimental.theme_overrides` setting.

Release Notes:

- N/A
2025-10-23 17:52:35 +00:00
Bennet Fenner 11eba64e68 Rename assistant_context crate to assistant_text_thread (#41024)
Previously we had `Context` and `ContextStore` in both `agent_ui` (used
to store context for the inline assistant) and `assistant_context` (used
for text threads) which is confusing.
This PR makes it so that the `assistant_context` concepts are now called
`TextThread*`, the crate was renamed to `assistant_text_thread`

Release Notes:

- N/A
2025-10-23 17:17:41 +00:00
Cole Miller 63fe1eae59 Fix overly noisy direnv error notification (#41029)
Updates #40531, restoring the previous behavior which didn't surface an
error when no direnv binary was found.

Release Notes:

- N/A
2025-10-23 17:03:55 +00:00
Cole Miller 8b6f3ec647 Fix the project diff sometimes missing updates (#40662)
This PR does two related things:

- First, it gets rid of the undifferentiated `RepositoryEvent::Updated`
in favor of three new events that have clearer definitions:
`BranchChanged`, `StashEntriesChanged`, and `StatusesChanged`. An
implication of this is that we no longer emit a `RepositoryEvent` unless
some git state changed; previously we would emit `RepositoryUpdated`
after doing a git status scan even if no statuses changed.
- Second, it changes the subscription strategy of the project diff to
make it update more robustly. Previously, the project diff only
subscribed to the `GitStore`, so it relied on getting a `GitStoreEvent`
when some buffer's diff hunks changed, even if the git status of the
buffer's file didn't change (e.g. a second hunk in a file that was
already modified). After this PR, it also subscribes to the individual
`BufferDiff` entities for buffers that have a git status, so the
`GitStore` is freed from that responsibility. This also fixes some real
cases where the previous strategy was not effective in keeping the
project diff up to date (captured in a test).

Release Notes:

- Fixed some cases where the project diff would fail to update in
response to git events.
2025-10-23 16:46:27 +00:00
Lukas Wirth a66098b485 gpui: Revert reuse_prepaint change of #40767 (#41025)
https://github.com/zed-industries/zed/pull/40767/files/c95ae84d919462393455d858836f479dd24bd620#r2455674159
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-10-23 16:23:35 +00:00
Lukas Wirth b519ab2758 rope: Improve chunk slicing panic messages (#41023)
We still see a bunch of panics here but the default slicing panic
doesn't tell which side of the range is bad

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-10-23 16:17:11 +00:00
Jakub Konka 023ac1b649 Revert "Use ShellKind::try_quote whenever we need to quote shell args" (#41022)
Reverts zed-industries/zed#40912

Closes https://github.com/zed-industries/zed/issues/41010
2025-10-23 16:06:47 +00:00
Lukas Wirth 738e248109 gpui: Small perf optimizations (#40767)
Some random findings based on profiling

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-10-23 13:26:27 +00:00
Kirill Bulatov 4f0a44896a Fix anchor-related panic when gathering applicable inlay chunks (#41002)
Before, inlay chunks were retrieved from the cache based on actualized
anchor ranges, but using an old buffer snapshot. Now, update all chunks
and snapshot to the actual before returning the applicable ones.

Follow-up of https://github.com/zed-industries/zed/pull/40183

Release Notes:

- N/A
2025-10-23 12:51:07 +00:00
Viraj Bhartiya 9a6397fb17 Add keybindings for menu navigation in vim.json (#40877)
- Added "ctrl-p" for selecting the previous menu item
- Added "ctrl-n" for selecting the next menu item

Closes #40619 

Release Notes:
- Ctrl+P now moves to the previous result; Ctrl+N moves to the next.
2025-10-23 13:21:32 +02:00