94aa643
docs: Update agent tools page (#42271)
Click to expand commit body
Release Notes: - N/A
Danilo Leal created
94aa643
docs: Update agent tools page (#42271)
Release Notes: - N/A
Danilo Leal created
28a8515
shell_env: Wrap error context in format! where missing (#42267)
Release Notes: - N/A
Jakub Konka created
a2c2c61
Add helix keymap to delete without yanking (#41988)
Added previously missing keymap for helix deleting without yank. Action "editor::Delete" is mapped to "Ald-d" as in https://docs.helix-editor.com/master/keymap.html#changes Release Notes: - N/A
boris.zalman created
77667f4
Remove Markdown CodeBlock metadata and Custom rendering (#42211)
Follow up #40736 Clean up `CodeBlockRenderer::Custom` related rendering per the previous PR [comment](https://github.com/zed-industries/zed/pull/40736#issuecomment-3503074893). Additional note here: 1. The `Custom` variant in the enum `CodeBlockRenderer` will become not useful since cleaning all code related to the custom rendering logic. 2. Need to further review the usage of code block `metadata` field in `MarkdownTag::CodeBlock` enum. I would like to have the team further review my note above so that we can make sure it will be safe to clean it up and will not affect any potential future features will be built on top of it. Thank you! Release Notes: - N/A
Xipeng Jin created
b01a6fb
Fix missing highlight for macro_invocation bang (#41572)
(Not sure if this was left out on purpose, but this makes things feel a bit more consistent since [VS Code parses bang mark as part of the macro name](https://github.com/microsoft/vscode/blob/main/extensions/rust/syntaxes/rust.tmLanguage.json#L889-L905)) Release Notes: - Added the missing highlight for the bang mark in macro invocations. | **Before** | **After** | | :---: | :---: | | <img width="684" height="222" alt="before" src="https://github.com/user-attachments/assets/ae71eda3-76b5-4547-b2df-4e437a07abf5" /> | <img width="646" height="236" alt="fixed" src="https://github.com/user-attachments/assets/500deda5-d6d8-439c-8824-65c2fb0a5daa" /> |
Hyeondong Lee created
44d91c1
docs: Explain what scrollbar marks represent (#42130)
## Summary Adds explanations for what each type of scrollbar indicator visually represents in the editor. ## Description This PR addresses the issue where users didn't understand what the colored marks on the scrollbar mean. The existing documentation explained how to toggle each type of mark on/off, but didn't explain what they actually represent. This adds a brief, clear explanation after each scrollbar indicator setting describing what that indicator shows (e.g., "Git diff indicators appear as colored marks showing lines that have been added, modified, or deleted compared to the git HEAD"). ## Fixes Closes #31794 ## Test Plan - Documentation follows the existing style and format of `docs/src/configuring-zed.md` - Each explanation is concise and immediately follows the setting description - Language is clear and user-friendly Release Notes: - N/A
Roland Rodriguez created
d187cbb
Add comment injection support to remaining languages (#41710)
Release Notes: - Added support for comment language injections for remaining built-in languages and multi-line support for Rust
Donnie Adams created
c241ead
zeta2: Targeted retrieval search (#42240)
Since we removed the filtering step during context gathering, we want
the model to perform more targeted searches. This PR tweaks search tool
schema allowing the model to search within syntax nodes such as `impl`
blocks or methods.
This is what the query schema looks like now:
```rust
/// Search for relevant code by path, syntax hierarchy, and content.
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct SearchToolQuery {
/// 1. A glob pattern to match file paths in the codebase to search in.
pub glob: String,
/// 2. Regular expressions to match syntax nodes **by their first line** and hierarchy.
///
/// Subsequent regexes match nodes within the full content of the nodes matched by the previous regexes.
///
/// Example: Searching for a `User` class
/// ["class\s+User"]
///
/// Example: Searching for a `get_full_name` method under a `User` class
/// ["class\s+User", "def\sget_full_name"]
///
/// Skip this field to match on content alone.
#[schemars(length(max = 3))]
#[serde(default)]
pub syntax_node: Vec<String>,
/// 3. An optional regular expression to match the final content that should appear in the results.
///
/// - Content will be matched within all lines of the matched syntax nodes.
/// - If syntax node regexes are provided, this field can be skipped to include as much of the node itself as possible.
/// - If no syntax node regexes are provided, the content will be matched within the entire file.
pub content: Option<String>,
}
```
We'll need to keep refining this, but the core implementation is ready.
Release Notes:
- N/A
---------
Co-authored-by: Ben <ben@zed.dev>
Co-authored-by: Max <max@zed.dev>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Agus Zubiaga , Ben , Max , and Max Brunsfeld created
96445b9
Keep old bracket highlights for the same version
Kirill Bulatov created
3e91467
Simplify
Kirill Bulatov created
d304cb9
Merge remote-tracking branch 'origin/main' into kb/rainbow-brackets
Kirill Bulatov created
4fbccce
Track already queried chunks in the editor
Kirill Bulatov created
5f82264
Automate settings registration (#42238)
Release Notes: - N/A --------- Co-authored-by: Nia <nia@zed.dev>
Mikayla Maki and Nia created
309947a
editor: Allow clicking on excerpts with alt key to open file path (#42235)
#42021 Made clicking on an excerpt title toggle it. This PR brings back the old behavior if a user is pressing the Alt key when clicking on an excerpt title. Release Notes: - N/A --------- Co-authored-by: Remco Smits <djsmits12@gmail.com>
Anthony Eid and Remco Smits created
0881e54
terminal: Spawn terminal process on main thread on unix (#42234)
Otherwise the terminal will not process the signals correctly Release Notes: - Fixed ctrl+c and friends not working in the terminal on macOS and linux
Lukas Wirth created
4511d11
bundle: Skip sentry upload for local install on macOS (#42231)
This is a follow up to #41482. When running `script/bundle-mac`, it will upload debug symbols to Sentry if you have a `$SENTRY_AUTH_TOKEN` set. I happen to have one set, so this script was trying to generate and upload those. Whoops! This change skips the upload entirely if you're running a local install. Release Notes: - N/A
claytonrcarter created
19d2fdb
Refresh releases page post deploy (#42218)
Release Notes: - N/A
Conrad Irwin created
20953ec
Make nightly bucket objects public (#42229)
Makes it easier to port updates to cloudflare Closes #ISSUE Release Notes: - N/A
Conrad Irwin created
7475bda
debugger: Truncate scope names to avoid text overlapping in variable list (#42230)
Closes #41969 This was caused because scope names weren't being truncated unlike the other type of variable list entries. Release Notes: - debugger: Fix bug where minimizing the width of the variable list would cause scope names to overlap Co-authored-by: Remco Smits <djsmits12@gmail.com>
Anthony Eid and Remco Smits created
8e4c807
Fix duplicated 'the' typo (#42225)
Just found this while reading the docs. Release Notes: - N/A
Dima created
a66dac7
Fix crash during drag-and-drop on Windows (#42227)
The HGLOBAL is itself the HDROP. Do not dereference it. Release Notes: - windows: Fixed crashes during drag-and-drop operations
John Tur created
8a903f9
2025 11 07 update privacy docs (#42226)
Docs update Release Notes: - N/A
morgankrey created
9f9575d
Silence rust-analyzer startup errors (#42222)
When rust-analyzer is still loading the cargo project it tends to error out on most lsp requests with `content modified`. This pollutes our logs. Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
00898d4
docs: Add docs on extension capabilities (#42223)
This PR adds some initial docs on extension capabilities. Release Notes: - N/A
Marshall Bowers created
bcc3307
Add optional Zed log field to all bug report templates (#42221)
Release Notes: - N/A
Joseph T. Lyons created
8ba33ad
gpui: Do not unwrap in `window_procedure` (#42216)
Technically these should not be possible to hit, but sentry says otherwise. Turning these into errors should give us more information than the abort due to unwinding across ffi boundaries. Fixes ZED-321 Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
1e63448
docs: Update extension features language (#42215)
This PR updates the language around what features extensions can provide. Release Notes: - N/A
Marshall Bowers created
93f9cff
Remove invalid assertion in editor (#42210)
Release Notes: - N/A
Jakub Konka created
6cafe4a
gpui: Do not panic when unable to find the selected fonts (#42212)
Fixes ZED-329 Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
585c440
util: Support shell env fetching for git bash (#42208)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
083bd14
util: Fall back to `cmd` if we can't find powershell on the system (#42204)
Closes https://github.com/zed-industries/zed/issues/42165 Release Notes: - Fixed trying to use powershell for commands when its not installed on the system
Lukas Wirth created
9591790
markdown: Add support for `HTML` styling attributes (#42143)
Second take on https://github.com/zed-industries/zed/pull/37765. This PR adds support for styling elements (**b**, **strong**, **em**, **i**, **ins**, **del**), but also allow you to show the styling text inline with the current text. This is done by appending all the up-following text into one text chunk and merge the highlights from both of them into the already existing chunk. If there does not exist a text chunk, we will create one and the next iteration we will use that one to store all the information on. **Before** <img width="483" height="692" alt="Screenshot 2025-11-06 at 22 08 09" src="https://github.com/user-attachments/assets/6158fd3b-066c-4abe-9f8e-bcafae85392e" /> **After** <img width="868" height="300" alt="Screenshot 2025-11-06 at 22 08 21" src="https://github.com/user-attachments/assets/4d5a7a33-d31c-4514-91c8-2b2a2ff43e0e" /> **Code example** ```html <p>some text <b>bold text</b></p> <p>some text <strong>strong text</strong></p> <p>some text <i>italic text</i></p> <p>some text <em>emphasized text</em></p> <p>some text <del>delete text</del></p> <p>some text <ins>insert text</ins></p> <p>Some text <strong>strong text</strong> more text <b>bold text</b> more text <i>italic text</i> more text <em>emphasized text</em> more text <del>deleted text</del> more text <ins>inserted text</ins></p> <p><a href="https://example.com">Link Text</a></p> <p style="text-decoration: underline;">text styled from style attribute</p> ``` cc @bennetbo **TODO** - [x] add tests for styling nested text that should result in one merge Release Notes: - Markdown Preview: Added support for `HTML` styling elements --------- Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Remco Smits and Bennet Bo Fenner created
74bf1a1
recent_projects: Do not try to watch `/etc/ssh/ssh_config` on windows (#42200)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
0a2d4b4
Hold the brackets lock less
Kirill Bulatov created
e72c3bf
agent_ui: Remove `message_editor` module (#42195)
Artefact from agent1 removal Release Notes: - N/A
Bennet Bo Fenner created
6677e2f
Simplify
Kirill Bulatov created
54ccd81
Properly invalidate the brackets
Kirill Bulatov created
160bf91
language_models: Filter out whitespace-only text content parts for OpenAI and OpenAI compatible providers (#40316)
Closes #40097
When multiple files are added sequentially to the agent panel, the
request JSON incorrectly includes "text" elements containing only
spaces. These empty elements cause the Zhipu AI API to return a "text
cannot be empty" error.
The fix filters out any "text" elements that are empty or contain only
whitespaces.
UI state when the error occurs:
<img width="300" alt="Image"
src="https://github.com/user-attachments/assets/c55e5272-3f03-42c0-b412-fa24be2b0043"
/>
Request JSON (causing the error):
```
{
"model": "glm-4.6",
"messages": [
{
"role": "system",
"content": "<<CUT>>"
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "[@1.txt](zed:///agent/file?path=C%3A%5CTemp%5CTest%5C1.txt)"
},
{ "type": "text", "text": " " },
{
"type": "text",
"text": "[@2.txt](zed:///agent/file?path=C%3A%5CTemp%5CTest%5C2.txt)"
},
{ "type": "text", "text": " describe" },
```
Release Notes:
- Fixed an issue when an OpenAI request contained whitespace-only text content
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Maokaman1 and Bennet Bo Fenner created
82a7915
Add a bit more clarity into the docs
Kirill Bulatov created
aff4c25
markdown: Restore horizontal scrollbars for codeblocks (#40736)
### Summary Restore the agent pane’s code-block horizontal scrollbar for easier scrolling without trackpad and preserve individual scroll state across multiple code blocks. ### Motivation Addresses https://github.com/zed-industries/zed/issues/34224, where agent responses with wide code snippets couldn’t be scrolled horizontally in the panel. Previously there is no visual effect for scrollbar to let the user move the code snippet and it was not obviously to use trackpad or hold down `shift` while scrolling. This PR will ensure the user being able to only use their mouse to drag the horizontal scrollbar to show the complete line when the code overflow the width of code block. ### Changes - Support auto-hide horizontal scrollbar for rendering code block in agent panel by adding scrollbar support in markdown.rs - Add `code_block_scroll_handles` cache in _crates/markdown/src/markdown.rs_ to give each code block a persistent `ScrollHandle`. - Wrap rendered code blocks with custom horizontal scrollbars that match the vertical scrollbar styling and track hover visibility. - Retain or clear scroll handles based on whether horizontal overflow is enabled, preventing leaks when the markdown re-renders. ### How to Test 1. Open the agent panel, request code generation, and ensure wide snippets show a horizontal scrollbar on hover. 3. Scroll horizontally, navigate away (e.g., change tabs or trigger a re-render), and confirm the scroll position sticks when returning. 5. Toggle horizontal overflow styling off/on (if applicable) and verify scrollbars appear or disappear appropriately. ### Screenshots / Demos (if UI change) https://github.com/user-attachments/assets/e23f94d9-8fe3-42f5-8f77-81b1005a14c8 ### Notes for Reviewers - This is my first time contribution for `zed`, sorry for any code patten inconsistency. So please let me know if you have any comments and suggestions to make the code pattern consistent and easy to maintain. - For now, the horizontal scrollbar is not configurable from the setting and the style is fixed with the same design as the vertical one. I am happy to readjust this setting to fit the needs. - Please let me know if you think any behaviors or designs need to be changed for the scrollbar. - All changes live inside _crates/markdown/src/markdown.rs_; no API surface changes. Closes #34224 ### Release Notes: - AI: Show horizontal scroll-bars in wide markdown elements
Xipeng Jin created
ae02d06
One less todo!
Kirill Bulatov created
4adc91e
Simplify
Kirill Bulatov created
146e754
URL-encode the image paths in Markdown so that images with filenames (#41788)
Closes https://github.com/zed-industries/zed/issues/41786 Release Notes: - markdown preview: Fixed an issue where path urls would not be parsed correctly when containing URL-encoded characters <img width="1680" height="1126" alt="569415cb-b3e8-4ad6-b31c-a1898ec32085" src="https://github.com/user-attachments/assets/7de8a892-ff01-4e00-a28c-1c5e9206ce3a" />
aohanhongzhi created
278fe91
Skip buffer registration if lsp data should be ignored (#42190)
Release Notes: - N/A
Kirill Bulatov created
39fb89e
workspace: Do not panic when the database is corruped (#42186)
Fixes ZED-1NK Release Notes: - Fixed zed not starting when the database cannot be loaded
Lukas Wirth created
9d52b6c
terminal: Allow configuring conda manager (#40577)
Closes #40576 This PR makes Conda activation configurable and transparent by adding a `terminal.detect_venv.on.conda_manager` setting (`"auto" | "conda" | "mamba" | "micromamba"`, default `"auto"`), updating Python environment activation to honor this preference (or the detected manager executable) and fall back to `conda` when necessary. The preference is passed via `ZED_CONDA_MANAGER` from the terminal settings, and the activation command is built accordingly (with proper quoting for paths). Changes span `zed/crates/terminal/src/terminal_settings.rs` (new `CondaManager` and setting), `zed/crates/project/src/terminals.rs` (inject env var), `zed/crates/languages/src/python.rs` (activation logic), and `zed/assets/settings/default.json` (document the setting). Default behavior remains unchanged for most users while enabling explicit selection of `mamba` or `micromamba`. Release Notes: - Added: terminal.detect_venv.on.conda_manager setting to choose the Conda manager (auto, conda, mamba, micromamba). Default: auto. - Changed: Python Conda environment activation now respects the configured manager, otherwise uses the detected environment manager executable, and falls back to conda. - Reliability: Activation commands quote manager paths to handle spaces across platforms. - Compatibility: No breaking changes; non-Conda environments are unaffected; remote terminals are supported. --------- Co-authored-by: Lukas Wirth <me@lukaswirth.dev> Co-authored-by: Lukas Wirth <lukas@zed.dev>
Casper van Elteren , Lukas Wirth , and Lukas Wirth created
082b80e
gpui: Unify the index_for_x methods (#42162)
Supersedes https://github.com/zed-industries/zed/pull/39910 At some point, these two (`index_for_x` and `closest_index_for_x`) methods where separated out and some code paths used one, while other code paths took the other. That said, their behavior is almost identical: - `index_for_x` computes the index behind the pixel offset, and returns `None` if there's an overshoot - `closest_index_for_x` computes the nearest index to the pixel offset, taking into account whether the offset is over halfway through or not. If there's an overshoot, it returns the length of the line. Given these two behaviors, `closest_index_for_x` seems to be a more useful API than `index_for_x`, and indeed the display map and other core editor features use it extensively. So this PR is an experiment in simply replacing one behavior with the other. Release Notes: - Improved the accuracy of mouse selections in Markdown
Mikayla Maki created
483e31e
Fix telemetry (#42184)
Follow up to #41991 🤦🏻 Release Notes: - N/A
Bennet Bo Fenner created
61c263f
agent_ui: Allow opening thread as markdown in remote projects (#42182)
Release Notes: - Added support for opening thread as markdown in remote projects
Bennet Bo Fenner created
3c19174
diagnostics: Fix diagnostics view no clearing blocks correctly (#42179)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created