Commit log

b4a0398 javascript/typescript/tsx: Highlight private properties (#31527)

Click to expand commit body
Closes #28411

Release Notes:

- Fixed the lack of highlighting for private properties in classes for
JavaScript/TypeScript/TSX files

Ben Kunkle created

19b6892 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

b5c2b25 agent: Keep horizontal scrollbar in edit file tool cards (#31510)

Click to expand commit body
Previously disabled both scrollbars, but horizontal scrolling is still
needed when
lines exceed the viewport width. Now editors can disable a single scroll
axis, not just both.

Release Notes:

- N/A

Ben Brandt created

8faeb34 Rename `assistant_settings` to `agent_settings` (#31513)

Click to expand commit body
This PR renames the `assistant_settings` crate to `agent_settings`, as
well a number of constructs within it.

Release Notes:

- N/A

Marshall Bowers created

61a40e2 evals: Allow threads explorer to search for JSON files recursively (#31509)

Click to expand commit body
It's just more convenient to call it from CLI this way.

+ minor fixes in evals

Release Notes:

- N/A

Oleksiy Syvokon created

239ffa4 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.

Cole Miller created

a4978ee Restore Checkpoint now appears if you press Cancel (#31310)

Click to expand commit body
## Before


https://github.com/user-attachments/assets/0da54afd-78bb-4fee-ab0c-f6ff96f89550

## After


https://github.com/user-attachments/assets/e840e642-714b-4ed7-99cf-a972f50361ba

Release Notes:

- In the Agent Panel, Restore Checkpoint now appears if you press Cancel
during generation.

Richard Feldman created

a8ca7e9 Fix Claude Sonnet 4 model ID (#31505)

Click to expand commit body
This PR is a follow-up to
https://github.com/zed-industries/zed/pull/31415 that fixes the model ID
for Claude Sonnet 4.

With the release of the Claude 4 models, the model version now appears
at the end.

Release Notes:

- N/A

Marshall Bowers created

ee6ce78 Remove once_cell dependency (#31493)

Click to expand commit body
removing once_cell dep imported from #31439

it should work just fine

Release Notes:

- N/A

shenjack created

3ff62ef 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

f8f36d0 docs: Improve agent's "get notified" section (#31496)

Click to expand commit body
Quick docs refinement as a follow-up to
https://github.com/zed-industries/zed/pull/31472.

Release Notes:

- N/A

Danilo Leal created

05763b2 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

7ec61ce agent: Indiciate files and folders in `list_directory` (#31448)

Click to expand commit body
Otherwise, the agent confuses directories with files in cases where dirs
are named like files (`TODO`, `task.js`, etc.)

Release Notes:

- N/A

Oleksiy Syvokon created

119beb2 Update default models to newer versions (#31415)

Click to expand commit body
Follow up to: https://github.com/zed-industries/zed/pull/31209
Changes default models across multiple providers:
- Zed.dev Default Models in settings: claude-3-7-sonnet-latest β†’
claude-4-sonnet-latest
- Bedrock Default Model: Claude 3.5 Sonnet v2 β†’ Claude Sonnet 4
- Google AI Default Fast Model: Gemini 1.5 Flash β†’ Gemini 2.0 Flash

Release Notes:

- N/A

Ben Brandt created

0d3fad7 Fix some completion docs render delays (#31486)

Click to expand commit body
Closes #31460

While this is now much better than it was, the documentation still
flickers when changing selection. Hoping to fix that, but it will be a
much more involved change. So leaving release notes as "N/A" for now, in
anticipation of the full fix.

Release Notes:

- N/A

Michael Sloan created

450a10f Revert to calling .update in eval fixture (#31483)

Click to expand commit body
Looks like I accidentally touched a line of code in an eval fixture in
#31479, despite intentionally trying to avoid that code. Thanks
@cole-miller!

Release Notes:

- N/A

Joseph T. Lyons created

c208532 Use read-only access methods for read-only entity operations (#31479)

Click to expand commit body
Another follow-up to #31254

Release Notes:

- N/A

Joseph T. Lyons created

4a577ff git: Fix hunk controls blocking scrolling (#31476)

Click to expand commit body
Thanks @mgsloan for introducing `stop_mouse_events_except_scroll` which
is exactly what we want here!

Release Notes:

- Fixed being unable to scroll editors when the cursor is positioned on
diff hunk controls.

Cole Miller created

03071a9 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`.

Cole Miller created

092be31 debugger: Add missing StepOut handler (#31463)

Click to expand commit body
Closes #31317

Release Notes:

- Debugger Beta: Fixed a bug that prevented keybindings for the
`StepOut` action from working.

Cole Miller created

62545b9 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

5e72c2a editor: Show hidden mouse cursor on window activation (#31475)

Click to expand commit body
Closes #31349

Release Notes:

- Fixed issue where hidden mouse cursor would stay hidden even after
switching windows.

Smit Barmase created

2a8242a editor: Add Python auto-indent test for same row bracket pair (#31473)

Click to expand commit body
We [recently](https://github.com/zed-industries/zed/pull/31260) added a
condition which fixes certain edge cases detecting indent ranges when a
bracket pair is on the same row for suggested indent languages. This PR
adds a test for that so we don't regress in the future. Ref:
https://github.com/zed-industries/zed/issues/31362


https://github.com/zed-industries/zed/blob/f9592c6b9273738808210c3a2ab7a366258c7f71/crates/language/src/buffer.rs#L2910

Release Notes:

- N/A

Smit Barmase created

d211f88 agent: Add sound notification when done generating (#31472)

Click to expand commit body
This PR adds the ability to hear a sound notification when the agent is
done generating and/or needs user input. This setting is turned off by
default and can be used together with the visual notification. The
specific sound I'm using here comes from the [Material Design 2 Sound
Library](https://m2.material.io/design/sound/sound-resources.html#).

Release Notes:

- agent: Added the ability to have a sound notification when the agent
is done generating and/or needs user input.

Danilo Leal created

fe0bcd1 Activate last item if item's number is greater than the last one's (#31471)

Click to expand commit body
Release Notes:

- N/A

Kirill Bulatov created

e844636 Highlight file finder entries according to their git status (#31469)

Click to expand commit body
Configure this with the
```json5
"file_finder": {
  "git_status": true
}
```
settings value.

Before:
<img width="864" alt="before"
src="https://github.com/user-attachments/assets/5943e30f-1105-445e-9398-ea6dd35877c8"
/>

After:
<img width="864" alt="image"
src="https://github.com/user-attachments/assets/56b2fad6-8cdc-4f28-b238-920745231b1f"
/>

After with search matches:
<img width="577" alt="image"
src="https://github.com/user-attachments/assets/8c414575-7daf-43a8-89c2-98137d52b7a0"
/>

Release Notes:

- Start highlighting file finder entries according to their git status

Kirill Bulatov created

24809c4 editor: Ensure minimap top offset is never `NaN` (#31466)

Click to expand commit body
(Late) Follow-up to
https://github.com/zed-industries/zed/pull/26893#discussion_r2073427393

The mentioned issue of needed zero-division for scrollbars is now fixed
via #30189.
However, whilst the linked PR fixed the issue for the layouting of the
scrollbar thumb, I sadly did not address the (somewhat rare) case of
`document_lines == visible_editor_lines` within the calculation of the
minimap top offset.

This PR adds coverage for that case and ensures that the
`minimap_top_offset` never ends up being `NaN`.

Release Notes:

- N/A

Finn Evers created

f8365c5 Move to splits more ergonomically (#31449)

Click to expand commit body
Part of https://github.com/zed-industries/zed/discussions/24889

Release Notes:

- Made `workspace::MoveItemToPaneInDirection` and
`workspace::MoveItemToPane` to create non-existing panes

Kirill Bulatov created

2c80492 language_tools: Increase available space for language server logs (#30742)

Click to expand commit body
This PR contains some small improvements for the language server log
editors. Due to the large gutter as well as the introduction of the
minimap, the horizontally available space was rather small. As these
editors soft wrap at the editor width, it resulted in the logs becoming
vertically larger and somewhat harder to read.

The improvement here is to disable all elements in the gutter that will
never appear or be used in the logs anyway. Furthermore, I opted to
disable the minimap altogether, since from my point of view it did not
contain any valuable information about the logs being shown.

First image is the current main, second is this branch. I put these
below each other so the difference is easier to spot.


![main](https://github.com/user-attachments/assets/b3796e5f-4fe3-48c8-95a4-d3b84c607963)

![PR](https://github.com/user-attachments/assets/bd8a4e6c-dbbb-4a9e-99aa-474fa073196f)


Release Notes:

- N/A

Finn Evers created

6840a4e Parse `./`/`a/`/`b/`-prefixed paths more leniently in the file finder (#31459)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/15081
Closes https://github.com/zed-industries/zed/issues/31064

Release Notes:

- Parse `./`/`a/`/`b/`-prefixed paths more leniently in the file finder

Kirill Bulatov created

5b320d6 Be more lenient when looking up gitignored files in file finder (#31457)

Click to expand commit body
The lookup was disabled due to concerns of being forced to traverse many
gitignored file entries. Since Zed does not index these eagerly, but
only contents of the directories that are parent to the gitignored file
entries, it might be not that bad β€” let's see how much improvement it
provides.

Closes https://github.com/zed-industries/zed/issues/31016

Release Notes:

- Improved file finder to include indexed gitignored files in its search
results

Kirill Bulatov created

534bb06 Use `read()` over `read_with()` to improve readability in simple cases (#31455)

Click to expand commit body
Follow up to: #31263 

Release Notes:

- N/A

Joseph T. Lyons created

5bafb2b Add holding opt/alt for fast scrolling (#31056)

Click to expand commit body
Fixes #14612

This was a feature I dearly missed from VSCode, so adding this helped me
migrate to Zed without disrupting my workflow. I found that `4.0` was a
nice goldilocks multiplier and felt close/the same as the speed in
VSCode.

Release Notes:

- Added faster scrolling in the editor while holding opt/alt

Alistair Smith created

ee415de 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

4acb473 Tolerate edits ending with `</edits>` instead of `</new_text>` (#31453)

Click to expand commit body
Release Notes:

- Improve reliability of the agent when a model outputs malformed edits.

Antonio Scandurra created

4567360 Allow LSP adapters to decide, which diagnostics to underline (#31450)

Click to expand commit body
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

Kirill Bulatov created

4c396bc theme: Add colors for minimap thumb and border (#30785)

Click to expand commit body
A user on Discord reported an issue where the minimap thumb was fully
opaque:

<img
src="https://github.com/user-attachments/assets/5049c6a3-f89a-4ceb-9d1b-ec06e7fe9151"
height="300">

This can happen because the scrollbar and its thumb might not
neccessarily be transparent at all.

Thus, this PR adds the`minimap.thumb.background` and
`minimap.thumb.border` colors to themes so theme authors can specify
custom colors for both here.
Furthermore, I ensured that the minimap thumb background fallback value
can never be entirely opaque. The values were arbitrarily chosen to
avoid the issue from occuring whilst keeping currently working setups
working. With the new properties added, authors (and users) should be
able to avoid running into this issue altogether so I would argue for
this special casing to be fine. However, open to change it should a
different approach be preferrred.

Release Notes:

- Added `minimap.thumb.background` and `minimap.thumb.border` to themes
to customize the thumb color and background of the minimap.
- Fixed an issue where the minimap thumb could be opaque if the theme
did not specify a color for the thumb.

Finn Evers created

8a24f9f agent: Refine naming for the panel `default_view` setting (#31446)

Click to expand commit body
Follow up to https://github.com/zed-industries/zed/pull/31353. Just
ensuring we're walking toward a more consistent use of the multiple
terms we have floating around in the AI realm. In this case, `thread` is
the term for the now default view, the one that has agentic features;
`text_thread` is the term for the original view, the one where it's just
text. The settings now reflect this. Also took advantage of the
opportunity to add some docs, too.

Release Notes:

- N/A

Danilo Leal created

f4b361f language: Select language based on longest matching path extension (#29716)

Click to expand commit body
Closes #8408  
Closes #10997

This is a reboot of [my original
PR](https://github.com/zed-industries/zed/pull/11697) from last year. I
believe that I've addressed all the comments raised in that original
review, but Zed has changed a lot in the past year, so I'm sure there
will be some new stuff to consider too.

- updates the language matching and lookup to consider not just "does
the suffix/glob match" but also "... and is it the longest such match"
- adds a new `LanguageCustomFileTypes` struct to pass user globs from
settings to the registry
- _minor/unrelated:_ updates a test for the JS extension that wasn't
actually testing what is intended to
- _minor/unrelated:_ removed 2 redundant path extensions from the JS
lang extension

**Languages that may use this**

- Laravel Blade templates use the `blade.php` compound extension
-
[apparently](https://github.com/zed-industries/zed/issues/10765#issuecomment-2091293304)
Angular uses `component.html`
  - see also https://github.com/zed-industries/extensions/issues/169
- _hypothetically_ someone could publish a "JS test" extension w/ custom
highlights and/or snippets; many JS tests use `test.js` or `spec.js`

**Verifying these changes**

I added a number of assertions for this new behavior, and I also
confirmed that the (recently patched) [Laravel Blade
extension](https://github.com/bajrangCoder/zed-laravel-blade) opens as
expected for `blade.php` files, whereas on `main` it does not.

cc @maxbrunsfeld (reviewed my original PR last year), @osiewicz and
@MrSubidubi (have recently been in this part of the code)

Release Notes:

- Added support for "compound" file extensions in language extensions,
such `blade.php` and `component.html`. Closes #8408 and #10997.

claytonrcarter created

649072d Add a live Rust style editor to inspector to edit a sequence of no-argument style modifiers (#31443)

Click to expand commit body
Editing JSON styles is not very helpful for bringing style changes back
to the actual code. This PR adds a buffer that pretends to be Rust,
applying any style attribute identifiers it finds. Also supports
completions with display of documentation. The effect of the currently
selected completion is previewed. Warning diagnostics appear on any
unrecognized identifier.


https://github.com/user-attachments/assets/af39ff0a-26a5-4835-a052-d8f642b2080c

Adds a `#[derive_inspector_reflection]` macro which allows these methods
to be enumerated and called by their name. The macro code changes were
95% generated by Zed Agent + Opus 4.

Release Notes:

* Added an element inspector for development. On debug builds,
`dev::ToggleInspector` will open a pane allowing inspecting of element
info and modifying styles.

Michael Sloan created

6253b95 agent: Fix creating files with Gemini (#31439)

Click to expand commit body
This change instructs models to wrap new file content in Markdown fences
and introduces a parser for this format. The reasons are:

1. This is the format we put a lot of effort into explaining in the
system prompt.
2. Gemini really prefers to do it.
3. It adds an option for a model to think before writing the content

The `eval_zode` pass rate for GEmini models goes from 0% to 100%. Other
models were already at 100%, this hasn't changed.


Release Notes:

- N/A

Oleksiy Syvokon created

bffde7c nix: Make zeditor symlink in package output (#31354)

Click to expand commit body
home-manager expects a `zeditor` binary to wrap (because the nixpkgs
derivation names the CLI `zeditor` instead of `zed`)

Release Notes:

- N/A

jvmncs created

7e87916 Fix VS Code settings file location on Linux (#31242)

Click to expand commit body
Refs #30117

Release Notes:

- N/A

ADmad created

29f0762 Add `block_comment` to JS, TSX, and TS (#31400)

Click to expand commit body
This is the first step of ["Solution proposal for folding multiline
comments with no
indentation"](https://github.com/zed-industries/zed/discussions/31395):

> 1. Add block_comment in the config.toml for the languages javascript,
typescript, tsx. These are simple languages for this feature, and I am
already familiar with them.

The next step will be:

> 2. Modify the function `crease_for_buffer_row` in `DisplaySnapshot` to
handle multiline comments. `editor::fold` and `editor::fold_all` will
handle multiline comments after this change. To my knowledge,
`editor::unfold`, `editor::unfold_all`, and the **unfold** indicator in
the gutter will already work after folding, but there will be no
**fold** indicator.

Release Notes:

- N/A

Vinicius Akira created

10af3c7 debugger: Fix misleading error logs (#31293)

Click to expand commit body
Release Notes:

- N/A

Cole Miller created

c0aa8f6 zlog: Replace usages of `env_logger` in tests with `zlog` (#31436)

Click to expand commit body
Also fixes:
https://github.com/zed-industries/zed/pull/31400#issuecomment-2908165249

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Ben Kunkle created

0c27aae docs: Bedrock Configuration docs (#31043)

Click to expand commit body
Release Notes:

- Added documentation for Amazon Bedrock

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

Shardul Vaidya and Danilo Leal created

8e5d50b agent: Add a setting choose the default view (#31353)

Click to expand commit body
Related discussions #30240 #30596

Release Notes:

- Added an option on the settings file to choose either the `agent`
panel or the `thread` panel as the default assistant panel when you
first open it. On `settings.json`:
```json
{
  "agent": {
    "default_view": "thread", // default is agent
    }
}
```

Alvaro Parker created

625bf09 editor: Inline Code Actions Indicator (#31432)

Click to expand commit body
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

5a0a8ce extension: Update to wasm32-wasip2 target (#30953)

Click to expand commit body
Cleans things up now that wasm32-wasip2 is a supported target.

Before we merge, I will need to test against the current extensions to
make sure this is fine.

However, since our wit world isn't using any wasi package imports, this
shouldn't be a breaking change.

Release Notes:

- N/A

Ben Brandt created