2d77a23
add element id in item render_page items instead
Anthony created
2d77a23
add element id in item render_page items instead
Anthony created
9e1f9c7
upper case all lsp references in titles and descriptions
Anthony created
e0be758
Fix some settings ui elements having duplicate ids
Anthony created
bb31a97
Deduplicate terminal settings and fix dropdown toggle bug
Anthony created
08b73d0
Merge remote-tracking branch 'origin/main' into settings-ui-elements
Anthony created
f2b1dd2
Merge conflicts
Anthony created
c543709
settings_ui: Add terminal settings (#39874)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
c58931a
git_ui: Fix open diff for untracked files when sorting by path enabled (#39862)
Fixes the `Open Diff` action for untracked files when the `sort_by_path` setting is enabled. The `ProjectDiff` wasn't correctly moving the multibuffer's cursor to the untracked file because, when that setting is enabled, it's sort prefix is changed to the tracked files sort prefix, and that wasn't accounted for in `move_to_entry`. Before these changes, the `sort_prefix` field for `PathKey` was called `namespace`, it was renamed to be clearer what its purpose is. Closes #39529 Release Notes: - Fixed 'Open Diff' action for untracked files when `sort_by_path` is enabled --------- Co-authored-by: David Kleingeld <davidsk@zed.dev>
Dino and David Kleingeld created
dd5da59
Provide codex as an option on remote sessions (#39774)
Release Notes: - N/A --------- Co-authored-by: Cole Miller <cole@zed.dev>
Ben Brandt and Cole Miller created
f1d17fc
acp: Simplify auth check and allow for custom /logout commands (#39867)
- Prefer agent-specific logout handling to allow state reset - Treat any auth method as supported; remove provider-specific filter - Avoid prompting auth when issuing /logout and agent supports it Release Notes: - N/A
Ben Brandt created
ccfc1ce
gpui: Fix drawing rotated SVGs (#33288)
Fixes: https://github.com/longbridge/gpui-component/issues/994 1. When SVG is rotated, incorrect graphics are drawn. For example: the original aspect ratio of the SVG is 1:1, if the bounds used to render the SVG are 400x200 (aspect ratio 2:1), [here](https://github.com/zed-industries/zed/blob/21f985a018f7cca9c0fb7f5b7a87555486ab9db5/crates/gpui/src/svg_renderer.rs#L91) the width is used as the scaling factor, causing the rendered SVG to only have half the height. This PR ensures the complete SVG image is always rendered. 2. The clipping region has no transformation applied, I added a function called `distance_from_clip_rect_transformed` in the shader. 3. Fixed `monochrome_sprite_fragment` in `shader.metal` not applying clipping region. ### Before: https://github.com/user-attachments/assets/8f93ac36-281e-4837-96cd-c308bfbf92d1 ### After: https://github.com/user-attachments/assets/f52b67a6-4cb9-4d6c-b759-bbb91b59c1cf Release Notes: - N/A --------- Co-authored-by: Jason Lee <huacnlee@gmail.com>
Sunli and Jason Lee created
3d4f488
vim: Update change surrounds to match vim's behavior (#38721)
These changes refactor the whitespace handling logic for Vim's change
surrounds command (`cs`), making its behavior closely match
[tpope/vim-surround](https://github.com/tpope/vim-surround), following
[this
discussion](https://github.com/zed-industries/zed/issues/38169#issuecomment-3304129461).
Zed's current implementation has two main differences when compared to
[tpope/vim-surround](https://github.com/tpope/vim-surround):
- It only considers whether a single space should be added or removed,
instead of all the space that is between the surrounding character and
the content
- It only takes into consideration the new surrounding characters in
order to determine whether to add or remove that space
A review of
[tpope/vim-surround](https://github.com/tpope/vim-surround)'s behavior
reveals these rules for whitespace:
* Quote to Quote
* Whitespace is never changed
* Quote to Bracket
* If opening bracket, add one space
* If closing bracket, do not add space
* Bracket to Bracket
* If opening to opening, keep only one space
* If opening to closing, remove all space
* If closing to opening, add one space
* If closing to closing, do not change space
* Bracket to Quote
* If opening, remove all space
* If closing, preserve all space
Below is a table with examples for each scenario. A new test has also
been added to specifically check the scenarios outlined above,
`vim::surrounds::test::test_change_surrounds_vim`.
| Type | Before | Command | After |
|-------------------|-------------|---------|---------------|
| Quote β Quote | `' a '` | `cs'"` | `" a "` |
| Quote β Quote | `" a "` | `cs"'` | `' a '` |
| Quote β Bracket | `' a '` | `cs'{` | `{ a }` |
| Quote β Bracket | `' a '` | `cs'}` | `{ a }` |
| Bracket β Bracket | `[ a ]` | `cs[{` | `{ a }` |
| Bracket β Bracket | `[ a ]` | `cs[}` | `{a}` |
| Bracket β Bracket | `[ a ]` | `cs]{` | `{ a }` |
| Bracket β Bracket | `[ a ]` | `cs]}` | `{ a }` |
| Bracket β Quote | `[ a ]` | `cs['` | `'a'` |
| Bracket β Quote | `[ a ]` | `cs]'` | `' a '` |
These changes diverge from
[tpope/vim-surround](https://github.com/tpope/vim-surround) when
handling newlines. For example, with the following snippet:
```rust
fn test_surround() {
if 2 > 1 {
println!("place cursor here");
}
};
```
Placing the cursor inside the string and running any combination of
β`cs{[`, β`cs{]`, β`cs}[`, or β`cs}]` would previously remove newline
characters. With these changes, using commands like β`cs}]` will now
preserve newlines.
Related to #38169
Closes #39334
Release Notes:
- Improved Vimβs change surround command to closely match
[tpope/vim-surround](https://github.com/tpope/vim-surround)Β behavior.
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Dino and Conrad Irwin created
ba2337f
project search: Reduce hangs on main thread (#39857)
This takes the idea that @RemcoSmitsDev started on in https://github.com/zed-industries/zed/pull/39354. We did away with grabbing a snapshot of the display map when buffer coordinates were sufficient. Closes #37267 Release Notes: - Reduced micro-stutters in project search with large multi-buffer contents. --------- Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
Piotr Osiewicz and Smit Barmase created
37d676e
Add support for xonsh shell (#39834)
Closes #39506 Release Notes: - Fixed environment variable capture when login shell is [xonsh](https://xon.sh/) --------- Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Merlin04 and Jakub Konka created
1bb6752
gpui: Fix typo in publish script (#39836)
Release Notes: - N/A
Mikayla Maki created
8c9b42d
gpui 0.2.0 (#39835)
Release Notes: - N/A
Mikayla Maki created
15c4aad
Add bump gpui script (#39833)
Release Notes: - N/A
Mikayla Maki created
3d200a5
settings_ui: Improve keyboard nav (#39819)
Closes #ISSUE
From notes:
```markdown
- [x] Clicking on the disclsoure icon button in the root-level tree view item should steal focus and move it to the root item (not the icon button)
- [x] [@ben] Allow left/right arrow keys to expand/collapse root tree view items in the nav
- [x] With this, make enter/space work the same as clicking (activate page, don't expand root items, focus moves to the content and leaves nav β becomes consistent with mouse interaction)
- [x] Smart cmd-shift-e: toggling focus should take you to the selected item
- [x] [@ben] pageup + pagedown in nav -> jump between root items
- [x] [@ben] home + end buttons should work
- in nav:
- home always goes to first section header
- end always goes to last _visible_ item (does not expand)
```
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
e077b63
settings_ui: Correct "File Icons" description (#39805)
Align with https://github.com/zed-industries/zed/blob/cd656485c863fcf3c1cc9cb1f00cd4b29b976fb1/crates/settings/src/settings_content/workspace.rs#L490 By the way, LOVE the settings UI! <3 Great job so far :) Release Notes: - N/A
Matthijs Kok created
ef839cc
Improve importing font-family settings from VS Code (#39736)
Closes https://github.com/zed-industries/zed/issues/39259 - Fixes import of `editor.fontFamily` (we were looking for the wrong key) - Adds basic support for the CSS font-family syntax used by VS Code, including font fallback Release Notes: - N/A
John Tur created
3d0312f
zeta2 inspector: Sort by scores and add score components tooltip (#39821)
Release Notes: - N/A Co-authored-by: Agus <agus@zed.dev>
Michael Sloan and Agus created
c1e3958
editor: Fix duplicate and copy line newlines (#39610)
Closes #34797 and its child #39508.  Release Notes: - Fixed `editor::DuplicateLineUp` duplicating the last line onto itself when the line doesn't end with a newline (#39508) - Fixed line copy not including a newline at end of buffer, causing paste to occur on the same line (#34797)
Tom Planche created
ba937d1
Onboarding refactor (#39724)
<img width="1648" height="976" alt="Screenshot 2025-10-07 at 6 57 20β―PM" src="https://github.com/user-attachments/assets/ae7289c0-8820-4fdf-ae28-84fb6bd64942" /> Fixes #39347 Release Notes: - Improved onboarding UI by collapsing it to a single page --------- Co-authored-by: dino <dinojoaocosta@gmail.com> Co-authored-by: Lukas Wirth <me@lukaswirth.dev> Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com> Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Andrew Farkas , dino , Lukas Wirth , Mikayla Maki , Anthony Eid , and Mikayla Maki created
4dbd186
Do not deselect in terminal on copy by default (#39814)
Release Notes: - Flips `terminal.keep_selection_on_copy` default to `true`
Kirill Bulatov created
88887fd
debugger: Add support for remote browser debugging (#39248)
This PR adds support for browser debugging in SSH and WSL projects. We use the vscode-js-debug-companion extension, repackaged as a standalone CLI (https://github.com/zed-industries/js-debug-companion-cli). Closes #38878 Release Notes: - debugger: Browser debugging is now supported in SSH and WSL projects. --------- Co-authored-by: Nia <nia@zed.dev>
Cole Miller and Nia created
31e75b2
git_ui: Add repository search and alphabetical sorting (#39351)
Closes #38778 Release Notes: - Added: Search functionality to repository selector - Improved: Repositories now display in alphabetical order
ozer created
681c198
Allow adding files to .gitignore (#38089)
This feature allows users to add a new, untracked file to `.gitignore` by using the context menu in the git panel. <img width="300" alt="Demo screen shot" src="https://github.com/user-attachments/assets/3f2402fb-9337-42f8-939f-dac12ca09518" /> Release Notes: - Added feature to add a new file to `.gitignore`
robert7k created
439add3
terminal: Clear shell after activating (#39798)
Two tweaks were required to ensure we correctly clear the shell after running an activate script(s): 1. PowerShell upon receiving `\r\n` input, will enter the continuation mode (>>). To avoid this, we send an "enter" key press instead `\x0d`. 2. In order to clear the terminal _after_ issuing all activation commands, we need to take into account the asynchronous nature of the activation process: - We write the command to run the script to PTY - We send "enter" (It is now being processed by the shell) At this point we need to wait for the shell to finish executing before we clear the terminal. Otherwise we will create a race where we might clear the terminal _before_ the shell finished executing the activation script(s). - Write `clear`/`cls` command to PTY - Send "enter" This way we guarantee that we clear the terminal _after_ all scripts were executed. Closes #38474 Release Notes: - N/A
Jakub Konka created
81b98cd
go: Add ability to run testable examples (#39390)
See related discussion #39381. <img width="724" height="488" src="https://github.com/user-attachments/assets/4a69e13e-783f-45d7-99f4-e23c0415a781" /> Release Notes: - Added ability to run Go Testable Examples
Lev Zakharov created
ca89a40
zeta2 inspector: Plan prompt locally (#39811)
Plans and displays the prompt locally before the response arrives. Helpful while debugging prompt planning. Release Notes: - N/A --------- Co-authored-by: Michael Sloan <mgsloan@gmail.com>
Agus Zubiaga and Michael Sloan created
f5884e9
audio: Move `log::info` into a global import (#39810)
I didn't find a commit, but it's now required for all platforms, I got
this compile error with 0.207.3 tag
```
error: cannot find macro `info` in this scope
--> crates\audio\src\audio.rs:121:13
|
121 | info!("Output stream: {:?}", output_handle);
| ^^^^
|
help: consider importing this macro
|
1 + use log::info;
|
error: could not compile `audio` (lib) due to 1 previous error
```
Closes #ISSUE
Release Notes:
- N/A
Maksim Bondarenkov created
fce9311
zeta2 inspector: Display prediction request immediately (#39809)
Release Notes: - N/A Co-authored-by: Michael Sloan <mgsloan@gmail.com>
Agus Zubiaga and Michael Sloan created
ef42314
lsp: Serialize LSP notifications on background threads (#39403)
This should reduce hiccups when opening large files. Release Notes: - N/A
Piotr Osiewicz created
cd65648
settings ui: Fix some layout regressions (#39804)
Release Notes: - N/A
Danilo Leal created
1e149b7
gpui: Add support for floating windows (#39702)
Closes #ISSUE This allows new windows like the Rules library or the Settings UI window to appear floating on window managers like hyprland: https://github.com/user-attachments/assets/628db7f9-4459-4601-85f1-789923831182 Left is with `WindowKind::Floating` and right is with `WindowKind::Normal` Release Notes: - Added support for floating windows on x11 and wayland
Alvaro Parker created
e0eeda1
inspector_ui: Align with title bar, other visual tweaks (#39697)
# How Few tweaks for the GPUI Inspector panel, including toolbar align with title bar, buffer font for source link, few other layout, spacing and wording tweaks. Release Notes: - N/A # Preview ### Before <img width="1286" height="602" alt="Screenshot 2025-10-07 at 19 33 20" src="https://github.com/user-attachments/assets/515ddcdf-a2c8-4f5f-b37e-b1668df2147f" /> ### After <img width="1286" height="542" alt="Screenshot 2025-10-07 at 19 09 24" src="https://github.com/user-attachments/assets/3a777974-3427-4545-afda-37fabcb012ba" />
Bartosz Kaszubowski created
bcef3b5
zeta2: Parse imports via Tree-sitter queries + improve `zeta retrieval-stats` (#39735)
Release Notes: - N/A --------- Co-authored-by: Max <max@zed.dev> Co-authored-by: Agus <agus@zed.dev> Co-authored-by: Oleksiy <oleksiy@zed.dev>
Michael Sloan , Max , Agus , and Oleksiy created
5fd1877
Add Codestral edit predictions provider (#34371)
Release Notes:
- Added Codestral edit predictions provider which can be enabled by adding an API key in the Mistral section of agent settings.

## Config
Get API key from https://console.mistral.ai/codestral and add it in the Mistral section of the agent settings.
```
"features": {
"edit_prediction_provider": "codestral"
},
"edit_predictions": {
"codestral": {
"model": "codestral-latest",
"max_tokens": 150
}
},
```
---------
Co-authored-by: Michael Sloan <michael@zed.dev>
David and Michael Sloan created
0969308
Make FoldAtLevel commands discoverable in command palette (#39422)
## Description Fixes #39376 Add individual FoldAtLevel1-9 actions so users can find fold commands in the command palette while keeping existing keybindings. Migrating user keymaps is necessary to have the keybinds show in the command palette. Closes #39376 ### Changes - `crates/editor/src/actions.rs` - Added FoldAtLevel1-9 action structs - `crates/editor/src/editor.rs` - Implemented fold_at_level_1-9 handler methods - `crates/editor/src/element.rs` - Registered new actions - `assets/keymaps/*.json` - Updated keybindings to use new individual actions ### Other Approaches considered - Adding #[serde(default)] to existing FoldAtLevel(u32) - wouldn't make it discoverable - Creating a single action with enumerated variants - idk about this that well. ### Release Notes Release Notes: - Added Fold At Level 1-9 actions to the command palette --------- Co-authored-by: HactarCE <6060305+HactarCE@users.noreply.github.com>
Munish Mummadi and HactarCE created
c7d5afe
docs: Add missing docs for CommandInterceptResult fields (#39676)
Document the `string` and `positions` fields to resolve TODO comments. Release Notes: - N/A Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
Xiaobo Liu created
d6b1801
inspector_ui: Split out size from bounds string (#39703)
# How Tweak the way in which inspected element bounds and size are printed to improved readability of GPUI Inspector data. > [!note] > It looks like the only place in the workspace where bounds are used within formatted print is GPUI Inspector panel, but I decided to do not alter [GPUI `geometry.rs` default format](https://github.com/zed-industries/zed/blob/a7e7f460205bc6eaa397f20c1bcf8c4105d93403/crates/gpui/src/geometry.rs#L1579-L1587), since adding multiline output and additional labels in there does not feel like the beast approach, but maybe I'm wrong? Release Notes: - N/A # Preview <img width="1168" height="224" alt="Screenshot 2025-10-07 at 20 08 35" src="https://github.com/user-attachments/assets/97753fc1-68d7-4cf8-ad92-afe85319f3d8" /> <img width="1168" height="228" alt="Screenshot 2025-10-07 at 20 09 24" src="https://github.com/user-attachments/assets/beed2a92-0817-4ed2-bb62-4d7b931e8709" />
Bartosz Kaszubowski created
7c55f71
Fix configuring shell in project settings (#39795)
I mistakenly broke this when refactoring settings Closes #39479 Release Notes: - Fixed a bug where you could no longer configure `terminal.shell` in project settings
Conrad Irwin created
4684d6b
terminal: Fix escaping arguments when using CMD as the shell (#39701)
A couple of caveats: - We should not auto-escape arguments with Alacritty's `escape_args` option if using CMD otherwise, the generated command will have way too many escaped characters for CMD to parse correctly. - When composing a full command for CMD, we need to put it in double quotes manually: `cmd /C "activate.bat& pwsh.exe -C do_something"` so that CMD executes the entire string as a sequence of commands. - CMD requires `&` as a chaining operator for commands (`;` for other shells). Release Notes: - N/A
Jakub Konka created
578e7e4
settings_ui: Focus content controls when opened from nav bar (#39792)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
a960db6
keymap editor: Adjust the "edit in keymap.json" button (#39789)
Making its visuals and positioning more consistent with the same button in the settings UI. Release Notes: - N/A
Danilo Leal created
5a0f796
agent2: Expand auto-retries for completion errors (#39787)
This PR expands our automatic retry behavior for certain classes of completion errors (e.g., rate limit errors). Previously this was only available when using burn mode. We now auto-retry when: - Using the Zed provider while on a token-based plan - Using the Zed provider while on a legacy plan with burn mode enabled - Using a non-Zed provider Release Notes: - Expanded automatic retry behavior for errors in the Agent. Errors classified as "retryable" (such as rate limit errors) will now automatically be retried when: - Using the Zed provider while on a token-based plan - Using the Zed provider while on a legacy plan with burn mode enabled - Using a non-Zed provider --------- Co-authored-by: David Kleingeld <davidsk@zed.dev>
Marshall Bowers and David Kleingeld created
604d566
file_finder: Fix path matching on starting slash (#39480)
These changes update the way the file finder decides wether to only look for an absolute path or for a relative path too. When the provided query started with a slash (`/`) the file finder would assume this to be an absolute path so would always try to find an absolute path and return no matches if none was found. This is meant to support situtations where, for example, a CLI tool might output the absolute path of a file and the user can copy and paste that in the file finder. However, it's should be possible to use slash (`/`) at the start of the query to specify that only relative files inside a folder should be matched, which would not work in this scenario. With these changes, the file finder will first check if the path is absolute and, if it is and no absolute matches were found, it'll still try to find relative matches, otherwise it'll simply look for relative matches. Closes #39350 Release Notes: - Fixed project files matches when using slash (`/`) at the start in order to consider relative paths --------- Co-authored-by: Piotr Osiewicz <piotr@zed.dev> Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Dino , Piotr Osiewicz , and Piotr Osiewicz created
1d1c799
Reland "Remove cx from ThemeSettings" (#39720)
- **Reapply "Remove cx from ThemeSettings (#38836)" (#39691)** - **Fix theme loading races** Closes #ISSUE Release Notes: - N/A
Conrad Irwin created
70af11e
settings ui: Add a handful of design tweaks (#39784)
Release Notes: - N/A
Danilo Leal created
5fa4b3b
windows: Do not exit from app in dev builds when cli is not found (#39768)
Release Notes: - N/A
Piotr Osiewicz created