4084a5a
ci: Restore mtime of source files to the git log time (#48607)
Click to expand commit body
Release Notes: - N/A
Piotr Osiewicz created
4084a5a
ci: Restore mtime of source files to the git log time (#48607)
Release Notes: - N/A
Piotr Osiewicz created
61e5755
languages: Change syntax highlighting for C/C++ preprocessor directives (#48109)
This changes the highlight capture for preprocessor directives from `@keyword.directive` to `@preproc` in both C and C++. PR #44043 changed C from `@keyword` to `@keyword.directive` for consistency with C++, but `@keyword.directive` is still semantically wrong. Preprocessor directives are not language keywords — they are instructions to a separate preprocessing phase that runs before compilation. Using `@preproc` reflects this distinction and allows themes to style them independently from actual language keywords like `const`, `struct`,`if`, etc. This is consistent with how editors like CLion handle preprocessor directives. Before: <img width="710" height="653" alt="before" src="https://github.com/user-attachments/assets/5c02fc06-bc19-4112-ae53-ad72eb8044e3" /> After: <img width="710" height="653" alt="after" src="https://github.com/user-attachments/assets/2490e796-7286-4fbb-81b0-387f551cde8f" /> Release Notes: - C/C++: Syntax highlighting for preprocessor directives can now be tweaked with @preproc capture group. Co-authored-by: ozacod <ozacod@users.noreply.github.com>
ozacod and ozacod created
7a6674d
agent: Move subagent spawning to `ThreadEnvironment` (#48381)
TODO - [x] Cancellation - [x] Show subagent card as soon as tool_name == "subagent" - [x] Keybinding for closing subagent full screen view - [x] Only fire subagent notifications when appropriate - [x] Fix tests Release Notes: - N/A --------- Co-authored-by: Cameron <cameron@zed.dev> Co-authored-by: Tom Houlé <tom@tomhoule.com> Co-authored-by: cameron <cameron.studdstreet@gmail.com> Co-authored-by: Danilo Leal <daniloleal09@gmail.com> Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Bennet Bo Fenner , Cameron , Tom Houlé , cameron , Danilo Leal , and Ben Brandt created
ad7b1f5
vim: Make end of line infallible (#48867)
When using `$` to move to the end of line (`vim::EndOfLine`), the `vim::motion::Motion.move_point` method checks whether the new point, that is, the point after the motion is applied is different from the point that was passed as a method argument. If the point is not different, the point and selection goals are only updated if `vim::motion::Motion.infallible` returns true for the motion in question. In short, this means that, if the cursor was already at the end of the line, and it got there using `vim::Right`, for example, the selection goal wouldn't actually be set to `SelectionGoal::HorizontalPosition(f64::INFINITY)`, so when the cursor was moved to a shorter line, it wouldn't be set at the end of that line, even though `$` had been used. This commit updates `vim::motion::Motion.infallible` to ensure that, for `vim::motion::Motion::EndOfLine`, it returns `true`, so that the selection goal is always updated, regardless of whether the cursor is already at the end of the line. Closes #48855 - [X] Tests or screenshots needed? - [X] Code Reviewed - [X] Manual QA Release Notes: - vim: Fixed `$` not sticking to end-of-line on vertical motions (`j`/`k`) when the cursor was already at the end of the line via `l` or arrow keys
Dino created
64c3e8a
languages: Exclude TestMain from Go runnables (#46575)
Exclude special [TestMain](https://pkg.go.dev/testing#hdr-Main) function from Go runnables. Release Notes: - Excluded `TestMain` function from Go runnables.
Lev Zakharov created
4177be4
git: Optimize `patch_for_range` functions (#48852)
These are heavily used by the side-by-side diff. Previously, we were iterating over all hunks for each call. Now we skip hunks that can't affect the provided range. Release Notes: - N/A
Cole Miller created
da8a611
Expose the scheduler executor for ex (#48854)
Release Notes: - N/A
Conrad Irwin created
4ffaf64
repl: Bump jupyter-protocol to v1.1.1 (#48848)
Bringing in the handling of the lack of execution count noticed while testing other kernels. xref: https://github.com/zed-industries/zed/pull/48837 Release Notes: - N/A
Kyle Kelley created
303c1aa
repl: Be more resilient with message parsing (#48837)
Closes #21529 Show a toast when a message from a Jupyter kernel doesn't parse properly. Discovered that some kernels don't include their execution count in an `ExecuteReply` which is required in the jupyter protocol. Upstream I'll go make that field either be an `Option` or just stick `#[serde(default)]` on it so it's not a change in the interface. Release Notes: - Show error when parsing a message from a Jupyter kernel fails
Kyle Kelley created
f81dfca
collab: Remove unused `Config` fields (#48836)
This PR removes the unused fields from the `Config` struct in Collab. Release Notes: - N/A
Marshall Bowers created
2efdd35
ui: Improve icon preview visualization (#48834)
Just improving the visualization for all icons in the component preview; I think this will make it easier to quickly skim for an existing icons. Release Notes: - N/A
Danilo Leal created
24d9c00
repl: Use split() on shell and control dealer sockets (#48823)
Hot on the heels of https://github.com/zed-industries/zed/pull/48817 I'm bringing the best improvement to the repl underneath: `split()`-able sockets! Much more will be unlocked by having this. This split the shell and control `DealerSocket` connections into independent send/recv halves using the new `split()` API from zeromq 0.5.0 and runtimelib 1.x. This also nicely cleaned things up so we could have a single `select!` loop over iopub, shell, and control recv halves. That replaces three separate recv tasks. This likely closes some issues for certain kernels that would get stuck either during startup or other flows due to them not sending replies to specific requests. I'll see if I can find issues around this and update the release notes after. This allows us to unlock some nifty new things we can do on the shell socket, particularly autocompletion for in-memory values, stdin support, and others. I _think_ it also help with sending and receving `KernelInfo`, which not all kernels do properly at the start. This makes us a bit more resilient to errant kernels. Release Notes: - N/A
Kyle Kelley created
2028f85
languages: Fix block comment indentation for C/C++ (#47810)
Before: <img width="426" height="128" alt="before" src="https://github.com/user-attachments/assets/89f84f4b-4810-4d11-b8a2-c841d8506cef" /> After: <img width="437" height="125" alt="after" src="https://github.com/user-attachments/assets/a63c5265-8f1b-4926-a334-93effad22f2b" /> Release Notes: - Fixed for block comment indentation problem for C/C++
ozacod created
5ba3d6a
languages: Fix C/C++ outline for function definitions and declarations with mixed storage and type qualifiers (#47500)
Before: <img width="1002" height="228" alt="before" src="https://github.com/user-attachments/assets/94c5d0b7-a467-4bfe-8eaf-5a2c4b3cb7ea" /> After: <img width="1002" height="228" alt="after" src="https://github.com/user-attachments/assets/73d049d2-4dd1-40a4-ac21-984ca3fd32ee" /> Release Notes: - Fixed C/C++ outline for function definitions and declarations with mixed storage and type qualifiers.
ozacod created
b2150a4
Fix incorrect first line detection for libstdc++ files (#48351)
https://github.com/zed-industries/zed/pull/48250#issuecomment-3846774856 To ensure the fix covers all affected files, I have checked all C++ files without extensions using the following command: ```bash find /usr/include/c++ -type f | grep -v '.h' | grep -v '.cpp' | grep -v '.tcc' | xargs head -1 | zed - ``` <details> <summary>Click to expand images</summary> <img width="940" height="935" alt="image" src="https://github.com/user-attachments/assets/d0346ad4-d9f7-47d5-a85e-cb574dacf290" /> <img width="956" height="939" alt="image" src="https://github.com/user-attachments/assets/d9e872fc-f2b8-4fff-b5a9-99e8a4fc21a3" /> <img width="953" height="940" alt="image" src="https://github.com/user-attachments/assets/dee53cd4-d598-4d65-918d-353b037cdf1b" /> <img width="956" height="938" alt="image" src="https://github.com/user-attachments/assets/777b899c-db25-4dc8-b4a5-fafe28cc14a4" /> </details> Release Notes: - N/A
feeiyu created
28e743b
languages: Add attribute highlighting in C++ (#47825)
Before: <img width="587" height="360" alt="before" src="https://github.com/user-attachments/assets/85989888-2fc0-43aa-87ca-01d2c3101484" /> After: <img width="591" height="357" alt="after" src="https://github.com/user-attachments/assets/9e1ceccf-7890-43f7-a0b9-938daa161d13" /> Release Notes: - Added attribute highlighting in C++
ozacod created
5af15f7
Fix panic in zeta1 prompt parsing (#48822)
Closes #48712 - [ ] Tests or screenshots needed? - [ ] Code Reviewed - [ ] Manual QA Release Notes: - Fixed a panic when parsing predictions made by zeta1
Ben Kunkle created
3f53a3a
Add a `Show All Channels` button to the collab panel (#48826)
This makes it easy to see all the activity that is happening in a more condensed view. Helps you fend off endless scrolling in the collaboration panel when trying to find the meeting room. ⚔️ https://github.com/user-attachments/assets/5b538636-5672-42a4-a831-ffe303051c84 - [X] Tests or screenshots needed? - [ ] Code Reviewed - [X] Manual QA Release Notes: - Added a `Show All Channels` button to the collab panel to filter down to only channels with participants.
Joseph T. Lyons created
b97a6c3
extension_ci: Increase timeout for extension version bump job (#48828)
This fixes another issue for the ruby extension where a cargo index update can sometimes take quite some time. However, this will not change anything for all other extensions, as they continue to bump within the defined timeout. Release Notes: - N/A
Finn Evers created
0821d6f
collab: Remove `GET /extensions` endpoint (#48827)
This PR removes the `GET /extensions` endpoint from Collab, as it has been moved to Cloud. In #48717 we changed it to just proxy to Cloud, but we didn't end up needing that. Release Notes: - N/A
Marshall Bowers created
d712963
git: Fix missing excerpts panic with side-by-side diff (#48755)
When we update excerpts, pull the changes to the `Companion` excerpt mappings into the multibuffer's update block, so that buffer subscriptions don't get the chance to run and observe an invalid state while attempting to snapshot the editor Release Notes: - N/A --------- Co-authored-by: cameron <cameron.studdstreet@gmail.com> Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Cole Miller , cameron , and Jakub Konka created
3d327cf
extension_ci: Be more precise with clippy targets (#48824)
This fixes an issue where we would run into build errors during testing. Release Notes: - N/A
Finn Evers created
7a18c41
git: Side-by-side diff UX improvements (#48821)
- No more "locked mode", it's on by default - Only `ToggleDiffView` action - Re-enable code actions on the RHS Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Cole Miller <cole@zed.dev>
Cameron Mcloughlin and Cole Miller created
81f9354
docs: Mention support for alternate LSP for Kotlin (#45650)
Would believe https://github.com/zed-industries/zed/pull/40776 did change the default lsp to official implementation. Release Notes: - N/A --------- Co-authored-by: Kunall Banerjee <hey@kimchiii.space>
ilsubyeega and Kunall Banerjee created
29f2048
repl: Shutdown all kernels on app quit (#48760)
Closes #17985 Closes #21911 Force the shutdown of the kernel by ensuring the kernel sessions are dropped on app quit. Release Notes: - Fixed shutdown of kernels on app exit
Kyle Kelley created
7f2ee83
repl: Bump `runtimed` ecosystem packages to 1.x (#48817)
Bump the runtimed ecosystem packages to their 1.0 releases: - `jupyter-protocol`: 0.10.0 → 1.1.0 - `jupyter-websocket-client`: 0.15.0 → 1.0.0 - `nbformat`: 0.15.0 → 1.0.0 - `runtimelib`: 0.30.0 → 1.1.0 One breaking change: `MimeType::Json` now wraps `serde_json::Value` directly instead of `serde_json::Map<String, Value>`, so the redundant `Value::Object(...)` wrapping in `outputs.rs` was removed. Closes #41649 More Quality of Life improvements and Bug Fixes are coming in new PRs after this is merged. Release Notes: - Fixes startup for R kernels and Python kernels on windows.
Kyle Kelley created
2d1e211
Update community champions (#48818)
Adding @rgbkrk so we have extra reminders in place to remain attentive. Release Notes: - N/A
Joseph T. Lyons created
c873440
docs: Suggest alternative to Vim tag navigation feature (#48735)
Closes N/A - [ ] Tests or screenshots needed? -- no - [x] Code Reviewed - [x] Manual QA -- I ran `mdbook serve` and checked the output looks OK Release Notes: - N/A --------- Co-authored-by: Kunall Banerjee <hey@kimchiii.space>
Martin Pool and Kunall Banerjee created
5e86a8d
extension_rollout: Improve naming for PR titles (#48815)
This PR updates the names for the PRs to roll out to the extensions, as having the `zed@` prefix does not look too pretty. It also increases the concurrency of matrix jobs run to 10, as the rollout has matured by now and is safe to perform for more repositories at once. Release Notes: - N/A
Finn Evers created
82dedcb
extension_ci: Merge extension workflow files into one file (#48810)
This PR consolidates the two workflow files shipped to extensions into one, which stops us from requiring a separate runner for what can actually be done in one workflow. It also - adds a check that version bumps will now only be created by zed-zippy in separate commits. - Makes the bumping of versions faster and more reliable. - (Hopefully) fixes an issue we were seeing in some CI tests. Release Notes: - N/A
Finn Evers created
fb0af50
gpui: Allow OS caption/buttons for custom Windows titlebar (#48330)
## Summary Fixes an issue where GPUI's handling of `WM_NCLBUTTONDOWN` prevented Windows from processing default titlebar interactions (dragging, caption buttons, and border resize). ## Changes - Allow OS to handle `WM_NCLBUTTONDOWN` events for `HTCAPTION`, caption button areas, and resize border areas (`HTLEFT`, `HTRIGHT`, `HTTOP`, `HTBOTTOM`, `HTTOPLEFT`, `HTTOPRIGHT`, `HTBOTTOMLEFT`, `HTBOTTOMRIGHT`) - Use current cursor position in `WM_NCHITTEST` for accurate hit-testing ## Testing - Manual testing on Windows: titlebar dragging works - Manual testing on Windows: minimize/maximize/close buttons work - Manual testing on Windows: window border resize works in all directions Release Notes: - N/A
Conashimi created
aea984b
visual_tests: Init agent UI globals in runner (#48076)
Closes https://github.com/zed-industries/zed/issues/48049 Release Notes: - Fixed init agent UI globals in visual test runner Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
Xiaobo Liu created
196504f
repl: Pluck project off editor directly (#48808)
Clean up code by pulling the project off the editor directly. Repeat of https://github.com/zed-industries/zed/pull/48762 since reversion happened in https://github.com/zed-industries/zed/pull/48776. Release Notes: - N/A
Kyle Kelley created
495d966
repl: Pluck project off editor directly (#48808)
Clean up code by pulling the project off the editor directly. Repeat of https://github.com/zed-industries/zed/pull/48762 since reversion happened in https://github.com/zed-industries/zed/pull/48776. Release Notes: - N/A
Kyle Kelley created
7390b44
git: Fix panic when folding ranges (#48809)
Restore a call to `BlockMap::read` that went missing in #48747 Release Notes: - N/A
Cole Miller created
3b81feb
devcontainer: Fix project search returning no results on single-CPU containers (#48798)
Closes #47489
The search worker pool was sized as `num_cpus - 1`, which spawned zero
workers when a devcontainer exposed only 1 CPU. All search channels
closed immediately and the search yielded zero results, while file
finder and LSP symbols worked fine.
The fix ensures at least 1 worker is always spawned: `(num_cpus -
1).max(1)`. A `num_cpus` override on `TestDispatcher` and a new test
reproduce the bug with `server_cx.executor().set_num_cpus(1)`.
## Manual testing
Add a `.devcontainer/` directory to a new project with these files:
```
// docker-compose.yml
services:
dev:
image: debian:bookworm-slim
cpuset: "0"
volumes:
- ..:/workspace:cached
command: sleep infinity
```
```
// devcontainer.json
{
"name": "zed-sandbox (1 CPU)",
"dockerComposeFile": "docker-compose.yml",
"service": "dev",
"workspaceFolder": "/workspace"
}
```
Build zed and point it at the new project:
```
cargo run -p zed -- ~/Repos/zed-sandbox-project
```
Open the built-in terminal, confirm `nproc` prints `1`.
Finally, run a project search (`Cmd+Shift+F`) and search for contents
that exist in it.
Results should appear 🎉
Release Notes:
- Fixed project search returning no results in devcontainers with a
single visible CPU.
Oliver Azevedo Barnes created
9120c96
git_ui: Dismiss modal when viewing stash (#48491)
Ensure that `git_ui::stash_picker::StashList.handle_show_toast` emits a `DismissEvent` so that, when the user confirms they wish to view a stash entry, the modal is actually dismissed and does not block the user's view. Release Notes: - Fixed issue where viewing a stash entry would not dismiss the modal
Dino created
f0287d6
ep: Compress EP requests (#48793)
Benchmark results on 3,000 captured requests: | Scenario | Mean | Savings | p95 | Savings | |:------------------|-------:|--------:|-------:|--------:| | Uncompressed | 12,275 | — | 35,896 | — | | zstd (no dict) | 2,784 | 77.3% | 7,193 | 80.0% | | zstd + global dict| 2,544 | 79.3% | 6,862 | 80.9% | | brotli (no dict) | 2,650 | 78.4% | 6,857 | 80.9% | A trained zstd dictionary adds only 2% over plain zstd, which is not worth added complexity. Brotli compresses comparably but is 4 times slower. Release Notes: - N/A
Oleksiy Syvokon created
8582ca6
git: Fix a panic in `spacer_blocks` (#48753)
Closes ZED-4X5 Release Notes: - N/A *or* Added/Fixed/Improved ...
Cole Miller created
165b404
Revert "New multi workspace (#47795)" (#48776)
Preparing this just in case. Release Notes: - N/A
Finn Evers created
bf2171d
project_panel: Improve file/folder creation behavior in folded paths (#46750)
Closes #45550 This fix, adds a new field to `EditState` to track and temporarily unfold the given directory when creating files or directories in collapsed paths. Release Notes: - Fixed the file and folder creation input appearing in the wrong location when creating inside a collapsed folder path.. Recording: https://github.com/user-attachments/assets/15e48863-26b9-4dc9-888a-b31fb3208d98 --------- Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
André Eriksson and Smit Barmase created
a41bec8
agent_ui: Insert images at cursor position (#48779)
With #47768, all image pills automatically got snapped to the end of the prompt message. This behavior is unexpected as other pills (`@symbol`, `@thread` et al) respect the cursor position. Closes #48731. - [ ] Tests or screenshots needed? - [x] Code Reviewed - [x] Manual QA Release Notes: - Insert images at cursor position in the Agent Panel
Kunall Banerjee created
e0a2561
Add format-on-save support to streaming edit file tool (#48663)
When saving after a streaming edit, check if format-on-save is enabled for the buffer's language and run formatting before saving. (No release notes because we aren't using the streaming edit tool yet.) Release Notes: - N/A
Richard Feldman created
415b558
Extract shell_command_parser into shared crate (#48660)
Move shell command parsing logic (`extract_commands` and supporting code) from the agent crate into a new `shell_command_parser` crate so it can be reused by `agent_servers` for ACP permission checking. Release Notes: - N/A
Richard Feldman created
a27304b
agent_ui: Refine thinking effort selector (#48790)
This PR adds some design refinements to the thinking effort selector (to be generally rolled out soon): - Improved split button UI styles and consistency with other dropdowns in the message editor - Stopped rendering the effort selector if thinking is turned off - Added a keybinding to trigger the effort menu - Added a keybinding to cycle through effort options <img width="500" height="380" alt="Screenshot 2026-02-09 at 10 18@2x" src="https://github.com/user-attachments/assets/48d5b65c-7256-4ceb-aab2-35869f8fbf4a" /> --- - [x] Code Reviewed - [x] Manual QA Release Notes: - N/A
Danilo Leal created
44364eb
extension_host: Add DAP methods dispatch for v0.8.0 (#48777)
## Summary When the v0.8.0 extension API was forked in #44025, the five DAP dispatcher methods in `wit.rs` were not updated to handle `Extension::V0_8_0`. Because `V0_8_0` is listed before `V0_6_0` in the enum, the wildcard `_ =>` catch-all fires first, causing all DAP calls to bail with `"not available prior to v0.6.0"` for any extension targeting the v0.8.0 API. The DAP WIT interface is identical between v0.6.0 and v0.8.0, so the handler code is the same — this just adds the missing match arms for: - `call_get_dap_binary` - `call_dap_request_kind` - `call_dap_config_to_scenario` - `call_dap_locator_create_scenario` - `call_run_dap_locator` This follows the same pattern used by every other method in the `Extension` impl block, which already handles both `V0_8_0` and `V0_6_0`. ## Test plan - Verified that an extension targeting `zed_extension_api` v0.8.0 with DAP support can successfully start a debug session (previously failed with `"dap_request_kind not available prior to v0.6.0"`) Release Notes: - Fixed DAP (Debug Adapter Protocol) methods failing for extensions targeting the v0.8.0 extension API.
Brad Fullwood created
916b132
Fix cargo package metadata (#48778)
Follow-up to https://github.com/zed-industries/zed/pull/48525/changes#diff-315ed179e69e42c0a098166a7faa7899838376c2649c84fa8cb66643f3813a45 which changed this Release Notes: - N/A
Finn Evers created
404cb3e
agent: Remove duplicate `line_hint` assignment in `StreamingFuzzyMatcher::push` (#48317)
Release Notes: - N/A --------- Co-authored-by: MrSubidubi <finn@zed.dev>
Albab Hasan and MrSubidubi created
3d88c70
title_bar: Fix `ToggleProjects` panic (#48775)
Another follow-up to the multi workspace PR - [X] Code Reviewed - [X] Manual QA Release Notes: - N/A
Finn Evers created
97835f9
agent_ui: Fix panic when resizing panel (#48772)
- [X] Code Reviewed - [X] Manual QA Release Notes: - N/A
Finn Evers created