f3896a2
Bump Tree-sitter to 0.25.5 for YAML-editing crash fix (#31603)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/31380
See https://github.com/tree-sitter/tree-sitter/pull/4472 for the fix
Release Notes:
- Fixed a crash that could occur when editing YAML files.
1b8ed57
Fix editor rendering slowness with large folds (#31569)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/31565
* Looking up settings on every row was very slow in the case of large
folds, especially if there was an `.editorconfig` file with numerous
glob patterns
* Checking whether each indent guide was within a fold was very slow,
when a fold spanned many indent guides.
Release Notes:
- Fixed slowness that could happen when editing in the presence of large
folds.
Max Brunsfeld
created
22342ef
Pass up intent with completion requests (#31710)
Click to expand commit body
This PR adds a new `intent` field to completion requests to assist in
categorizing them correctly.
Release Notes:
- N/A
---------
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
6582192
Fix lag when interacting with `MarkdownElement` (#31585)
Click to expand commit body
Previously, we forgot to associate the `Markdown` entity to
`MarkdownElement` during `prepaint`. This caused calls to
`Context<Markdown>::notify` to not invalidate the view cache, which
meant we would have to wait for some other invalidation before seeing
the results of that initial notify.
Release Notes:
- Improved responsiveness of mouse interactions with the agent panel.
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Follow up to https://github.com/zed-industries/zed/pull/30140 and
https://github.com/zed-industries/zed/pull/31236
This PR introduces an inline code action indicator that shows up at the
start of a buffer line when there's enough space. If space is tight, it
adjusts to lines above or below instead. It also adjusts when cursor is
near indicator.
The indicator won't appear if there's no space within about 8 rows in
either direction, and it also stays hidden for folded ranges. It also
won't show up in case there is not space in multi buffer excerpt. These
cases account for very little because practically all languages do have
indents.
https://github.com/user-attachments/assets/1363ee8a-3178-4665-89a7-c86c733f2885
This PR also sets the existing `toolbar.code_actions` setting to `false`
in favor of this.
Release Notes:
- Added code action indicator which shows up inline at the start of the
row. This can be disabled by setting `inline_code_actions` to `false`.
Smit Barmase
created
c84a470
debugger beta: Autoscroll to recently saved debug scenario when saving a scenario (#31528)
Click to expand commit body
I added a test to this too as one of my first steps of improving
`NewSessionModal`'s test coverage.
Release Notes:
- debugger beta: Select saved debug config when opening debug.json from
`NewSessionModal`
Anthony Eid
created
f945cbb
debugger beta: Fix gdb/delve JSON data conversion from New Session Modal (#31501)
Click to expand commit body
test that check's that each conversion works properly based on the
adapter's config validation function.
Co-authored-by: Zed AI \<ai@zed.dev\>
Release Notes:
- debugger beta: Fix bug where Go/GDB configuration's wouldn't work from
NewSessionModal
Anthony Eid
created
5915162
debugger: Don't try to open `<node_internals>` paths (#31524)
Click to expand commit body
The JS DAP returns these, and they don't point to anything real on the
filesystem.
Release Notes:
- N/A
Cole Miller
created
f4b2d69
debugger: Improve keyboard navigability of variable list (#31462)
Click to expand commit body
This PR adds actions for copying variable names and values and editing
variable values from the variable list. Previously these were only
accessible using the mouse. It also fills in keybindings for expanding
and collapsing entries on Linux that we already had on macOS.
Release Notes:
- Debugger Beta: Added the `variable_list::EditVariable`,
`variable_list::CopyVariableName`, and
`variable_list::CopyVariableValue` actions and default keybindings.
81ed86b
Keep file permissions when extracting zip archives on Unix (#31304)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/31080
Stop doing
```rs
#[cfg(not(windows))]
{
file.set_permissions(<fs::Permissions as fs::unix::PermissionsExt>::from_mode(
0o755,
))
.await?;
}
```
after extracting zip archives on Unix, and use an API that provides the
file permissions data for each archive entry.
Release Notes:
- N/A
Kirill Bulatov
created
a9e1515
debugger beta: Update Javascript's DAP to allow passing in url instead of program (#31494)
Click to expand commit body
Closes #31375
Release Notes:
- debugger beta: Allow passing in URL instead of program for Javascript
launch request
Anthony Eid
created
7fbd1ca
debugger beta: Fix install detection for Debugpy in venv (#31339)
Click to expand commit body
Based on my report on discord when chatting with Anthony and Remco:
https://discord.com/channels/869392257814519848/1375129714645012530
Root Cause: Zed was incorrectly trying to execute a directory path
instead of properly invoking the debugpy module when debugpy was
installed via package managers (pip, conda, etc.) rather than downloaded
from GitHub releases.
Solution:
- Automatic Detection: Zed now automatically detects whether debugpy is
installed via pip/conda or downloaded from GitHub
- Correct Invocation: For pip-installed debugpy, Zed now uses python -m
debugpy.adapter instead of trying to execute file paths
- Added a `installed_in_venv` flag to differentiate the setup properly
- Backward Compatibility: GitHub-downloaded debugpy releases continue to
work as before
- Enhanced Logging: Added logging to show which debugpy installation
method is being used (I had to verify it somehow)
I verified with the following setups (can be confirmed with the debug
logs):
- `conda` with installed debugpy, went to installed instance
- `uv` with installed debugpy, went to installed instance
- `uv` without installed debugpy, went to github releases
- Homebrew global python install, went to github releases
Release Notes:
- Fix issue where debugpy from different environments won't load as
intended
Raphael Lüthy
created
78fe611
debugger: Add an action to rerun the last session (#31442)
Click to expand commit body
This works the same as selecting the first history match in the new
session modal.
Release Notes:
- Debugger Beta: Added the `debugger: rerun last session` action, bound
by default to `alt-f4`.
Closes #31317
Release Notes:
- Debugger Beta: Fixed a bug that prevented keybindings for the
`StepOut` action from working.
Cole Miller
created
df7284b
debugger: Fix wrong port used for SSH debugging (#31474)
Click to expand commit body
We were trying to connect on the user's machine to the port number used
by the debugger on the remote machine, instead of the randomly-assigned
local available port.
Release Notes:
- Debugger Beta: Fixed a bug that caused connecting to a debug adapter
over SSH to hang.
Cole Miller
created
5241d25
language: Improve auto-indentation when using round brackets in Python (#31260)
Click to expand commit body
Follow-up to #29625 and #30902
This PR reintroduces auto-intents for brackets in Python and fixes some
cases where an indentation would be triggered if it should not. For
example, upon typing
```python
a = []
```
and inserting a newline after, the next line would be indented although
it shoud not be.
Bracket auto-indentation was tested prior to #29625 but removed there
and the test updated accordingly. #30902 reintroduced this for all
brackets but `()`. I reintroduced this here, reverted the changes to the
test so that indents also happen after typing `()`. This is frequently
used for tuples and multiline statements in Python.
Release Notes:
- Improved auto-indentation when using round brackets in Python.
Finn Evers
created
d746da9
debugger: Add keyboard navigation for breakpoint list (#31221)
Click to expand commit body
Release Notes:
- Debugger Beta: made it possible to navigate the breakpoint list using
menu keybindings.
Cole Miller
created
ee6a93f
Allow LSP adapters to decide, which diagnostics to underline (cherry-pick #31450) (#31452)
Click to expand commit body
Cherry-picked Allow LSP adapters to decide, which diagnostics to
underline (#31450)
Closes
https://github.com/zed-industries/zed/pull/31355#issuecomment-2910439798
<img width="1728" alt="image"
src="https://github.com/user-attachments/assets/2eaa8e9b-00bc-4e99-ac09-fceb2d932e41"
/>
Release Notes:
- N/A
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
gcp-cherry-pick-bot[bot]
and
Kirill Bulatov
created
f4767e3
Remove the ability to book onboarding (cherry-pick #31404) (#31426)
Click to expand commit body
Cherry-picked Remove the ability to book onboarding (#31404)
Closes: https://github.com/zed-industries/zed/issues/31394
Onboarding has been valuable, but we're moving into a new phase as our
user base grows, and our ability to chat with everyone who books a call
will not scale linearly. For now, we are removing the option to book a
call from the application.
Release Notes:
- N/A
Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>
gcp-cherry-pick-bot[bot]
and
Joseph T. Lyons
created
6259ba0
debugger beta: Fix regression where we sent launch args twice to any dap (#31325)
Click to expand commit body
This regression happens because our tests weren't properly catching this
edge case anymore. I updated the tests to only send the raw config to
the Fake Adapter Client.
Release Notes:
- debugger beta: Fix bug where launch args were sent twice
Anthony Eid
created
033e104
debugger: Fix adapter names in initial-debug-tasks.json (#31283)
Click to expand commit body
Closes #31134
Release Notes:
- N/A
---------
Co-authored-by: Piotr <piotr@zed.dev>
Cole Miller
and
Piotr
created
34022b7
debugger beta: Auto download Delve (Go's DAP) & fix grammar errors in docs (#31273)
Click to expand commit body
Release Notes:
- debugger beta: Go's debug adapter will now automatically download if
not found on user's PATH
Co-authored-by: Remco Smits <djsmits12@gmail.com>
Anthony Eid
and
Remco Smits
created
682d265
Do not underline unnecessary diagnostics (cherry-pick #31355) (#31357)
Click to expand commit body
Cherry-picked Do not underline unnecessary diagnostics (#31355)
Closes
https://github.com/zed-industries/zed/pull/31229#issuecomment-2906946881
Follow
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnosticTag
> Clients are allowed to render diagnostics with this tag faded out
instead of having an error squiggle.
and do not underline any unnecessary diagnostic at all.
Release Notes:
- Fixed clangd's inactive regions diagnostics excessive highlights
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
gcp-cherry-pick-bot[bot]
and
Kirill Bulatov
created
Closes issue #31120.
https://github.com/user-attachments/assets/a4b3c86d-7358-49ac-b8d9-e9af50daf671
Release Notes:
- Added a code actions icon to the toolbar. This icon can be disabled by
setting `toolbar.code_actions` to `false`.
If gdb doesn't send a thread name we display the thread's process id in
the thread drop down menu instead now.
Co-authored-by: Remco Smits \<djsmits12@gmail.com\>
Release Notes:
- debugger beta: Handle bug where DAPs don't send thread names
Anthony Eid
created
8eed13c
Ensure client reconnects after erroring during the handshake (#31278)
Click to expand commit body
Release Notes:
- Fixed a bug that prevented Zed from reconnecting after erroring during
the initial handshake with the server.
Antonio Scandurra
created
12c1ce5
editor: Fix issue where newline on `*` as prefix adds comment delimiter (#31271)
Click to expand commit body
Release Notes:
- Fixed issue where pressing Enter on a line starting with * incorrectly
added comment delimiter.
---------
Co-authored-by: Piotr Osiewicz <peterosiewicz@gmail.com>
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
smit
,
Piotr Osiewicz
, and
Piotr Osiewicz
created
918f44a
debugger: Change placeholder text for Custom/Run text input (#31264)
- Make remembering focus work with `ActivatePaneDown` as well
- Tone down the console's focus-in behavior so clicking doesn't
misbehave
Release Notes:
- N/A
Cole Miller
created
1e6412c
debugger: Detect debugpy from virtual env (#31211)
Click to expand commit body
Release Notes:
- Debugger Beta: Detect debugpy from virtual env
Remco Smits
created
2666272
Change default diagnostics_max_severity to 'hint' (cherry-pick #31229) (#31245)
Click to expand commit body
Cherry-picked Change default diagnostics_max_severity to 'hint' (#31229)
Closes https://github.com/blopker/codebook/issues/79
Recently, the setting `diagnostics_max_severity` was changed from `null`
to `warning`in this PR: https://github.com/zed-industries/zed/pull/30316
This change has caused the various spell checking extensions to not work
as expected by default, most of which use the `hint` diagnostic. This
goes against user expectations when installing one of these extensions.
Without `hint` as the default, extension authors will either need to
change the diagnostic levels, or instruct users to add
`diagnostics_max_severity` to their settings as an additional step,
neither of which is a great user experience.
This PR sets the default `hint`, which is closer to the original
behavior before the aforementioned PR.
Release Notes:
- Changed `diagnostics_max_severity` to `hint` instead of `warning` by
default
---------
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Co-authored-by: Bo Lopker <blopker@users.noreply.github.com>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
gcp-cherry-pick-bot[bot]
,
Bo Lopker
, and
Kirill Bulatov
created
Release Notes:
- AWS Bedrock: Added support for Claude 4.
Shardul Vaidya
created
9e3b485
agent: Remove last turn after a refusal (#31220)
Click to expand commit body
This is a follow-up to https://github.com/zed-industries/zed/pull/31217
that removes the last turn after we get a `refusal` stop reason, as
advised by the Anthropic docs.
Meant to include it in that PR, but accidentally merged it before
pushing these changes 🤦🏻♂️.
Release Notes:
- N/A
Marshall Bowers
created
5c68f10
Handle new `refusal` stop reason from Claude 4 models (#31217)
Click to expand commit body
This PR adds support for handling the new [`refusal` stop
reason](https://docs.anthropic.com/en/docs/test-and-evaluate/strengthen-guardrails/handle-streaming-refusals)
from Claude 4 models.
<img width="409" alt="Screenshot 2025-05-22 at 4 31 56 PM"
src="https://github.com/user-attachments/assets/707b04f5-5a52-4a19-95d9-cbd2be2dd86f"
/>
Release Notes:
- Added handling for `"stop_reason": "refusal"` from Claude 4 models.
Marshall Bowers
created
803e8ce
agent: Improve Gemini support in the edit_file tool (#31116)
Click to expand commit body
This change improves `eval_extract_handle_command_output` results for
all models:
Model | Pass rate before | Pass rate after
----------------------------|------------------|----------------
claude-3.7-sonnet | 0.96 | 0.98
gemini-2.5-pro | 0.35 | 0.86
gpt-4.1 | 0.81 | 1.00
Part of this improvement comes from more robust evaluation, which now
accepts multiple possible outcomes. Another part is from the prompt
adaptation: addressing common Gemini failure modes, adding a few-shot
example, and, in the final commit, auto-rewriting instructions for
clarity and conciseness.
This change still needs validation from larger end-to-end evals.
Release Notes:
- N/A
Oleksiy Syvokon
created
ed31f80
anthropic: Fix Claude 4 model display names to match official order (#31218)
Click to expand commit body
Release Notes:
- N/A
Umesh Yadav
created
7c9e1a3
debugger: Fix environment variables not being substituted in debug tasks (#31198)
Click to expand commit body
Release Notes:
- Debugger Beta: Fixed a bug where environment variables were not
substituted in debug tasks in some cases.
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Remco Smits <djsmits12@gmail.com>
Cole Miller
,
Anthony Eid
, and
Remco Smits
created
2eebf7d
language_models: Update default/recommended Anthropic models to Claude Sonnet 4 (#31209)
Click to expand commit body
This PR updates the default/recommended models for the Anthropic and Zed
providers to be Claude Sonnet 4.
Release Notes:
- Updated default/recommended Anthropic models to Claude Sonnet 4.
Marshall Bowers
created
2b58f16
language_model: Allow Max Mode for Claude 4 models (#31207)
Click to expand commit body
This PR adds the Claude 4 models to the list of models that support Max
Mode.
Release Notes:
- Added Max Mode support for Claude 4 models.
Marshall Bowers
created
07e4125
mistral: Add DevstralSmallLatest model to Mistral and Ollama (#31099)
Click to expand commit body
Mistral just released a sota coding model:
https://mistral.ai/news/devstral
This PR adds support for it in both ollama and mistral
Release Notes:
- Add DevstralSmallLatest model to Mistral and Ollama
Umesh Yadav
created
4f53977
anthropic: Add support for Claude 4 (#31203)
Click to expand commit body
This PR adds support for [Claude
4](https://www.anthropic.com/news/claude-4).
Release Notes:
- Added support for Claude Opus 4 and Claude Sonnet 4.
---------
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Marshall Bowers
,
Antonio Scandurra
, and
Richard Feldman
created
38f8e5f
debugger beta: Move path resolution to resolve scenario instead of just in new session modal (#31185)
Click to expand commit body
This move was done so debug configs could use path resolution, and
saving a configuration from the new session modal wouldn't resolve paths
beforehand.
I also added an integration test to make sure path resolution happens
from an arbitrary config. The test was placed under the new session
modal directory because it has to do with starting a session, and that's
what the new session modal typically does, even if it's implicitly used
in the test.
In the future, I plan to add more tests to the new session modal too.
Release Notes:
- debugger beta: Allow configs from debug.json to resolve paths
Anthony Eid
created
c5a27c8
editor: Fix block comment incorrectly continues to next line in some cases (#31204)
Click to expand commit body
Closes #31138
Fix edge case where adding newline if there is text afterwards end
delimiter of multiline comment, would continue the comment prefix. This
is fixed by checking for end delimiter on whole line instead of just
assuming it would always be at end.
- [x] Tests
Release Notes:
- Fixed the issue where in some cases the block comment continues to the
next line even though the comment block is already closed.
smit
created
9a4e44b
debugger: Always focus the active session whenever it is stopped (#31182)
Click to expand commit body
Closes #ISSUE
Release Notes:
- debugger: Fixed child debug sessions taking precedence over the
parents when spawned.
Piotr Osiewicz
created
5f82e2c
debugger: Use integrated terminal for Python (#31190)
Click to expand commit body
Closes #ISSUE
Release Notes:
- debugger: Use integrated terminal for Python, allowing one to interact
with standard input/output when debugging Python projects.