ab96155
buffer_search: Fix replace buttons not working if search bar is not focused (#43569)
Click to expand commit body
Update the way that both
`search::buffer_search::BufferSearchBar.replace_next` and
`search::buffer_search::BufferSearchBar.replace_all` are registered as
listeners, so that we don't require the replacement editor to be focused
in order for these listeners to be active, only requiring the
replacement mode to be active in the buffer search bar.
This means that, even if the user is focused on the buffer editor, if
the "Replace Next Match" or "Replace All Matches" buttons are clicked,
the replacement will be performed.
Closes #42471
Release Notes:
- Fixed issue with buffer search bar where the replacement buttons
("Replace Next Match" & "Replace All Matches") wouldn't work if search
bar was not focused
Fixes ZED-3P9
We only clamped the end which for a completely wrong input could cause
us to construct a reversed range which will end up underflowing later
on.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Zeta evals now include a character n-gram metric adapted for multi-edit diffs (“delta chrF”). It works as follows:
1. Reconstruct the original, golden (expected), and actual texts from unified diffs.
- "original": the text before any edits
- "golden": the text after applying the expected edits
- "actual": the text after applying the actual edits
2. Compute n-gram count deltas between original→golden and original→actual.
- n-grams are computed as in chrF (max n=6, whitespace ignored).
3. Compare these deltas to assess how well the actual edits match the expected edits.
- As in standard chrF, classify n-grams as true positives, false positives, and false negatives, and report the F-beta score with beta=2.
Release Notes:
- N/A
Oleksiy Syvokon
created
91400e7
Do not color html tags and other "long" "bracket pairs" (#43644)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/43621
Follow-up of https://github.com/zed-industries/zed/pull/43172
Release Notes:
- (Preview only) Fixed html tags incorrectly colorized
Kirill Bulatov
created
82b7682
remote: Do not include prerelease and build meta in asset queries (#43611)
Click to expand commit body
Closes #43580
Release Notes:
- (Preview only) Fixed failures to fetch remoting server (needed to run
remoting).
This extends the extension CI workflow to create a tag once the version
is bumped on main.
Release Notes:
- N/A
Finn Evers
created
54309f4
Account for greedy tree-sitter bracket matches (#43607)
Click to expand commit body
Current approach is to colorize brackets based on their depth, which was
broken for markdown:
<img width="388" height="50" alt="image"
src="https://github.com/user-attachments/assets/bd8b6c2f-5a26-4d6b-a301-88675bf05920"
/>
Markdown grammar, for bracket queries
https://github.com/zed-industries/zed/blob/00e93bfa113a3daed6e4a97a7244ad04d58453ee/crates/languages/src/markdown/brackets.scm#L1-L8
and markdown document `[LLM-powered features](./ai/overview.md), [bring
and configure your own API
keys](./ai/llm-providers.md#use-your-own-keys)`, matches first bracket
(offset 0) with two different ones:
* `[LLM-powered features]`
* `[LLM-powered features](./ai/overview.md), [bring and configure your
own API keys]`
which mix and add different color markers.
Now, in case multiple pairs exist for the same first bracket, Zed will
only colorize the shortest one:
<img width="373" height="33" alt="image"
src="https://github.com/user-attachments/assets/04b3f7af-8927-4a8b-8f52-de8b5bb063ac"
/>
Release Notes:
- Fixed bracket colorization mixing colors in markdown files
Release Notes:
- Fixed a small issue where bracket colors would not be immediately
updated if `experimental_theme_overrides.accents` was changed.
Finn Evers
created
c366627
auto-update: Fix auto-update loop with non-nightly channels (#43595)
Click to expand commit body
There are 3 factors:
1. The Preview channel endpoint does not propagate versions with build
identifier (which we oh-so-conveniently store in pre-release field of
semver).
2. Preview build, once fetched, sees it's version *with* build
identifier (as that's baked into the binary).
3. Auto update logic treats versions with pre-release version as less
than versions without pre-release version.
This in turn makes any Preview client see itself as versioned like
0.214.4-123-asdf1234455311, whereas the latest version on the endpoint
is 0.214.4. Thus, the endpoint version is always more recent than the
client version, causing an update loop.
The fix is to ignore build identifier when comparing versions of
non-nightly channels. This should still let us introduce changes to
auto-update behavior in minor releases in the future.
Closes #43584
Release Notes:
- (Preview only): Fixed an update loop with latest Preview update.
Piotr Osiewicz
created
ae649c6
Make key repeat rate on Wayland more precise (2) (#43589)
Click to expand commit body
CLOSES #39042
This is a reopening of #34985+.
_Original descrioption_:
In Wayland, the client implement key repeat themself. In Zed this is
ultimately handled by the gpui crate by inserting a timer source into
the event loop which repeat itself if the key is still held down [1].
But it seems the processing of the repeated key event happen
synchronously inside the timer source handler, meaning the effective
rate become slightly lower (since the repeated timer is scheduled using
the 1/rate as delay).
I measured the event processing time on my laptop and it's typically
around 3ms, but sometimes spiking at 10ms. At low key repeat rates this
is probably not _very_ noticeable. I see the default in Zed is set to a
(measly) 16/s, but I assume most systems will use something closer to
25, which is a 40ms delay. So ~3ms is around 7.5% of the delay. At
higher rate the discrepancy become worse of course.
I can visible notice the spikes, and doing some crude stopwatch
measurements using gedit as a reference I can reproduce around 5-10%
slower rates in Zed.
IMO this is significant enough to warrant improving, especially since
some people can get quite used the repeat rate and might feel something
being "off" in Zed.
~~The suggested fix simply subtract the processing time from the next
delay timer.~~
[1] https://github.com/olejorgenb/zed/blob/32df726f3b7fa83e7399f6629c59e0a3f3fff125/crates/gpui/src/platform/linux/wayland/client.rs#L1355
Release Notes:
- Improved Wayland (Linux) key repeat rate precision
Adds a `trigger` field to the zeta1/zeta2 prediction requests so that we
can distinguish between editor, diagnostic, and zeta-cli requests.
Release Notes:
- N/A
Many prediction requests end up being rejected early without ever being
set as the current prediction. Before this change, those cases weren’t
reported as rejections because the `request_prediction_with_*` functions
simply returned `Ok(None)`.
With this update, whenever we get a successful response from the
provider, we will return at least the `id`, allowing it to be properly
reported. The request now also includes a “reject reason,” since the
different variants carry distinct implications for prediction quality.
All of these scenarios are now covered by tests. While adding them, I
also found and fixed a bug where some cancelled predictions were
incorrectly being set as the current one.
Release Notes:
- N/A
---------
Co-authored-by: MrSubidubi <dev@bahn.sh>
Agus Zubiaga
and
MrSubidubi
created
61a414d
Fix language server renaming when parent directory does not exist (#43499)
Click to expand commit body
Update the `fs::RenameOptions` used by
`project::lsp_store::LocalLspStore.deserialize_workspace_edit` in order
to always set `create_parents` to `true`. Doing this ensures that we'll
always create the folders for the new file path provided by the language
server instead of failing to handle the request in case the parent
- Introduce `create_parents` field to `fs::RenameOptions`
- Update `fs::RealFs.rename` to ensure that the `create_parents` option
is respected
Closes #41820
Release Notes:
- Fixed a bug where using language server's file renaming actions could
fail if the parent directory of the new file did not exist
Dino
created
233b976
Add WSL Linux choice and settings.json prompt for GitHub issue template (#43479)
Miguel Raz Guzmán Macedo
and
Kunall Banerjee
created
6b92c1a
workspace: Fix broken main build after #43518 (#43570)
Click to expand commit body
*cough* merge queue *cough*
Release Notes:
- N/A
Piotr Osiewicz
created
1a23115
gpui: Unify `track_scroll` method to receive a reference type (#43518)
Click to expand commit body
Release Notes:
- N/A
This PR to change the `track_scroll` method to receive a reference type
like the
[Div#track_scroll](https://docs.rs/gpui/latest/gpui/trait.StatefulInteractiveElement.html#method.track_scroll),
[Div#track_focus](https://docs.rs/gpui/latest/gpui/trait.InteractiveElement.html#method.track_focus).
```diff
- .track_scroll(self.scroll_handle.clone())
+ .track_scroll(&self.scroll_handle)
- .vertical_scrollbar_for(self.scroll_handle.clone(), window, cx)
+ .vertical_scrollbar_for(&self.scroll_handle, window, cx)
```
https://github.com/zed-industries/zed/blob/56a2f9cfcf0c6a3c38f596b58002953763cd890f/crates/gpui/src/elements/div.rs#L1088-L1093
https://github.com/zed-industries/zed/blob/56a2f9cfcf0c6a3c38f596b58002953763cd890f/crates/gpui/src/elements/div.rs#L613-L620
Jason Lee
created
757c043
Fix git features not working when a Windows host collaborates with a unix guest (#43515)
Click to expand commit body
We were using `std::path::Path::strip_prefix` to determine which
repository an absolute path belongs to, which doesn't work when the
paths are Windows-style but the code is running on unix. Replace it with
a platform-agnostic implementation of `strip_prefix`.
Release Notes:
- Fixed git features not working when a Windows host collaborates with a
unix guest
Cole Miller
created
57e1bb8
collab: Add `zed-zippy[bot]` to the `GET /contributor` endpoint (#43568)
Click to expand commit body
This PR adds the `zed-zippy[bot]` user to the `GET /contributor`
endpoint so that it passes the CLA check.
Release Notes:
- N/A
Marshall Bowers
created
5403e74
Add callable workflow to bump the version of an extension (#43566)
Click to expand commit body
This adds an intial workflow file that can be pulled in to create a bump
commit for an extension version in an extension repository.
Release Notes:
- N/A
Finn Evers
created
0713ddc
editor: Fix vertical scroll margin not accounting for file header height (#43521)
Click to expand commit body
Closes #43178
Release Notes:
- Fixed vertical scroll margin not accounting for file header height
Here's the before/after:
With `{ "vertical_scroll_margin": 0 }` in `~/.config/zed/settings.json`
https://github.com/user-attachments/assets/418c6d7f-de0f-4da6-a038-69927b1b8b88
8aa5361
agent_ui: Add support for deleting thread history (#43370)
Click to expand commit body
This PR adds support for deleting your entire thread history. This is
inspired by a Zed user from the meetup in Amsterdam, he was missing this
feature.
**Demo**
https://github.com/user-attachments/assets/5a195007-1094-4ec6-902a-1b83db5ec508
Release Notes:
- AI: Add support for deleting your entire thread history
---------
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Remco Smits
and
Danilo Leal
created
6a311ca
Detail how to add symbols to samply's output (#43472)
Click to expand commit body
Release Notes:
- N/A
David Kleingeld
created
51e97d3
languages: Recognize .clangd as YAML (#43557)
Click to expand commit body
Follow-up to: https://github.com/zed-industries/zed/pull/43469
Thanks @WeetHet for [the idea]([WeetHet](https://github.com/WeetHet)).
Release Notes:
- Added support for identifying. .clangd files as YAML by default
Peter Tripp
created
c36b12f
settings_ui: Pick a more reasonable minimum window size (#43556)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/41903
Release Notes:
- Fixed settings ui being forced larger than small screens
Lukas Wirth
created
7c724c0
editor: Do not show scroll thumb if page fits (#43548)
Click to expand commit body
Follow-up to https://github.com/zed-industries/zed/pull/39367
Release Notes:
- Fixed a small issue where a scrollbar would sometimes show in the
editor although the content fix exactly on screen.
Finn Evers
created
1e6a05d
askpass: Quote askpass script in askpass helper command (#43542)
Click to expand commit body
Closes #40276
Release Notes:
- Fixed askpass execution failing on windows sometimes
Lukas Wirth
created
b9af664
gpui: Return `None` for non-existing credentials in `read_credentials` on windows (#43540)
c2cb76b
rope: Turn `ChunkSlice::slice` panics into error logs (#43538)
Click to expand commit body
While logically not really correct, its better than tearing down the
application until we figure out the root cause here
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Lukas Wirth
created
684a58f
Implement vertical scrolling for extended keymap load error information (#42542)
Click to expand commit body
This PR fix an issue where, if an error occurs while loading the keymap
file during application startup, an excessively long error message would
be truncated and not fully displayed.
Before:
<img width="1567" height="1056" alt="before"
src="https://github.com/user-attachments/assets/ab80c204-b642-4e8f-aaf5-eae070ab01a2"
/>
After:
<img width="1567" height="1056" alt="image"
src="https://github.com/user-attachments/assets/1b2ff2ce-3796-41d5-b145-dc7d69f04f11"
/>
Release Notes:
- N/A
ihavecoke
created
9150346
outline_panel: Fix the panel frequent flickering during search (#43530)
Click to expand commit body
The outline panel flickers when searching or when the file content
changes. This happens because an empty UI appears during the search
process, but it only lasts for a few milliseconds, so we can safely
ignore it.
## Before
https://github.com/user-attachments/assets/9b409827-75ee-4a45-864a-58f0ca43191f
## After
https://github.com/user-attachments/assets/b6d48143-1f1a-4811-8754-0a679428eec2
Release Notes:
- N/A
Floyd Wang
created
425d4c7
git: Use correct file mode when staging (#41900)
Click to expand commit body
Closes #28667
Release Notes:
- Fixed git not preserving file mode when committing. Now if an input file is executable it will be preserved when committed with Zed.
---------
Signed-off-by: 11happy <soni5happy@gmail.com>
Signed-off-by: 11happy <bhuminjaysoni@gmail.com>
Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Bhuminjay Soni
and
Jakub Konka
created
00e93bf
shell: Correctly identifiy `powershell` shells on windows (#43526)
Click to expand commit body
Release Notes:
- Fixed zed only finding pwsh but not powershell on windows
Lukas Wirth
created
9d8b507
zeta: Avoid logging an error for not having SWEEP_AI_TOKEN (#43504)
Click to expand commit body
Closes #43503
Release Notes:
- Fixes ERROR No SWEEP_AI_TOKEN environment variable set
Co-authored-by: oscarvarto <oscarvarto@users.noreply.github.com>
Oscar Vargas Torres
and
oscarvarto
created
3072133
Improve bash detection on Windows (#43455)
Click to expand commit body
I have git installed via [scoop](https://scoop.sh). The current
implementation finds `git.exe` in scoop's shims folder and then tries to
find `bash.exe` relative to it.
For example, `git.exe` (shim) is located at:
```
C:\Users\<username>\scoop\shims\git.exe
```
And the code tries to find `bash.exe` at:
```
C:\Users\<username>\scoop\shims\..\bin\bash.exe
```
which doesn't exist.
This PR changes the logic to first check if `bash.exe` is available in
PATH (using `which::which`), and only falls back to the git-relative
path if that fails.
qystishere
created
56a2f9c
Revert "git: Make the version_control.{deleted/added} colors more accessible" (#43512)
Click to expand commit body
Reverts zed-industries/zed#43475
The colors ended up being too dark. Zed adds an opacity to the
highlights.
https://github.com/zed-industries/zed/blob/e13e93063ce24a2ede88747c316d7279174878c8/crates/editor/src/element.rs#L9195-L9200
Reverting to avoid having the colors go out in preview will fix shortly
after.
Anthony Eid
created
88ef5b1
terminal: Update search match highlights on resize (#43507)
Click to expand commit body
The fix for this is emitting a wake-up event to tell the terminal to
recalculate its search highlights on resize.
Release Notes:
- terminal: Fix bug where search match highlights wouldn't update their
position when resizing the terminal.
Anthony Eid
created
e13e930
Avoid continuing zeta requests that are cancelled before their throttle (#43505)
Click to expand commit body
Release Notes:
- N/A
Max Brunsfeld
created
98e3692
languages: Recognize .clang-format as YAML (#43469)
Click to expand commit body
Clang-Format uses uses a YAML config file format.
Use YAML language by default for `.clang-format` and `_clang-format`
filenames.
([source](https://clang.llvm.org/docs/ClangFormatStyleOptions.html))
Add `#yaml-language-server: $schema` to `.clang-format` example in C
language docs.
Release Notes:
- Added support for identifying. `.clang-format` files as YAML by
default
Fixes https://github.com/zed-industries/zed/issues/42554
Fixes https://github.com/zed-industries/zed/issues/43383
Release Notes:
- python: Added support for detecting uv workspaces as toolchains.
- windows: Fixed console windows sometimes appearing when opening Python
files.
Most of the features for collab were previously listed in the section
that was written for private calls. Most of this PR is moving that
content over to the channel documentation and adapting it slightly.
Private calls have similar collaboration, so we can just point back to
the channels doc in that section and keep it pretty thin / DRY.
Release Notes:
- N/A
Joseph T. Lyons
created
1f9d5ef
Always display terminal cursor when blinking is disabled (#43487)
Click to expand commit body
Fixes an issue where the terminal cursor wouldn't always be displayed in
the default `blink: "terminal_controlled"` mode unless the terminal
requested cursor blinking.
Release Notes:
- N/A
Agus Zubiaga
created
83f0a3f
Redact sensitive environment variables in LSP Logs: Server Info (#43480)
Click to expand commit body
Follow-up to:
- https://github.com/zed-industries/zed/pull/43436
- https://github.com/zed-industries/zed/pull/42831
The changes in #42831 resulted in a regression where environment
variables in the Server Info view were no longer redact. The changes in
#43436 were insufficient as I was still seeing sensitive values in
Nightly e6fe95b4f2f676c7fc4a5f951ba7c721e7d22e8a (which includes
#43436).
CC: @SomeoneToIgnore (Hi! 👋 Thanks for keeping this redaction
functionality alive)
Release Notes:
- N/A
Peter Tripp
created
7ecbf8c
zeta2: Remove expected context from evals (#43430)
fb0fcd8
Add missing update of last_prediction_refresh (#43483)
Click to expand commit body
Fixes a regression introduced in
https://github.com/zed-industries/zed/pull/43284 where edit predictions
stopped being throttled at all 😬
Release Notes:
- N/A
Co-authored-by: Ben Kunkle <ben@zed.dev>
Max Brunsfeld
and
Ben Kunkle
created
36708c9
Separate experimental edit prediction jumps feature from the Sweep AI prediction provider (#43481)
Click to expand commit body
Release Notes:
- N/A
---------
Co-authored-by: Ben Kunkle <ben@zed.dev>
Max Brunsfeld
and
Ben Kunkle
created
388fda2
editor: Fix package version completion partial accept and improve sorting (#43473)
Click to expand commit body
Closes #41723
This PR fixes an issue with accepting partial semver completions by
including `.` in the completion query. This makes the editor treat the
entire version string as the query, instead of breaking segment at last
`.` .
This PR also adds a test for sorting semver completions. The actual
sorting fix is handled in the `package-version-server` by having it
provide `sort_text`. More:
https://github.com/zed-industries/package-version-server/pull/10
<img width="600" alt="image"
src="https://github.com/user-attachments/assets/7657912f-c6da-4e05-956b-1c044918304f"
/>
Release Notes:
- Fixed an issue where accepting a completion for a semver version in
package.json would append the suggestion to the existing text instead of
replacing it.
- Improved the sorting of semver completions in package.json so the
latest versions appear at the top.
Smit Barmase
created
94f9b85
acp: Only pass enabled MCP servers to agent (#43467)
Click to expand commit body
Release Notes:
- Fix an issue where ACP agents would start MCP servers that were
disabled in Zed