69e99b9
Remove unescessary unimplemented (#32264)
Click to expand commit body
Release Notes: - N/A
Mikayla Maki created
69e99b9
Remove unescessary unimplemented (#32264)
Release Notes: - N/A
Mikayla Maki created
0fc85a0
Fix `script/build-linux` with newer GCC (#32029)
If you follow the [workaround advice in the Docs](https://zed.dev/docs/development/linux#installing-a-development-build) for building with a newer GCC, it will error: https://github.com/zed-industries/zed/blob/79b1dd7db8baede7e5dbaa2ad077bca61d9bad49/script/bundle-linux#L88-L91 [Reported on Discord](https://discord.com/channels/869392257814519848/1379093394105696288) Release Notes: - Fixed `script/build-linux` for non-musl builds.
Peter Tripp created
974f724
vim: Enable window shortcuts in Agent panel (#31000)
Release Notes: - Enabled vim window commands (ctrl-w X) when agent panel is focused Co-authored-by: Cole Miller <cole@zed.dev>
Pavle Sokic and Cole Miller created
ca3f465
gpui: Implement dynamic window control elements (#30828)
Allows setting element as window control elements which consist of `Drag`, `Close`, `Max`, or `Min`. This allows you to implement dynamically sized elements that control the platform window, this is used for areas such as the title bar. Currently only implemented for Windows. Release Notes: - N/A
Matin Aniss created
d9efa28
gpui: Fix scroll area to support two-layer scrolling in different directions (#31062)
Release Notes: - N/A --- This change is used to solve the problem of not being able to respond correctly in two-layer scrolling (in different directions). This is a common practical requirement. As in the example, in actual use, there may be a scene with a horizontal scroll in a vertical scroll. Before the modification, if we scroll up and down in the area that can scroll horizontally, it will not respond (because it is blocked by the horizontal scroll layer). ## Before https://github.com/user-attachments/assets/e8ea0118-52a5-44d8-b419-639d4b6c0793 ## After https://github.com/user-attachments/assets/aa14ddd7-5596-4dc5-9c6e-278aabdfef8e ---- This change may cause many side effects, causing some scrolling details to be different from before, and more testing and analysis are needed. I have tested some existing scenarios of Zed (such as opening the Branch panel on the Editor and scrolling) and it seems to be correct (but it is possible that I donβt know some interaction details). Here, the person who added this line of code before needs to evaluate the original purpose.
Jason Lee created
ac806d9
gpui: Introduce dash array support for `PathBuilder` (#31678)
A simple way to draw dashed lines. https://github.com/user-attachments/assets/2105d7b2-42d0-4d73-bb29-83a4a6bd7029 Release Notes: - N/A
Floyd Wang created
73cd6ef
Add UI for configuring the API Url directly (#32248)
Closes #22901 Release Notes: - Copilot Chat endpoint URLs can now be configured via `settings.json` or Configuration View.
Piotr Osiewicz created
019a14b
Replace `async-watch` with a custom watch (#32245)
The `async-watch` crate doesn't seem to be maintained and we noticed
several panics coming from it, such as:
```
[bug] failed to observe change after notificaton.
zed::reliability::init_panic_hook::{{closure}}::hea8cdcb6299fad6b+154543526
std::panicking::rust_panic_with_hook::h33b18b24045abff4+127578547
std::panicking::begin_panic_handler::{{closure}}::hf8313cc2fd0126bc+127577770
std::sys::backtrace::__rust_end_short_backtrace::h57fe07c8aea5c98a+127571385
__rustc[95feac21a9532783]::rust_begin_unwind+127576909
core::panicking::panic_fmt::hd54fb667be51beea+9433328
core::option::expect_failed::h8456634a3dada3e4+9433291
assistant_tools::edit_agent::EditAgent::apply_edit_chunks::{{closure}}::habe2e1a32b267fd4+26921553
gpui::app::async_context::AsyncApp::spawn::{{closure}}::h12f5f25757f572ea+25923441
async_task::raw::RawTask<F,T,S,M>::run::h3cca0d402690ccba+25186815
<gpui::platform::linux::x11::client::X11Client as gpui::platform::linux::platform::LinuxClient>::run::h26264aefbcfbc14b+73961666
gpui::platform::linux::platform::<impl gpui::platform::Platform for P>::run::hb12dcd4abad715b5+73562509
gpui::app::Application::run::h0f936a5f855a3f9f+150676820
zed::main::ha17f9a25fe257d35+154788471
std::sys::backtrace::__rust_begin_short_backtrace::h1edd02429370b2bd+154624579
std::rt::lang_start::{{closure}}::h3d2e300f10059b0a+154264777
std::rt::lang_start_internal::h418648f91f5be3a1+127502049
main+154806636
__libc_start_main+46051972301573
_start+12358494
```
I didn't find an executor-agnostic watch crate that was well maintained
(we already tried postage and async-watch), so decided to implement it
our own version.
Release Notes:
- Fixed a panic that could sometimes occur when the agent performed
edits.
Antonio Scandurra created
95d78ff
context server: Make requests type safe (#32254)
This changes the context server crate so that the input/output for a
request are encoded at the type level, similar to how it is done for LSP
requests.
This also makes it easier to write tests that mock context servers, e.g.
you can write something like this now when using the `test-support`
feature of the `context-server` crate:
```rust
create_fake_transport("mcp-1", cx.background_executor())
.on_request::<context_server::types::request::PromptsList>(|_params| {
PromptsListResponse {
prompts: vec![/* some prompts */],
..
}
})
```
Release Notes:
- N/A
Bennet Bo Fenner created
454adfa
freebsd: Improve nightly builds of zed-remote-server (#32255)
Follow-up to: https://github.com/zed-industries/zed/pull/29561 Don't create a release Don't upload artifact to workflow. Add freebsd support to upload-nightly Release Notes: - N/A
Peter Tripp created
edd4056
git: Pick which remote to fetch (#26897)
I don't want to fetch `--all` branch, we should can picker which remote to fetch. Release Notes: - Added the `git::FetchFrom` action to fetch from a single remote. --------- Co-authored-by: Cole Miller <cole@zed.dev>
CharlesChen0823 and Cole Miller created
a40ee74
Improve handling of `injection.combined` injections in `SyntaxSnapshot::layers_for_range` (#32145)
Closes #27596 The problem in this case was incorrect identification of which language (layer) contains the selection. Language layer selection incorrectly assumed that the deepest `SyntaxLayer` containing a range was the most specific. This worked for Markdown (base document + injected subtrees) but failed for PHP, where `injection.combined` injections are used to make HTML logically function as the base layer, despite being at a greater depth in the layer stack. This caused HTML to be incorrectly identified as the most specific language for PHP ranges. The solution is to track included sub-ranges for syntax layers and filter out layers that don't contain a sub-range covering the desired range. The top-level layer is never filtered to ensure gaps between sibling nodes always have a fallback language, as the top-level layer is likely more correct than the default language settings. Release Notes: - Fixed an issue in PHP where PHP language settings would be occasionally overridden by HTML language settings
Ben Kunkle created
2e883be
Add regression test for #11671 (#32250)
I can reproduce #11671 on current Nightly but not on `main`; it looks like https://github.com/zed-industries/zed/pull/32204 fixed it. So I'm adding a regression test and closing that issue. Closes #11671 Release Notes: - N/A
Richard Feldman created
6ea4d2b
agent: Fix MCP server handler subscription race condition (#32133)
Closes #32132 Release Notes: - Fixed MCP server handler subscription race condition causing tools to not load. --------- Co-authored-by: Bennet Bo Fenner <bennet@zed.dev> Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Jonathan LEI , Bennet Bo Fenner , and Bennet Bo Fenner created
380d8c5
Pull diagnostics fixes (#32242)
Follow-up of https://github.com/zed-industries/zed/pull/19230 * starts to send `result_id` in pull requests to allow servers to reply with non-full results * fixes a bug where disk-based diagnostics were offset after pulling the diagnostics * fixes a bug due to which pull diagnostics could not be disabled * uses better names and comments for the workspace pull diagnostics part Release Notes: - N/A
Kirill Bulatov created
508b604
project: Try to make git tests less flaky (#32234)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
3da1de2
Add JSDoc scope (#29476)
This is a small PR that adds a `.jsdoc` scope to JSDoc tokens, just like [JSX](https://github.com/zed-industries/zed/blob/3fdbc3090d2cc5c2e24014009cccbe5e7c55d217/crates/languages/src/javascript/highlights.scm#L239) has a specific scope. This effectively allows differentiating between JavaScript keywords and JSDoc tags in comments. Release Notes: - Add scope for JSDoc
chbk created
8837e55
Add new terminal hyperlink tests (#28525)
Part of #28238 This PR refactors `FindHyperlink` handling and associated code in `terminal.rs` into its own file for improved testability, and adds tests. Release Notes: - N/A
Dave Waggoner created
709523b
Store profile per thread (#31907)
This allows storing the profile per thread, as well as moving the logic of which tools are enabled or not to the profile itself. This makes it much easier to switch between profiles, means there is less global state being changed on every profile change. Release Notes: - agent panel: allow saving the profile per thread --------- Co-authored-by: Ben Kunkle <ben.kunkle@gmail.com>
Ben Brandt and Ben Kunkle created
7afee64
multi_buffer: Refactor diff_transforms field into a separate struct (#32237)
A minor refactor ~needed to unblock #22546; it's pretty hard to add an extra field to `diff_transforms` dimension, as it is a 2-tuple (which uses a blanket impl) Release Notes: - N/A
Piotr Osiewicz created
cd0ef4b
docs: Add more troubleshooting steps for Windows (#31500)
Release Notes: - N/A --------- Co-authored-by: εΌ ε°η½ <364772080@qq.com>
shenjack and εΌ ε°η½ created
be6f29c
terminal: Use conventional XTerm indexed color values (#32200)
Fixes rendering of colors in the terminal to use XTerm's idiosyncratic standard steps instead of the range that was previously in use. Matches the behavior of Alacritty, Ghostty, iTerm2, and every other terminal emulator I've looked at. Release Notes: - Fixed rendering of terminal colors for the XTerm 256-color indexed color palette.
Roland Crosby created
38b8e65
ci: Check for broken links (#30844)
This PR fixes some broken links that where found using
[lychee](https://github.com/lycheeverse/lychee/) as discussed today with
@JosephTLyons and @nathansobo at the RustNL hackathon. Using
[lychee-action](https://github.com/lycheeverse/lychee-action/) we can
scan for broken links daily to prevent issues in the future.
There are still 6 broken links that I didn't know how to fix myself.
See https://github.com/thomas-zahner/zed/actions/runs/15075808232 for
details.
## Missing images
```
Errors in ./docs/src/channels.md
[ERROR] file:///home/runner/work/zed/zed/docs/.gitbook/assets/channels-3.png | Cannot find file
[ERROR] file:///home/runner/work/zed/zed/docs/.gitbook/assets/channels-1.png | Cannot find file
[ERROR] file:///home/runner/work/zed/zed/docs/.gitbook/assets/channels-2.png | Cannot find file
```
These errors are showing up as missing images on
https://zed.dev/docs/channels
I tried to search the git history to see when or why they were deleted
but didn't find anything.
## ./crates/assistant_tools/src/edit_agent/evals/fixtures/zode/prompt.md
There are three errors in that file. I don't fully understand how these
issues were caused historically. Technically it would be possible to
ignore the files but of course if possible we should address the issues.
Release Notes:
- N/A
---------
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Co-authored-by: Ben Kunkle <ben@zed.dev>
Thomas Zahner , Marshall Bowers , and Ben Kunkle created
b8c1b54
language_models: Fix Mistral tool->user message sequence handling (#31736)
Closes #31491 ### Problem Mistral API enforces strict conversation flow requirements that other providers don't. Specifically, after a `tool` message, the next message **must** be from the `assistant` role, not `user`. This causes the error: ``` "Unexpected role 'user' after role 'tool'" ``` This can also occur in normal conversation flow where mistral doesn't return the assistant message but that is something which can't be reproduce reliably. ### Root Cause When users interrupt an ongoing tool call sequence by sending a new message, we insert a `user` message directly after a `tool` message, violating Mistral's protocol. **Expected Mistral flow:** ``` user β assistant (with tool_calls) β tool (results) β assistant (processes results) β user (next input) ``` **What we were doing:** ``` user β assistant (with tool_calls) β tool (results) β user (interruption) β ``` ### Solution Insert an empty `assistant` message between any `tool` β `user` sequence in the Mistral provider's request construction. This satisfies Mistral's API requirements without affecting other providers or requiring UX changes. ### Testing To reproduce the original error: 1. Start agent chat with `codestral-latest` 2. Send: "Describe this project using tool call only" 3. Once tool calls begin, send: "stop this" 4. Main branch: API error 5. This fix: Works correctly Release Notes: - Fixed Mistral tool calling in some cases
Umesh Yadav created
c304e96
Display the first keystroke instead of an error for multi-keystroke binding (#31456)
Ideally we would show multi-keystroke binding, but I'd say this improves over the status quo. A partial solution to #27334 Release Notes: - Fixed spurious warning for lack of edit prediction on multi-keystroke binding Co-authored-by: Ben Kunkle <ben@zed.dev>
Jakub Sygnowski and Ben Kunkle created
53abad5
Fixed more bugs around moving pinned tabs (#32228)
Closes https://github.com/zed-industries/zed/issues/32199 https://github.com/zed-industries/zed/issues/32229 https://github.com/zed-industries/zed/issues/32230 https://github.com/zed-industries/zed/issues/32232 Release Notes: - Fixed a bug where if the last tab was a pinned tab and it was dragged to the right, resulting in a no-op, it would become unpinned - Fixed a bug where a pinned tab dragged just to the right of the end of the pinned tab region would become unpinned - Fixed a bug where dragging a pinned tab from one pane to another pane's pinned region could result in an existing pinned tab becoming unpinned when `max_tabs` was reached - Fixed a bug where moving an unpinned tab to the left, just to the end of the pinned region, would cause the pinned tabs to become unpinned.
Joseph T. Lyons created
54e64b2
windows: Refactor the current ime implementation (#32224)
Release Notes: - N/A
εΌ ε°η½ created
ce88540
Add `crates/assistant_tools/src/evals/fixtures` to file_scan_exclusions (#32211)
Particularly got tired of `disable_cursor_blinking/before.rs` (an old copy of `editor.rs`) showing up in tons of searches Release Notes: - N/A
Michael Sloan created
3e8565a
Initialize zlog default filters on init rather than waiting for settings load (#32209)
Now immediately initializes the zlog filter even when there isn't an env config. Before this change the default filters were applied after settings load - I was seeing some `zbus` logs on init. Also defaults to allowing warnings and errors from the suppressed log sources. If these turn out to be chatty (they don't seem to be so far), can bring back more suppression. Release Notes: - N/A
Michael Sloan created
d801b7b
Fix `bindings_for_action` handling of shadowed key bindings (#32220)
Fixes two things:
* ~3 months ago [in PR
#26420](https://github.com/zed-industries/zed/pull/26420/files#diff-33b58aa2da03d791c2c4761af6012851b7400e348922d64babe5fd48ac2a8e60)
`bindings_for_action` was changed to return bindings even when they are
shadowed (when the keystrokes would actually do something else).
* For edit prediction keybindings there was some odd behavior where
bindings for `edit_prediction_conflict` were taking precedence over
bindings for `edit_prediction` even when the `edit_prediction_conflict`
predicate didn't match. The workaround for this was #24812. The way it
worked was:
- List all bindings for the action
- For each binding, get the highest precedence binding with the same
input sequence
- If the highest precedence binding has the same action, include this
binding. This was the bug - this meant that if a binding in the keymap
has the same keystrokes and action it can incorrectly take display
precedence even if its context predicate does not pass.
- Fix is to check that the highest precedence binding is a full match.
To do this efficiently, it's based on an index within the keymap
bindings.
Also adds `highest_precedence_binding_*` variants which avoid the
inefficiency of building lists of bindings just to use the last.
Release Notes:
- Fixed display of keybindings to skip bindings that are shadowed by a
binding that uses the same keystrokes.
- Fixed display of `editor::AcceptEditPrediction` bindings to use the
normal precedence that prioritizes user bindings.
Michael Sloan created
37fa42d
windows: Fix a typo in function name (#32223)
Release Notes: - N/A
εΌ ε°η½ created
5c9b8e8
Move workspace::toast_layer::RunAction to zed_actions::toast::RunAction (#32222)
Cleaner to have references to this be `toast::RunAction` matching how it appears in the keymap, instead of `workspace::RunAction`. Release Notes: - N/A
Michael Sloan created
9660915
Fix typo in assistant_tool.rs (#32207)
Release Notes: - N/A
Lucas created
e37c78b
Refactor some logic in `handle_tab_drop` (#32213)
Tiny little clean up PR after #32184 Release Notes: - N/A
Joseph T. Lyons created
920ca68
Display subtle-mode prediction preview when partial accept modifiers held (#32212)
Closes #27567 Release notes covered by the notes for #32193 Release Notes: - N/A
Michael Sloan created
f62d761
Fix matching braces in jsx/tsx tags (#32196)
Closes #27998 Also fixed an issue where jumping back from closing to opening tags didn't work in javascript due to missing brackets in our tree-sitter query. Release Notes: - N/A --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Julia Ryan and Conrad Irwin created
6a8fdbf
editor: Add multi cursor support for `AddSelectionAbove`/`AddSelectionBelow` (#32204)
Closes #31648 This PR adds support for: - Expanding multiple cursors above/below - Expanding multiple selections above/below - Adding new cursors/selections when expansion has already been done. Existing expansions preserve their state and expand/shrink according to the action, while new cursors/selections act like freshly created ones. Tests for both cursor and selections: - below/above cases - undo/redo cases - adding new cursors/selections with existing expansion Before/After: https://github.com/user-attachments/assets/d2fd556b-8972-4719-bd86-e633d42a1aa3 Release Notes: - Improved `AddSelectionAbove` and `AddSelectionBelow` to extend multiple cursors/selections.
Smit Barmase created
711a9e5
x11: Remove logs for mac-os specific `set_edited` and `show_character_palette` (#32203)
Release Notes: - N/A
Michael Sloan created
6de5d29
Fix caching of Node.js runtime paths and improve error messages (#32198)
* `state.last_options` was never being updated, so the caching wasn't working. * If node on the PATH was too old it was logging errors on every invocation even though managed node is being used. Release Notes: - Fixed caching of Node.js runtime paths and improved error messages.
Michael Sloan created
d7015e5
Fix bugs around tab state loss when moving pinned tabs across panes (#32184)
Closes https://github.com/zed-industries/zed/issues/32181, https://github.com/zed-industries/zed/issues/32179 In the screenshots: left = nightly, right = dev Fix 1: A pinned tab dragged into a new split should remain pinned https://github.com/user-attachments/assets/608a7e10-4ccb-4219-ba81-624298c960b0 Fix 2: Moving a pinned tab from one pane to another should not cause other pinned tabs to be unpinned https://github.com/user-attachments/assets/ccc05913-591d-4a43-85bb-3a7164a4d6a8 I also added tests for moving both pinned tabs and unpinned tabs into existing panes, both into the "pinned" region and the "unpinned" region. Release Notes: - Fixed a bug where dragging a pinned tab into a new split would lose its pinned tab state. - Fixed a bug where pinned tabs in one pane could be lost when moving one of the pinned tabs to another pane.
Joseph T. Lyons created
ddf70b3
Add mismatched tag threshold parameter to eval function (#32190)
Replace hardcoded 0.10 threshold with configurable parameter and set 0.05 default for most tests, with 0.2 for from_pixels_constructor eval that produces more mismatched tags. Release Notes: - N/A
Ben Brandt created
8bd8435
Fix default keybindings for `AcceptPartialEditPrediction` to work in subtle mode (#32193)
Closes #27567 Release Notes: - Fixed default keybindings for `editor::AcceptPartialEditPrediction` to work with subtle mode. Co-authored-by: Richard <richard@zed.dev>
Michael Sloan and Richard created
4b297a9
Fix innermost brackets panic (#32120)
Release Notes: - Fixed a few rare panics that could happen when a multibuffer excerpt started with expanded deleted content.
Conrad Irwin created
7aa70a4
lsp: Implement support for the `textDocument/diagnostic` command (#19230)
Closes [#13107](https://github.com/zed-industries/zed/issues/13107)
Enabled pull diagnostics by default, for the language servers that
declare support in the corresponding capabilities.
```
"diagnostics": {
"lsp_pull_diagnostics_debounce_ms": null
}
```
settings can be used to disable the pulling.
Release Notes:
- Added support for the LSP `textDocument/diagnostic` command.
# Brief
This is draft PR that implements the LSP `textDocument/diagnostic`
command. The goal is to receive your feedback and establish further
steps towards fully implementing this command. I tried to re-use
existing method and structures to ensure:
1. The existing functionality works as before
2. There is no interference between the diagnostics sent by a server and
the diagnostics requested by a client.
The current implementation is done via a new LSP command
`GetDocumentDiagnostics` that is sent when a buffer is saved and when a
buffer is edited. There is a new method called `pull_diagnostic` that is
called for such events. It has debounce to ensure we don't spam a server
with commands every time the buffer is edited. Probably, we don't need
the debounce when the buffer is saved.
All in all, the goal is basically to get your feedback and ensure I am
on the right track. Thanks!
## References
1.
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_pullDiagnostics
## In action
You can clone any Ruby repo since the `ruby-lsp` supports the pull
diagnostics only.
Steps to reproduce:
1. Clone this repo https://github.com/vitallium/stimulus-lsp-error-zed
2. Install Ruby (via `asdf` or `mise).
4. Install Ruby gems via `bundle install`
5. Install Ruby LSP with `gem install ruby-lsp`
6. Check out this PR and build Zed
7. Open any file and start editing to see diagnostics in realtime.
https://github.com/user-attachments/assets/0ef6ec41-e4fa-4539-8f2c-6be0d8be4129
---------
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Vitaly Slobodin , Kirill Bulatov , and Kirill Bulatov created
04cd3fc
google: Add latest versions of Gemini 2.5 Pro and Flash Preview (#32183)
Release Notes: - Added the latest versions of Gemini 2.5 Pro and Flash Preview
Oleksiy Syvokon created
d15d858
snippets: Fix tabstop completion choices (#31955)
I'm not sure when snippet tabstop choices broke, I checked the parent of #31872 and they also don't work before that. Release Notes: - N/A
Michael Sloan created
ccc173e
Fix "j" key latency in vim mode with "j k" keymap (#31163)
Problem: Initial keymap has "j k" keymap, which if uncommented will add +-1s delay to every "j" key press This workaround was taken from https://github.com/zed-industries/zed/discussions/6661 Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Michael Sloan <michael@zed.dev>
VladKopylets and Michael Sloan created
03a030f
Add default method for `CompletionProvider::resolve_completions` (#32045)
Release Notes: - N/A
Michael Sloan created
894f3b9
Make a test no longer `pub` (#32177)
I spotted this while working on something else. Very quick fix! Release Notes: - N/A
Richard Feldman created
f36143a
debugger: Run locators on LSP tasks for the new process modal (#32097)
- [x] pass LSP tasks into list_debug_scenarios - [x] load LSP tasks only once for both modals - [x] align ordering - [x] improve appearance of LSP debug task icons - [ ] reconsider how `add_current_language_tasks` works - [ ] add a test Release Notes: - Debugger Beta: Added debuggable LSP tasks to the "Debug" tab of the new process modal. --------- Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Cole Miller and Anthony Eid created