466a2e2
Improve font rendering on macOS (#37622)
Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/7992 Release Notes: - N/A
localcc created
466a2e2
Improve font rendering on macOS (#37622)
Part of https://github.com/zed-industries/zed/issues/7992 Release Notes: - N/A
localcc created
365c5ab
editor: Remove unnecessary clone (#37833)
The style is taken by reference everywhere, so no need to clone it at the start of every `prepaint`. Release Notes: - N/A
Finn Evers created
11d81b9
Revert "git: Use self.git_binary_path instead raw git string" (#37828)
Reverts zed-industries/zed#37757
Jakub Konka created
4b3b2ac
Fix hot reload of builtin TreeSitter queries on Linux (#37825)
`fs.watch` is recursive on mac and non-recursive on Linux. Release Notes: - N/A
Michael Sloan created
8494247
Fix code action menu items font size in toolbar (#37824)
Closes https://github.com/zed-industries/zed/issues/36478 Release Notes: - N/A
Danilo Leal created
3e605c2
docs: Fix casing on mentions to some brand names (#37822)
- MacOS β macOS - VSCode β VS Code - SublimeText β Sublime Text - Javascript/Typescript β JavaScript/TypeScript Release Notes: - N/A
Danilo Leal created
82b11bf
docs: Include Cursor in the list of supported base keymaps (#37821)
We were missing that in the /key-bindings page. Also took advantage of the opportunity to add a bunch of small writing tweaks. Release Notes: - N/A
Danilo Leal created
3a437fd
Remove Chat (#37789)
At RustConf we were demo'ing zed, and it continually popped open the chat panel. We're usually inured to this because the Chat panel doesn't open unless a Guest is in the channel, but it made me sad that we were showing a long stream of vacuous comments and unresponded to questions on every demo screen. We may bring chat back in the future, but we need more thought on the UX, and we need to rebuild the backend to not use the existing collab server that we're trying to move off of. Release Notes: - Removed the chat feature from Zed (Sorry to the 5 of you who use this on the regular!)
Conrad Irwin created
96c429d
Only reject agent actions, don't restore checkpoint on revert (#37801)
Updates #37623 Release Notes: - Changed the behaviour when editing an old message in a native agent thread. Prior to this, it would automatically restore the checkpoint (which could lead to a surprising amount of work being discarded). Now it will just reject any unaccepted agent edits, and you can use the "restore checkpoint" button for the original behavior.
Conrad Irwin created
ea4073e
cloud_llm_client: Add new `Plan` variants (#37810)
This PR adds new variants to the `Plan` enum. Release Notes: - N/A
Marshall Bowers created
8c93112
settings_ui: Add Basic Implementation of Language Settings (#37803)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Anthony <anthony@zed.dev>
Ben Kunkle and Anthony created
1feffad
Remove `zed-pro` feature flag (#37807)
This PR removes the `zed-pro` feature flag, as it was not being used. Release Notes: - N/A
Marshall Bowers created
ae54a4e
Add commands to select next/previous siblings in the syntax tree (#35053)
Closes #5133 and discussion https://github.com/zed-industries/zed/discussions/33493 This PR adds two new commands to select next/previous siblings in the syntax tree. These commands were modelled after the existing ones about expand/shrink selection. With this PR I've added new key bindings inspired by `helix` for previous / next / expand / shrink selections. https://github.com/user-attachments/assets/4ef7fadb-0b82-4897-95c7-1737827bf4ac Release Notes: - Add commands to select next/previous siblings in the syntax tree --------- Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>
Ivan Danov and Joseph T. Lyons created
4a0a7d1
Add item for the debugger panel in the app view menu (#37805)
Release Notes: - Enabled the debugger panel to be opened via the app's "View" menu option
Danilo Leal created
5934d37
python: Improve Basedpyright banner styles (#37802)
Just tidying this up a bit. Release Notes: - N/A
Danilo Leal created
acde79d
agent: Improve popover trigger styles (#37800)
This PR mostly adds some style treatment to popover button triggers in the agent panel, either making them better aligned with their trigger or adjusting the color to better clarify which button is triggering the currently opened menu. Moving forward, I think the selected styles at least should probably be tackled at the component level, whether that's a context menu or a popover, so we don't have to ever do this manually (and running the risk of forgetting to do it). Release Notes: - N/A
Danilo Leal created
246c644
agent_servers: Fix proxy configuration for Gemini (#37790)
Closes #37487 Proxy settings are now taken from the Zed configuration and passed to Gemini via the "--proxy" flag. Release Notes: - acp: Gemini ACP server now uses proxy settings from Zed configuration.
Patsakula Nikita created
e4de26e
cloud_llm_client: Remove unused code (#37799)
This PR removes some unused code from the `cloud_llm_client`. This was only used on the server, so we can move it there. Release Notes: - N/A
Marshall Bowers created
7091c70
open_ai: Trim newline before "data:" prefix and account for the possibility of no space after ":" (#37644)
I'am using an openai compatible model, but got nothing in agent thread
panel, and Zed log has "Model generated an empty summary" line.
I add one log to open_ai.rs:
<img width="2454" height="626" alt="εΎη"
src="https://github.com/user-attachments/assets/85354c7d-a0cc-4bba-86fd-2a640038a13e"
/>
and got:
<img width="3456" height="278" alt="εΎη"
src="https://github.com/user-attachments/assets/7746aedd-5d76-44b5-90f2-e129a1507178"
/>
It appear that `let line = line.strip_prefix("data: ")?;` can not handle
correctly.
Release Notes:
- N/A
---------
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
ZhangJun and Ben Brandt created
fa0df6d
python: Replace pyright with basedpyright (#35362)
Follow-up to #35250. Let's experiment with having this by default on
nightly.
Release Notes:
- Added built-in support for the basedpyright language server for Python
code. basedpyright is now enabled by default, and pyright (previously
the primary Python language server) remains available but is disabled by
default. This supersedes the basedpyright extension, which can be
uninstalled. Advantages of basedpyright over pyright include support for
inlay hints, semantic highlighting, auto-import code actions, and
stricter type checking. To switch back to pyright, add the following
configuration to settings.json:
```json
{
"languages": {
"Python": {
"language_servers": ["pyright", "pylsp", "!basedpyright"]
}
}
}
```
---------
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Co-authored-by: Lukas Wirth <lukas@zed.dev>
Cole Miller , Piotr Osiewicz , and Lukas Wirth created
99102a8
ACP over SSH (#37725)
This PR adds support for using external agents in SSH projects via ACP, including automatic installation of Gemini CLI and Claude Code, authentication with API keys (for Gemini) and CLI login, and custom agents from user configuration. Co-authored-by: maan2003 <manmeetmann2003@gmail.com> Release Notes: - agent: Gemini CLI, Claude Code, and custom external agents can now be used in SSH projects. --------- Co-authored-by: maan2003 <manmeetmann2003@gmail.com>
Cole Miller and maan2003 created
5f01f6d
agent: Make read_file and edit_file tool call titles more specific (#37639)
For read_file and edit_file, show the worktree-relative path if there's only one visible worktree, and the "full path" otherwise. Also restores the display of line numbers for read_file calls. Release Notes: - N/A
Cole Miller created
a66cd82
Fix line endings in `terminal_hyperlinks.rs` (#37654)
Fixes Windows line endings in `terminal_hyperlinks.rs`, which was accidentally originally added with them. Release Notes: - N/A
Dave Waggoner created
f07da9d
Correctly parse backslash character on replacement (#37014)
When a keybind contains a backslash character (\\), it is parsed incorrectly, which results in an invalid keybind configuration. This patch fixes the issue by ensuring that backslashes are properly escaped during the parsing process. This allows them to be used as intended in keybind definitions. Release Notes: - Fixed an issue where keybinds containing a backslash character (\\) failed to be replaced correctly ## Screenshots <img width="912" height="530" alt="SCR-20250828-borp" src="https://github.com/user-attachments/assets/561a040f-575b-4222-ac75-17ab4fa71d07" /> <img width="912" height="530" alt="SCR-20250828-bosx" src="https://github.com/user-attachments/assets/b8e0fb99-549e-4fc9-8609-9b9aa2004656" />
hong jihwan created
8d05bb0
Add injections for Isograph function calls in JavaScript and TypeScript (#36320)
Required for https://github.com/isographlabs/isograph/pull/568 to work properly. Tested with a local build and made sure everything's working great! Release Notes: - JavaScript/TypeScript/JSX: Added support for injecting Isograph language support into `iso` function calls
Iha Shin (μ μν) created
2325f14
diagnostics: Current file diagnostics view (#34430)
These changes introduce a new command to the Diagnostics panel, `diagnostics: deploy current file`, which allows the user to view the diagnostics only for the currently opened file. Here's a screen recording showing these changes in action π½ [diagnostics: deploy current file](https://github.com/user-attachments/assets/b0e87eea-3b3a-4888-95f8-9e21aff8ea97) Closes #4739 Release Notes: - Added new `diagnostics: deploy current file` command to view diagnostics for the currently open file --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Dino and Conrad Irwin created
fe2aa3f
onboarding: Fix font loading frame delay (#37668)
Closes #ISSUE Fixed an issue where the first frame of the `Editing` page in onboarding would have a slight delay before rendering the first time it was navigated to. This was caused by listing the OS fonts on the main thread, blocking rendering. This PR fixes the issue by adding a new method to the font family cache to prefill the cache on a background thread. Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com> Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Anthony <anthony@zed.dev>
Ben Kunkle , Mikayla Maki , Anthony Eid , and Anthony created
10989c7
helix: Add match operator (#34060)
This is an implementation of matching like "m i (", as well as "] (" and
"[ (" in `helix_mode` with a few supported objects and a basis for more.
Release Notes:
- Added helix operators for selecting text objects
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
fantacell and Conrad Irwin created
3f80ac0
macos: Fix menu bar flickering (#37707)
Closes #37526 Release Notes: - Fixed menu bar flickering when using some IMEs on macOS.
εΌ ε°η½ created
4f1634f
Remove unused `semantic_index` crate (#37780)
Release Notes: - N/A
Bennet Bo Fenner created
40eec32
markdown_preview: Fix trimming of leading whitespace in Markdown lists (#35750)
Closes #35712 Release Notes: - Fixed white-space trimming leading to disconnect between list items and content in markdown previews. --------- Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Eduardo Alba and Bennet Bo Fenner created
1749945
windows: Check required GPU/driver feature `StructuredBuffer` (#37776)
Check whether the GPU/driver supports the StructuredBuffer feature required by our shaders. If it doesnβt, log an error and skip that GPU/driver, so Windows can fall back to the software renderer. Release Notes: - N/A
εΌ ε°η½ created
80a4746
project: Be explicit about project-searchability for buffers (#37773)
Closes https://github.com/zed-industries/zed/issues/28830 Release Notes: - Fixed builtin buffers and log views showing up in project search
Lukas Wirth created
01f5b73
cargo: Remove unused -fuse-ld=lld flag from Win config (#37769)
It is unused and generates a warning ``` LINK : warning LNK4044: unrecognized option '/fuse-ld=lld'; ignored ``` If in the future we want to give `lld-link.exe` a try, we can set ```toml linker = "lld-link.exe" ``` instead. At the time of writing, my tests have shown that there is no real difference between `lld-link` and `link` in terms of linking speed. Release Notes: - N/A
Jakub Konka created
a0081dd
project: Consider all worktrees for activation script search (#37764)
Should fix https://github.com/zed-industries/zed/issues/37734 Release Notes: - Fixed venv not always activating correctly
Lukas Wirth created
f522823
Highlight shorthand fields in Rust (#37674)
Release Notes: - Highlight shorthand fields in Rust | Zed 0.202.7 | With this PR | | --- | --- | | <img width="370" height="50" alt="rust-0 202 7" src="https://github.com/user-attachments/assets/856a4d82-3ad0-4248-ad51-0472a0b6531a" /> | <img width="370" height="50" alt="rust-pr" src="https://github.com/user-attachments/assets/25b8e357-8519-4533-9026-3f2874b42ddb" /> |
chbk created
5a8603b
Install mold from the OS on Debian 13 (Trixie) (#37712)
I ran `scripts/linux` on Debian Trixie 13. It suggested manually installing Mold, but [mold](http://packages.debian.org/mold) is packaged on Debian and so we could install it automatically. The version packaged there seems to work well enough for `cargo t` to pass, at least. ## Tested ``` ; sudo apt remove mold libstdc++-14-dev ... uninstalls them ; ./script/linux The following NEW packages will be installed: build-essential clang clang-19 clang-tools-19 g++ g++-14 g++-14-x86-64-linux-gnu g++-x86-64-linux-gnu libstdc++-14-dev mold ; cargo t (passes) ``` Release Notes: - N/A
Martin Pool created
abac87c
tests: Fix doctests in crates/component (#37716)
Previously, `cargo test --package component` failed due to missing
imports for a doctest:
```
Doc-tests component
running 1 test
test crates/component/src/component.rs - Component::description (line 229) ... FAILED
failures:
---- crates/component/src/component.rs - Component::description (line 229) stdout ----
error: cannot find derive macro `Documented` in this scope
--> crates/component/src/component.rs:231:10
|
4 | #[derive(Documented)]
| ^^^^^^^^^^
error[E0599]: no associated item named `DOCS` found for struct `MyComponent` in the current scope
--> crates/component/src/component.rs:236:20
|
5 | struct MyComponent;
| ------------------ associated item `DOCS` not found for this struct
...
9 | Some(Self::DOCS)
| ^^^^ associated item not found in `MyComponent`
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0599`.
Couldn't compile the test.
failures:
crates/component/src/component.rs - Component::description (line 229)
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s
error: doctest failed, to rerun pass `-p component --doc`
bobcat ~/src/zed (doctests) 18:33
```
This might be unnoticed if you mostly run nextest, as it does not run
doctests.
Release Notes:
- N/A
Martin Pool created
c3d065c
git: Use self.git_binary_path instead raw git string (#37757)
Release Notes: - N/A
Jakub Konka created
e1a5d29
markdown: Add support for inline HTML `img` tags inside text (#37264)
Follow-up: #36700 This PR adds basic support for showing images inline inside a text. As you can see inside the before screenshot, the image was displayed right below the `Some inline text` text. This was because we didn't consider the image to be inline with the text (paragraph). Now we do :) All the test changes are making sure it is not more than 1 element parsed, instead of only checking for the first parsed element. This could work out bad when we return more than 1 result. **Before** <img width="1717" height="1344" alt="Screenshot 2025-08-31 at 13 49 45" src="https://github.com/user-attachments/assets/13c5f9dd-0e0a-4e08-b2a6-28e9a4e0cab8" /> **After** <img width="1719" height="1343" alt="Screenshot 2025-08-31 at 13 42 14" src="https://github.com/user-attachments/assets/bf7aa82f-3743-4fb3-87aa-4a97a550c4d1" /> **Code example**: ```markdown <p>some inline text <img src="https://picsum.photos/200/300" alt="Description of image" style="height: 100px" /> asdjkflsadjfl</p> # Html Tag <img src="https://picsum.photos/200/300" alt="Description of image" /> # Html Tag with width and height <img src="https://picsum.photos/200/300" alt="Description of image" width="100" height="200" /> # Html Tag with style attribute with width and height <img src="https://picsum.photos/200/300" alt="Description of image" style="width: 100px; height: 200px" /> # Normal Tag  ``` Release Notes: - Markdown: Added support for inline HTML `img` tags inside paragraphs
Remco Smits created
d342da4
docs: Fix typos in language configurations (#37740)
Fixes several typos in the docs. I think there are more but I have only read what I actually needed :) Release Notes: - N/A
HE7086 created
7ae8f81
language_models: Clear cached credentials when OpenAI and OpenAI Compatible provider `api_url` change (#37610)
Closes #37093 Also check this: #37099. So currently in zed for both OpenAI and OpenAI Compatible provider when the url is changed from settings the api_key stored in the provider state is not cleared and it is still used. But if you restart zed the api_key is cleared. Currently zed uses the api_url to store and fetch the api key from credential provider. The behaviour is not changed overall, it's just that we have made it consistent it with the zed restart logic where it re-authenticates and fetches the api_key again. I have attached the video below to show case before and after of this. So all in all the problem was we were not re-authenticating the in case api_url change while zed is still running. Now we trigger a re-authentication and clear the state in case authentication fails. OpenAI Compatible Provider: | Before | After | |--------|--------| | <video src="https://github.com/user-attachments/assets/324d2707-ea72-4119-8981-6b596a9f40a3" /> | <video src="https://github.com/user-attachments/assets/cc7fdb73-8975-4aaf-a642-809bb03ce319" /> | OpenAI Provider: | Before | After | |--------|--------| | <video src="https://github.com/user-attachments/assets/a1c07d1b-1909-4b49-b33c-fc05123e92e7" /> | <video src="https://github.com/user-attachments/assets/d78aeccd-5cd3-4d0c-8b9f-6f98e499d7c8" /> | Release Notes: - Fixed OpenAI and OpenAI Compatible provide API keys being persisted when changing the API URL setting. Authentication is now properly revalidated when settings change. --------- Signed-off-by: Umesh Yadav <git@umesh.dev>
Umesh Yadav created
36364b1
agent_ui: Clear model selector query on dismiss (#37569)
Closes #36756 | Before | After | |--------|--------| | <video src ="https://github.com/user-attachments/assets/1d022ac6-0aea-4e98-a717-9988420c9683"/> | <video src="https://github.com/user-attachments/assets/78d19012-1224-4c92-a6c8-47ae4c13ca31"/> | Release Notes: - agent: Clear model selector query on dismiss in agent panel --------- Signed-off-by: Umesh Yadav <git@umesh.dev>
Umesh Yadav created
b35959f
agent_ui: Fix `context_server` duplication when name is updated (#35403)
Closes #35400 | Before | After | |--------|--------| | <video src="https://github.com/user-attachments/assets/6aae34ca-e022-457a-9b66-47b85c976b23"/> | <video src="https://github.com/user-attachments/assets/ae058988-8f70-4605-b537-e045175d2e75" /> | Release Notes: - agent: Fix `context_server` duplication when name is updated --------- Signed-off-by: Umesh Yadav <git@umesh.dev> Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Umesh Yadav and Ben Brandt created
9450bca
ollama: Properly format tool calls fed back to the model (#34750)
Fix an issue that resulted in Ollama models not being able to not being able to access the input of the commands they executed (only being able to access the result). This properly return the function history as shown in https://github.com/ollama/ollama/blob/main/docs/api.md#chat-request-with-history-with-tools Previously, function input where not returned and result where returned as a "user" role. Release Notes: - ollama: Improved format when returning tool results to the models
marius851000 created
69bdef3
editor: Fix inconsistent search behavior for untitled/temporary tabs (#37086)
Closes #37597
Release Notes:
- N/A
---
## Problem
When using "Tab Switcher: Toggle All", temporary files (untitled buffers
without associated file paths) cannot be searched by their displayed
content. This creates an inconsistent user experience where:
- **UI Display**: Shows dynamic titles based on the first line of
content (up to 40 characters)
- **Search Text**: Only searches for the static text "untitled"
### Example
- A temporary file containing `Hello World` is displayed as "Hello
World" in the tab
- However, searching for "Hello" in Tab Switcher returns no results
- Only searching for "untitled" will find this temporary file
## Root Cause
The issue stems from inconsistent title generation logic between display
and search:
1. **Display Title** (`items.rs:724`): Uses `self.title(cx)` β
`MultiBuffer::title()` β `buffer_content_title()`
- Returns the first line of content (max 40 chars) for temporary files
2. **Search Text** (`items.rs:650-656`): Uses `tab_content_text()`
method
- Returns hardcoded "untitled" for files without paths
## Solution
Modified the `tab_content_text()` method in `crates/editor/src/items.rs`
to use the same logic as the displayed title for consistency:
```rust
fn tab_content_text(&self, detail: usize, cx: &App) -> SharedString {
if let Some(path) = path_for_buffer(&self.buffer, detail, true, cx) {
path.to_string_lossy().to_string().into()
} else {
// Use the same logic as the displayed title for consistency
self.buffer.read(cx).title(cx).to_string().into()
}
}
```
Liu Jinyi created
0e33a3a
zeta: Check whether data collection is allowed for recent edit history (#37680)
Also: * Adds tests for can_collect_data. * Temporarily removes collection of diagnostics. Release Notes: - Edit Prediction: Fixed a bug where requests were marked eligible for data collection despite the recent edit history in the request involving files that may not be open source. The requests affected by this bug will not be used in training data.
Michael Sloan created
76aaf6a
Fix docs for `tabs.close_position` in `default.json` (#37729)
Minor docs fix. Seems like 0a4ff2f47536c872ebd1ac3e672538a6251832e8 accidentally added "hidden" to the docs of both β `close_position` and `show_close_button`. Release Notes: - N/A Co-authored-by: tastenbier <>
Bruno Taschenbier and tastenbier created
0ef7ee1
windows: Remove some unused keys from the keymap (#37722)
AFAIK, we dont handle these keys on Windows. Release Notes: - N/A
εΌ ε°η½ created
29def01
windows: Update Windows keymap (#37721)
Pickup the changes from #37009 Release Notes: - N/A
εΌ ε°η½ created