8227c45
docs: Document debugger.dock setting (#32038)
Click to expand commit body
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
8227c45
docs: Document debugger.dock setting (#32038)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
d23359e
debugger: Fix issues with running Zed-installed debugpy + hangs when downloading (#32034)
Closes #32018 Release Notes: - Fixed issues with launching Python debug adapter downloaded by Zed. You might need to clear the old install of Debugpy from `$HOME/.local/share/zed/debug_adapters/Debugpy` (Linux) or `$HOME/Library/Application Support/Zed/debug_adapters/Debugpy` (Mac).
Piotr Osiewicz created
936ad0b
Use better fallback for empty rerun action (#32031)
When invoking the task rerun action before any task had been run, it falls back to task selection modal. Adjust this fall back to use the debugger view, if available: Before:  After:  Release Notes: - N/A
Kirill Bulatov created
faa0bb5
Better log canonicalization errors (#32030)
Based on https://github.com/zed-industries/zed/issues/18673#issuecomment-2933025951 Adds an anyhow error context with the path used for canonicalization (also, explicitly mention path at the place from the comment). Release Notes: - N/A
Kirill Bulatov created
2db2271
Do not activate inactive tabs when pinning or unpinning
Closes https://github.com/zed-industries/zed/issues/32024 Release Notes: - Fixed a bug where inactive tabs would be activated when pinning or unpinning.
Joseph T. Lyons created
79b1dd7
Improve collab cleanup (#32000)
Co-authored-by: Max <max@zed.dev> Co-authored-by: Marshall <marshall@zed.dev> Co-authored-by: Mikayla <mikayla@zed.dev> Release Notes: - N/A
Conrad Irwin created
81f8e2e
Limit BufferSnapshot::surrounding_word search to 256 characters (#32016)
This is the first step to closing #16120. Part of the problem was that `surrounding_word` would search the whole line for matches with no limit. Co-authored-by: Conrad Irwin \<conrad@zed.dev\> Co-authored-by: Ben Kunkle \<ben@zed.dev\> Co-authored-by: Cole Miller \<cole@zed.dev\> Release Notes: - N/A
Anthony Eid created
b9256dd
editor: Apply `common_prefix_len` refactor suggestion (#31957)
This adds João's nice suggestion from https://github.com/zed-industries/zed/pull/31818#discussion_r2118582616. Release Notes: - N/A --------- Co-authored-by: João Marcos <marcospb19@hotmail.com>
Gilles Peiffer and João Marcos created
27d3da6
editor: Fix panic when full width crease is wrapped (#31960)
Closes #31919 Release Notes: - Fixed a panic that could sometimes occur when the agent panel was too narrow and contained context included via `@`. --------- Co-authored-by: Antonio <antonio@zed.dev> Co-authored-by: Antonio Scandurra <me@as-cii.com>
Bennet Bo Fenner , Antonio , and Antonio Scandurra created
03357f3
Fix panic when re-editing old message with creases (#32017)
Co-authored-by: Cole Miller <m@cole-miller.net> Release Notes: - agent: Fixed a panic when re-editing old messages --------- Co-authored-by: Cole Miller <m@cole-miller.net> Co-authored-by: Cole Miller <cole@zed.dev>
Conrad Irwin , Cole Miller , and Cole Miller created
4aabba6
Improve Zed prompts for file path selection (#32014)
Part of https://github.com/zed-industries/zed/discussions/31653 `"use_system_path_prompts": false` is needed in settings for these to appear as modals for new file save and file open. Fixed a very subpar experience of the "save new file" Zed modal, compared to a similar "open file path" Zed modal by uniting their code. Before: https://github.com/user-attachments/assets/c4082b70-6cdc-4598-a416-d491011c8ac4 After: https://github.com/user-attachments/assets/21ca672a-ae40-426c-b68f-9efee4f93c8c Also * alters both prompts to start in the current worktree directory, with the fallback to home directory. * adjusts the code to handle Windows paths better Release Notes: - Improved Zed prompts for file path selection --------- Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
Kirill Bulatov and Smit Barmase created
8c46a4f
Make completions menu stay open after after it's manually requested (#32015)
Also includes a clarity refactoring to remove `ignore_completion_provider`. Closes #15549 Release Notes: - Fixed completions menu closing on typing after being requested while `show_completions_on_input: false`.
Michael Sloan created
522abe8
Change default formatter settings for LaTeX (#28727)
Closes: https://github.com/rzukic/zed-latex/issues/77 ## Default formatter: `latexindent` Before, formatting was delegated to the language server, which just ran a `latexindent` executable. There was no benefit to running it through the language server over running it as an "external" formatter in zed. In fact this was an issue because there was no way to provide an explicit path for the executable (causing above extension issue). Having the default settings configure the formatter directly gives more control to user and removes the number of indirections making it clearer how to tweak things like the executable path, or extra CLI args, etc... ## Alternative: `prettier` Default settings have also been added to allow prettier as the formatter (by just setting `"formatter": "prettier"` in the "LaTeX" language settings). This was not possible before because an extra line needed to be added to the `prettier` crate (similarly to what was done for https://github.com/zed-industries/zed/issues/19024) to find the plugin correctly. > [!NOTE] > The `prettier-plugin-latex` node module also contained a `dist/standalone.js` but using that instead of `dist/prettier-plugin-latex.js` gave an error, and indeed the latter worked as intended (along with its questionable choices for formatting). Release Notes: - LaTeX: added default `latexindent` formatter settings without relying on `texlab`, as well as allowing `prettier` to be chosen for formatting --------- Co-authored-by: Peter Tripp <peter@zed.dev>
Luke Naylor and Peter Tripp created
5ae8c4c
Fix word completions clobbering the text after the cursor (#32010)
Release Notes: - N/A
Michael Sloan created
d8195a8
project_panel: Highlight containing folder which would be the target of the drop operation (#31976)
Part of https://github.com/zed-industries/zed/issues/14496 This PR adds highlighting on the containing folder which would be the target of the drop operation. It only highlights those directories where actual drop is possible, i.e. same directory where drag started is not highlighted. - [x] Tests https://github.com/user-attachments/assets/46528467-e07a-4574-a8d5-beab25e70162 Release Notes: - Improved project panel to show a highlight on the containing folder which would be the target of the drop operation.
Smit Barmase created
2645591
agent: Allow to accept and reject all via the panel (#31971)
This PR introduces the "Reject All" and "Accept All" buttons in the panel's edit bar, which appears as soon as the agent starts editing a file. I'm also adding here a new method to the thread called `has_pending_edit_tool_uses`, which is a more specific way of knowing, in comparison to the `is_generating` method, whether or not the reject/accept all actions can be triggered. Previously, without this new method, you'd be waiting for the whole generation to end (e.g., the agent would be generating markdown with things like change summary) to be able to click those buttons, when the edit was already there, ready for you. It always felt like waiting for the whole thing was unnecessary when you really wanted to just wait for the _edits_ to be done, as so to avoid any potential conflicting state. <img src="https://github.com/user-attachments/assets/0927f3a6-c9ee-46ae-8f7b-97157d39a7b5" width="500"/> --- Release Notes: - agent: Added ability to reject and accept all changes from the agent panel. --------- Co-authored-by: Agus Zubiaga <hi@aguz.me>
Danilo Leal and Agus Zubiaga created
526a7c0
agent: Support `AGENT.md` and `AGENTS.md` as rules file names (#31998)
These started to be used more recently, so we should also support them. Release Notes: - agent: Added support for `AGENT.md` and `AGENTS.md` as rules file names.
Danilo Leal created
e793740
agent: Refine rules library window design (#31994)
Just polishing up a bit the Rules Library design. I think the most confusing part here was the icon that was being used to tag a rule as default; I've heard feedback more than once saying that was confusing, so I'm now switching to a rather standard star icon, which I'd assume is well-understood as a "favoriting" affordance. Release Notes: - N/A
Danilo Leal created
dea0a58
docs: Update mentions to GitHub to use correct capitalization (#31996)
That type of thing... 😅 "Github" is the incorrect formatting; "GitHub" is the correct. Release Notes: - N/A
Danilo Leal created
b7abc9d
agent: Display full terminal output without scrolling (#31922)
The terminal tool card used a fixed height and scrolling, but this meant that it was too tall for commands that only outputted a few lines, and the nested scrolling was undesirable. This PR makes the card be as too as needed to fit the entire output (no scrolling), and allows the user to collapse it to fewer lines when applicable. Making it work the same way as the edit tool card. In fact, both tools now use a shared UI component. https://github.com/user-attachments/assets/1127e21d-1d41-4a4b-a99f-7cd70fccbb56 Release Notes: - Agent: Display full terminal output - Agent: Allow collapsing terminal output
Agus Zubiaga created
01a77bb
Add sql language docs (#32003)
Closes: https://github.com/zed-industries/zed/issues/9537 Pairs with removing `prettier-plugin-sql` from the sql extension: - https://github.com/zed-extensions/sql/pull/19 Release Notes: - N/A
Peter Tripp created
de225fd
file_finder: Add option to create new file (#31567)
https://github.com/user-attachments/assets/7c8a05a1-8d59-4371-a1d6-a8cb82aa13b9 While implementing this, I noticed that currently when the search panel displays only one result, the box oscillates a bit up and down like so: https://github.com/user-attachments/assets/dd1520e2-fa0b-4307-b27a-984e69b0a644 Not sure how to fix this at the moment, maybe that could be another PR? Release Notes: - Add option to create new file in project search panel.
Daniel Zhu created
1bc052d
docs: Gemini thinking budget configuration (#32002)
Release Notes: - N/A
Oleksiy Syvokon created
29cb95a
Remove support for changing magnification of active pane (#31981)
Closes #4265 Closes #24600 This setting causes many visual defects, and introduces unnecessary (maintenance) complexity. as seen by #4265 and #24600 CC: @iamnbutler - How do you feel about this? I recommend looking at https://github.com/zed-industries/zed/pull/24150#issuecomment-2866706506 for more context Release Notes: - Removed support --------- Co-authored-by: Peter <peter@zed.dev>
Ben Kunkle and Peter created
1307b81
Allow configuring custom git hosting providers in project settings (#31929)
Closes #29229 Release Notes: - Extended the support for configuring custom git hosting providers to cover project settings in addition to global settings. --------- Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Cole Miller and Anthony Eid created
203754d
docs: Demote rdbg support in docs (#31993)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
c9c603b
Add support for OpenRouter as a language model provider (#29496)
This pull request adds full integration with OpenRouter, allowing users
to access a wide variety of language models through a single API key.
**Implementation Details:**
* **Provider Registration:** Registers OpenRouter as a new language
model provider within the application's model registry. This includes UI
for API key authentication, token counting, streaming completions, and
tool-call handling.
* **Dedicated Crate:** Adds a new `open_router` crate to manage
interactions with the OpenRouter HTTP API, including model discovery and
streaming helpers.
* **UI & Configuration:** Extends workspace manifests, the settings
schema, icons, and default configurations to surface the OpenRouter
provider and its settings within the UI.
* **Readability:** Reformats JSON arrays within the settings files for
improved readability.
**Design Decisions & Discussion Points:**
* **Code Reuse:** I leveraged much of the existing logic from the
`openai` provider integration due to the significant similarities
between the OpenAI and OpenRouter API specifications.
* **Default Model:** I set the default model to `openrouter/auto`. This
model automatically routes user prompts to the most suitable underlying
model on OpenRouter, providing a convenient starting point.
* **Model Population Strategy:**
* <strike>I've implemented dynamic population of available models by
querying the OpenRouter API upon initialization.
* Currently, this involves three separate API calls: one for all models,
one for tool-use models, and one for models good at programming.
* The data from the tool-use API call sets a `tool_use` flag for
relevant models.
* The data from the programming models API call is used to sort the
list, prioritizing coding-focused models in the dropdown.</strike>
* <strike>**Feedback Welcome:** I acknowledge this multi-call approach
is API-intensive. I am open to feedback and alternative implementation
suggestions if the team believes this can be optimized.</strike>
* **Update: Now this has been simplified to one api call.**
* **UI/UX Considerations:**
* <strike>Authentication Method: Currently, I've implemented the
standard API key input in settings, similar to other providers like
OpenAI/Anthropic. However, OpenRouter also supports OAuth 2.0 with PKCE.
This could offer a potentially smoother, more integrated setup
experience for users (e.g., clicking a button to authorize instead of
copy-pasting a key). Should we prioritize implementing OAuth PKCE now,
or perhaps add it as an alternative option later?</strike>(PKCE is not
straight forward and complicated so skipping this for now. So that we
can add the support and work on this later.)
* <strike>To visually distinguish models better suited for programming,
I've considered adding a marker (e.g., `</>` or `🧠`) next to their
names. Thoughts on this proposal?</strike>. (This will require a changes
and discussion across model provider. This doesn't fall under the scope
of current PR).
* OpenRouter offers 300+ models. The current implementation loads all of
them. **Feedback Needed:** Should we refine this list or implement more
sophisticated filtering/categorization for better usability?
**Motivation:**
This integration directly addresses one of the most highly upvoted
feature requests/discussions within the Zed community. Adding OpenRouter
support significantly expands the range of AI models accessible to
users.
I welcome feedback from the Zed team on this implementation and the
design choices made. I am eager to refine this feature and make it
available to users.
ISSUES: https://github.com/zed-industries/zed/discussions/16576
Release Notes:
- Added support for OpenRouter as a language model provider.
---------
Signed-off-by: Umesh Yadav <umesh4257@gmail.com>
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Umesh Yadav and Marshall Bowers created
e13b494
bedrock: Fix cross-region inference (#30659)
Closes #30535 Release Notes: - AWS Bedrock: Add support for Meta Llama 4 Scout and Maverick models. - AWS Bedrock: Fixed cross-region inference for all regions. - AWS Bedrock: Updated all models available through Cross Region inference. --------- Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Shardul Vaidya and Marshall Bowers created
c039772
language_models: Sort Ollama models by name (#31620)
Hello, This is my first contribution so apologies if I'm not following the proper process (I haven't seen anything special in https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md). Also, I have tested my changes manually, but I could not figure out an easy we to instantiate a `LanguageModelSelector` in the unit tests, so I didn't write a test. If you can provide some guidance I'd be happy to write a test. --- If the user configured the models with custom names via `display_name`, we want the ollama models to be sorted based on the name that is actually displayed. ~~The original issue is only about ollama but this change will also affect the other providers.~~ Closes #30854 Release Notes: - Ollama: Changed models to be sorted by name.
little-dude created
9c2b90f
collab: Return subscription period from `GET /billing/subscriptions` (#31987)
This PR updates the `GET /billing/subscriptions` endpoint to return the subscription period on them. Release Notes: - N/A
Marshall Bowers created
d108e5f
collab: Fix deserialization of create meter event response (#31982)
This PR fixes the deserialization of the create meter event response from the Stripe API. Release Notes: - N/A
Marshall Bowers created
2551bde
collab: Increase number of returned extensions to 1,000 (#31983)
This PR increases the number of returned extensions from the extension API to 1,000 (up from 500). We'll need a better solution at some point, but for now we can keep bumping this number. Closes https://github.com/zed-industries/zed/issues/31067. Release Notes: - N/A
Marshall Bowers created
e7de80c
ci: Improve Danger and ci.yml explicitness (#31979)
Allow colons after issue links and for them to in ul. Change ci references from [self-hosted, test] to more explicit [self-hosted, macOS] Release Notes: - N/A --------- Co-authored-by: Ben Kunkle <ben.kunkle@gmail.com> Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
Peter Tripp , Ben Kunkle , and Smit Barmase created
ae210ec
Fix aggressive indent in shell scripts (#31973)
Closes: https://github.com/zed-industries/zed/issues/31774 Release Notes: - N/A Co-authored-by: Ben Kunkle <ben.kunkle@gmail.com>
Peter Tripp and Ben Kunkle created
a9d99d8
docs: Improve docs for debugger (around breakpoints and doc structure) (#31962)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
3e6435e
Fix Python virtual environment detection (#31934)
# Fix Python Virtual Environment Detection in Zed ## Problem Zed was not properly detecting Python virtual environments when a project didn't contain a `pyrightconfig.json` file. This caused Pyright (the Python language server) to report `reportMissingImports` errors for packages installed in virtual environments, even though the virtual environment was correctly set up and worked fine in other editors. The issue was that while Zed's `PythonToolchainProvider` correctly detected virtual environments, this information wasn't being communicated to Pyright in a format it could understand. ## Root Cause The main issue was in how Zed communicated virtual environment configuration to Pyright through the Language Server Protocol (LSP). When Pyright requests workspace configuration, it expects virtual environment settings (`venvPath` and `venv`) at the root level of the configuration object - the same format used in `pyrightconfig.json` files. However, Zed was attempting to place these settings in various nested locations that Pyright wasn't checking. ## Solution The fix involves several coordinated changes to ensure Pyright receives virtual environment configuration in all the ways it might expect: ### 1. Enhanced Workspace Configuration (`workspace_configuration` method) - When a virtual environment is detected, Zed now sets `venvPath` and `venv` at the root level of the configuration object, matching the exact format of a `pyrightconfig.json` file - Uses relative path `"."` when the virtual environment is located in the workspace root - Also sets `python.pythonPath` and `python.defaultInterpreterPath` for compatibility with different Pyright versions ### 2. Environment Variables for All Language Server Binaries - Updated `check_if_user_installed`, `fetch_server_binary`, `check_if_version_installed`, and `cached_server_binary` methods to include shell environment variables - This ensures environment variables like `VIRTUAL_ENV` are available to Pyright, helping with automatic virtual environment detection ### 3. Initialization Options - Added minimal initialization options to enable Pyright's automatic path searching and import completion features - Sets `autoSearchPaths: true` and `useLibraryCodeForTypes: true` to improve Pyright's ability to find packages ## Key Changes The workspace configuration now properly formats virtual environment configuration: - Root level: `venvPath` and `venv` (matches pyrightconfig.json format) - Python section: `pythonPath` and `defaultInterpreterPath` for interpreter paths ## Impact - Users no longer need to create a `pyrightconfig.json` file for virtual environment detection - Python projects with virtual environments in standard locations (`.venv`, `venv`, etc.) will work out of the box - Import resolution for packages installed in virtual environments now works correctly - Maintains compatibility with manual `pyrightconfig.json` configuration for complex setups ## Testing The changes were tested with Python projects using virtual environments without `pyrightconfig.json` files. Pyright now correctly resolves imports from packages installed in the virtual environment, eliminating the `reportMissingImports` errors. ## Release Notes - Fixed Python virtual environment detection when no `pyrightconfig.json` is present - Pyright now correctly resolves imports from packages installed in virtual environments (`.venv`, `venv`, etc.) - Python projects with virtual environments no longer show false `reportMissingImports` errors - Improved Python development experience with automatic virtual environment configuration --------- Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Thiago Pacheco and Piotr Osiewicz created
9e75871
agent: Make the sound notification play only if Zed is in the background (#31975)
Users were giving feedback about the sound notification being annoying/unnecessary if Zed is in the foreground, which I agree! So, this PR changes it so that it only plays if that is not the case. Release Notes: - agent: Improved sound notification behavior by making it play only if Zed is in the background.
Danilo Leal created
707a4c7
Remove unused editor_model configuration option (#31492)
It seems that this configuration option is no longer used and can be removed. Release Notes: - Removed unused `agent.editor_model` setting
Ben Brandt created
854076f
agent: Lower "no thread found" logging level to debug (#31972)
This code path is not really an error, as it can happen due to normal, albeit uncommon, actions. Like, for example, this scenario: 1. Create a thread X in Zed instance A 2. Open Zed instance B 3. Delete the thread X in instance A 4. Close instance B. This will write non-existing thread id X to `agent-navigation-history.json` 5. Open Zed instance C. It won't be able to load the thread X. Another way to get into this state is by running Zed with LMDB and SQLite thread storages side-by-side. In any case, this is not severe enough for an error. Closes #ISSUE Release Notes: - N/A
Oleksiy Syvokon created
cf93124
Add thinking budget for Gemini custom models (#31251)
Closes #31243 As described in my issue, the [thinking budget](https://ai.google.dev/gemini-api/docs/thinking) gets automatically chosen by Gemini unless it is specifically set to something. In order to have fast responses (inline assistant) I prefer to set it to 0. Release Notes: - ai: Added `thinking` mode for custom Google models with configurable token budget --------- Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
90aca and Ben Brandt created
b74477d
Option to auto-close deleted files with no unsaved edits (#31920)
Closes #27982 Release Notes: - Added `close_on_file_delete` setting (off by default) to allow closing open files after they have been deleted on disk --------- Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Ben Brandt and Bennet Bo Fenner created
3077abf
google_ai: Parse thought parts in Gemini responses (#31925)
Fixes thinking Gemini models. Closes #31902 Release Notes: - Updated Google Gemini client to match the latest API
Fernando Freire created
07dab4e
multi_buffer: Merge adjacent matches into a single excerpt when separated by only one line (#31708)
Closes #31252 Release Notes: - Improved displaying of project search matches or diagnostics when the excerpts are adjacent. --------- Co-authored-by: Antonio Scandurra <me@as-cii.com>
Kiran_Peraka and Antonio Scandurra created
59686f1
language_models: Add images support for Ollama vision models (#31883)
Ollama supports vision to process input images. This PR adds support for same. I have tested this with gemma3:4b and have attached the screenshot of it working. <img width="435" alt="image" src="https://github.com/user-attachments/assets/5f17d742-0a37-4e6c-b4d8-05b750a0a158" /> Release Notes: - Add image support for [Ollama vision models](https://ollama.com/search?c=vision)
Umesh Yadav created
a60bea8
collab: Reconnect to channel notes (#31950)
Closes #31758 Release Notes: - Fixed channel notes not getting re-connected when a connection to Zed servers is restored. --------- Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
Piotr Osiewicz and Kirill Bulatov created
b820aa1
Add tool support for DeepSeek (#30223)
[deepseek function call api](https://api-docs.deepseek.com/guides/function_calling) has been released and it is same as openai. Release Notes: - Added tool calling support for Deepseek Models --------- Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
THELOSTSOUL and Bennet Bo Fenner created
55d91bc
debugger: Add tooltips to the new process modal (#31953)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
b798392
Expand tilde paths in edit prediction settings (#31235)
Release Notes: - edit_prediction: Handle `~` in paths in `disabled_globs` setting
clauses3 created
657c8b1
project_panel: Improve behavior for cut-pasting entries (#31931)
Previously, we would move entries each time they were pasted. Thus, if you were to cut some files and pasted them in folder `a` and then `b`, they would only occur in folder `b` and not in folder `a`. This is unintuitive - e.g. the same does not apply to text and does not happen in other editors. This PR improves this behavior - after the first paste of a cut clipboard, we change the clipboard to a copy clipboard, ensuring that for all folloing pastes, the entries are not moved again. In the above example, the files would then also be found in folder `a`. This is also reflected in the added test. Release Notes: - Ensured that cut project panel entries are cut-pasted only on the first use, and copy-pasted on all subsequent pastes.
Finn Evers created
2bb8aa2
go_to_line: Show position relative to current excerpt in a multi-buffer (#31947)
Closes #31515 This PR explicitly leaves the behavior of go to line unspecified with multi-buffer. Release Notes: - Fixed wrong line number being shown in the status bar when in multi-buffer.
Piotr Osiewicz created