Commit graph

36003 commits

Author SHA1 Message Date
Danilo Leal
ea5c58c19a
ui: Add new component for thread sidebar panel toggle (#51441) 2026-03-12 23:33:29 -03:00
João Soares
8e045237c4
gpui: Hide XF86 keybindings from menus and keybinding hints (#50540)
Closes #50436

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Fixed XF86 multimedia key names ("New", "Save", "Open") being shown as
keybinding hints in menus instead of the actual keyboard shortcuts.
2026-03-13 02:03:51 +00:00
Conrad Irwin
7aba1f9691
Fix leak detector on HeadlessAppContext (#51442)
Closes #ISSUE

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A
2026-03-13 01:58:57 +00:00
Finn Eitreim
7b9afc8c45
gpui: Recalculate list layout after the window has been resized (#51414)
Closes #51417

I noticed this bug in the settings menu where when I opened the settings
menu, I could not scroll down through all the available options, eg. on
the initial page I wasn't able to scroll down to privacy. When I saw
that no one else had reported this issue, I figured it may be due to my
setup, and it turns out that using Aerospace, the window manager I use,
was what made this bug visible to me. Because aerospace resizes the
window right after it launches, the originally computed heights for the
list are incorrect, meaning the scroll bar is the wrong size as well.

in the relevant code there was a comment that says "If the width of the
list has changed, invalidate all cached item heights" which wasn't
incorrect per-se, but it just invalidated them without triggering any
re-computation, causing incorrect scroll bars.

My intuition is that window resizes/events that change the width of the
list bounds are fairly rare, so there shouldn't be a large performance
hit from the change.

Also implemented a test that directly showcases the behavior, if you run
the test without the change it fails, as the max_offset_for_scrollbar
will be wrong.

Videos:

Before 


https://github.com/user-attachments/assets/2b680222-7071-4098-863f-519361f0756a

After:


https://github.com/user-attachments/assets/1222a299-23d7-4007-8e88-55d2daccce64


[x] Tests
[x] Video of behavior


Release Notes:

- gpui: fixed list height re-computation when the list width changes.
2026-03-12 17:12:31 -07:00
Danilo Leal
d4bb640555
git_ui: Remove unused ProjectDiffEmptyState component (#51436)
Just cleaning up our component set a bit. This one wasn't used at all.

Release Notes:

- N/A
2026-03-12 21:09:53 -03:00
Justin Su
b15a8c1e5e
docs: Clarify that "..." enables all other registered language servers (#51427)
Closes #51416

Before you mark this PR as ready for review, make sure that you have:

- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A
2026-03-13 00:05:27 +00:00
Marshall Bowers
a07d0f4d21
Assign meaningful names to some single-letter bindings (#51432)
This PR assigns meaningful names to some single-letter bindings we were
using to refer to the organization.

Release Notes:

- N/A
2026-03-12 22:49:17 +00:00
Conrad Irwin
94248361be
Make dispatcher on TestApp public again (#51431)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-03-12 22:45:41 +00:00
Amaan
cc09611d0b
workspace: Fix opening closed projects randomly when Zed restarts (#50961)
Closes #49854 

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] No UI changes

Video for the fix: 
in the video i open a project -> close the project -> quit out of zed ->
reopen zed -> zed opens to an empty workspace which was not the case
before


https://github.com/user-attachments/assets/1afb44a1-932b-4dab-8228-9d9d65750b6e



Release Notes:
 - Fixed closed projects re-opening erroneously
2026-03-12 22:43:34 +00:00
Mikayla Maki
5e60aa9872
Implement worktree interactions for the sidebar (#51421)
Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A
2026-03-12 15:34:09 -07:00
Bennet Bo Fenner
dd0e51ecb8
agent_ui: Disable pickers while thread is generating (#50519)
It does not make sense to enable them during the running turn and it can
lead to more confusing states if subagents are used.

Release Notes:

- N/A

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
2026-03-12 19:24:38 -03:00
Conrad Irwin
b32067d248
GPUI updates (#51415)
- **Fix race condition in test_collaborating_with_completion**
- **WIP: Integrate scheduler crate into GPUI TestDispatcher**
- **WIP: scheduler integration debugging**
- **Fix formatting**
- **Unify RunnableMeta and add execution tracking to TestScheduler**
- **Remove unused execution tracking from TestScheduler and
TestDispatcher**
- **Add is_ready() to GPUI Task for API parity with scheduler**
- **Eliminate RunnableVariant::Compat - all runnables now have source
location metadata**
- **Update integration plans to reflect completed phases**
- **Simplify RunnableVariant to type alias**
- **Delegate TestDispatcher task queues to TestScheduler (Phase 2b)**
- **Remove waiting_hint/waiting_backtrace and debug logging from
TestDispatcher**
- **Remove wrapper methods from TestDispatcher - access scheduler()
directly**
- **Update integration plan with complete state and instructions for
full scheduler migration**
- **Use scheduler's native timer() and simplify TestDispatcher**
- **Fix rng() usage to lock mutex, update plan with SharedRng wrapper**
- **Add SharedRng wrapper for ergonomic random number generation**
- **Update plan: mark Phase 1 (SharedRng) as complete**
- **Update scheduler integration plan with Phase 2 investigation notes**
- **Phase 3: Delegate simulate_random_delay to
scheduler.yield_random()**
- **Phase 4: Remove TaskLabel**
- **Phase 5 (WIP): Simplify block_internal and remove unparkers**
- **Phase 5 Complete: Scheduler integration finished**
- **Update integration plan with code review findings**
- **Phase 6 & 7: Restore realtime priority support and delete dead
code**
- **Add TestApp and TestAppWindow for cleaner GPUI testing**
- **Fix formatting across the branch**
- **Fix Linux build: add explicit type annotation and rename
probability() to weight()**
- **Add TestApp and TestAppWindow for cleaner GPUI testing**
- **Rename TestAppWindow to TestWindow, internal TestWindow to
TestPlatformWindow**
- **Remove unused RunnableVariant imports on Linux**
- **Add STATUS.md for next agent**
- **Run cargo fmt**
- **Use per-app element arena only and scope test draws**
- **Fix collab tests for scheduler timing and ordering**
- **Store element arena on App and route element allocations through
draw scope**
- **Fix TestScheduler lock ordering between rng and state**
- **Fix inlay hints test by explicitly triggering refresh after viewport
setup**
- **Add scheduler integration regression risk analysis doc**
- **Fix tests: avoid caching Entity in global OnceLock for Codestral API
key**
- **Document learned weak point: global cached Entity handles break
across App contexts**
- **Add scheduler regression test for block_with_timeout continuation
and explicit time advancement**
- **Document TestScheduler timeout tick budget behavior and explicit
time advancement guidance**
- **Add test asserting realtime priority spawns panic under
TestDispatcher**
- **Document realtime priority determinism contract in tests**
- **Remove realtime priority until we have a concrete use case (cc
@localcc)**
- **Update STATUS for scheduler integration decisions and realtime
priority removal**
- **Fix prettier docs and clippy in scheduler tests**
- **Remove unused imports from Windows dispatcher**
- **WIP: scheduler integration debugging + agent terminal diagnostics**
- **Update scheduler integration status**
- **Remove temporary planning docs, consolidate into scheduler
integration doc**
- **Remove unrelated changes from scheduler integration**
- **Fix clippy errors**
- **Add STATUS.md with debugging instructions for Linux/Windows hang**
- **WIP: local changes needed by ex**
- **Add pointer capture API for stable drag handling**
- **Add pointer capture API for stable drag handling**
- **chore: update generated cargo manifests**
- **gpui: Expose ShapedLine::width() for pen advancement**
- **Remove git2 usage from util test.rs**
- **Store DiagnosticQuad bounds in logical Pixels**
- **WIP: executor and test_app changes for scheduler integration**
- **Expose font APIs publicly**
- **gpui: add typed diagnostics and record_diagnostic API**
- **WIP: gpui test window diagnostics changes**
- **Add LineCacheKey trait and shape_line_cached API for
content-addressable shaping**
- **Fix RenderGlyphParams field additions for Ex compatibility**
- **Add doc comment for recommended_rendering_mode, fix formatting**
- **Add scheduler_executor() method for Ex compatibility**
- **Fix TestWindow -> TestPlatformWindow in test_context.rs**
- **Add headless metal renderer and window focus improvements**
- **Fix double borrow in TestWindow::simulate_resize**
- **Fix cbindgen panic: remove default type parameter from
Diagnostic<T>**
- **Implement AppContext for HeadlessMetalAppContext**
- **Missing trait impls**
- **Add ShapedLine::split_at and eliminate re-shaping in soft wraps**
- **Add handoff doc for platform-neutral-tests merge**
- **Remove ex-only test infrastructure before merging main**
- **Add cross-platform HeadlessAppContext with pluggable text system**
- **Export platform_text_system() from gpui_windows for cross-platform
tests**
- **Restore TestApp/TestAppWindow with pluggable text system support**
- **Add TestApp::open_window_sized for tests that need specific window
dimensions**
- **Fix some warnings**
- **Fixes**
- **Add a platform-neutral headless renderer interface**
- **Synchronize Managed texture before CPU readback on discrete GPUs**
- **Allow creating TestDispatcher with custom scheduler**

Release Notes:

- N/A

---------

Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: John Tur <john-tur@outlook.com>
Co-authored-by: Agus Zubiaga <agus@zed.dev>
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2026-03-12 22:15:12 +00:00
franciskafyi
ad1e82e9e2
docs: Improve feature process (#51425)
Small tweaks to our feature doc and a link out to more about how the
Feature Request process works.

Release Notes:

- N/A
2026-03-13 00:36:21 +03:00
Ben Kunkle
df8bafdccf
ep: Avoid including collaborator edits in edit history sent to model (#51343)
Closes #ISSUE

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-03-12 16:56:37 -04:00
Danilo Leal
5586fbf288
agent_ui: Add UI refinements to the sidebar and archive view (#51419)
Adds a loading state to the archive view and a couple of other tiny UI
tweaks to the thread item and such.

Release Notes:

- N/A
2026-03-12 17:41:56 -03:00
Tommy Han
ec2659a095
Add hotkeys and actions for toggle light and dark theme (#49027)
Mentioned in #47258 

Release Notes:

- Added hotkey options and actions for toggling light and dark theme.
- Add default keymap as `cmd/ctrl+k cmd/ctrl+shift+t`
2026-03-12 21:35:42 +02:00
Om Chillure
7a61562845
Fix title/camelCase commands stripping leading indentation Fixes (#50523)
Fixes: #48945

Description:

The convert:to-title-case, convert:to-upper-camel-case, and
convert:to-lower-camel-case editor commands were stripping leading
whitespace from each line of a multi-line selection.

Root cause: The conversion functions split on whitespace using
.split_whitespace() and then joined the resulting words, discarding any
leading spaces/tabs before the first word on each line.

Fix: Each line now preserves its leading whitespace by capturing and
re-prepending it before applying the case conversion.

Tests: Added test cases covering multi-line selections with indentation
for all three commands.

Video : 


[bug1fix.webm](https://github.com/user-attachments/assets/f4d25c55-bc6d-44e6-a989-7d9b4bc59ac9)

Release Notes:

- Fixed trailing whitespace handling on text case changes
2026-03-12 19:33:48 +00:00
Conrad Irwin
bc9a3e53af
Tidy up DiffStat (#51411)
Release Notes:

- Tweaked the git diff status to render + and - using the font instead
of icons.
2026-03-12 13:07:39 -06:00
Skanda Bhat
ac16a7891f
vim: Fix visual mode entry at line end near trailing newline (#50709)
In Helix, selecting a line with `x` creates a selection from column 0 of
the current row to column 0 of the next row. The default
`InsertEndOfLine` uses the selection head (which is on the next row) to
find the line end, placing the cursor on the wrong line. 

This commit introduces a new `HelixInsertEndOfLine`, mapped by default
to `shift-a` when Helix mode is enabled, that moves left from the head
first to land on the correct line.

Release Notes:

- Fixed `shift-a` in Helix select mode placing the cursor on the wrong
line after selecting with `x`

---------

Co-authored-by: SkandaBhat <9384046+SkandaBhat@users.noreply.github.com>
Co-authored-by: dino <dinojoaocosta@gmail.com>
2026-03-12 19:05:28 +00:00
Katie Geer
329df2cecd
docs: Add voice and tone guidance to agent rules (#51408)
Adding more tone guidance to docs' agents.md file

Release Notes:

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

---------

Co-authored-by: María Craig <maria@zed.dev>
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-03-12 11:34:40 -07:00
Mikayla Maki
17adc40d61
Implement sidebar rendering of the configured worktrees (#51342)
Implements worktree support for the agent panel sidebar

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A
2026-03-12 17:53:38 +00:00
Finn Evers
dcab464608
editor: Fix gutter hitbox hover check (#51405)
The gutter hitbox would previously check the hover using the position,
ignoring any occluding hitboxes rendered above it.

This would then trigger the crease toggles to show which should not
happen in that case, since the gutter was not really hovered.

Release Notes:

- Fixed an issue where the crease toggles in the gutter would sometimes
show when interacting with a popover present over the editor gutter.
2026-03-12 17:49:36 +00:00
AdamJedl
a8d0cdb559
project_panel: Improve wording around file deletion (#43801)
Make it clear in the UI that "Delete" of file or folder is permanent
action.
For example in windows explorer and VS Code "Delete" means move to
trash.

Or maybe also remove permanent delete from the context menu completely
and allow it only through keyboard shortcut, like it's in Windows
Explorer, VS Code and KDE Dolphin file manager.

Release Notes:

- Improved wording within file deletion prompts in the projetct panel.

---------

Co-authored-by: MrSubidubi <finn@zed.dev>
2026-03-12 18:15:17 +01:00
Lee ByeongJun
4bd1a090d9
editor: Fix bracket colorization with folds and large functions (#51108)
Closes #47846

`visible_excerpts` computed the visible buffer range by adding display
line count directly to the buffer start row:

```rust
// Before
multi_buffer_visible_start + Point::new(visible_line_count, 0)
```
This ignores folds entirely. When a 700-line function is folded into one
display line, content after the fold is visible on screen but falls
outside the computed buffer range, so its brackets are never colorized.

The fix converts through display coordinates so the fold/wrap layers are
respected:

```rust
// After
let display_end = DisplayPoint::new(display_start.row + visible_line_count, 0);
let multi_buffer_visible_end = display_end.to_point(&display_snapshot);
```

### Results

**Before Fix**
<img width="852" height="778" alt="스크린샷 2026-03-10 오후 8 29 10"
src="https://github.com/user-attachments/assets/a0d2d81f-a8b2-4cf4-b1f3-cf5f8288a696"
/>

**After Fix**
<img width="1031" height="794" alt="스크린샷 2026-03-10 오후 8 32 27"
src="https://github.com/user-attachments/assets/2b0496b1-8302-4248-b73a-c31f5d0b0c4b"
/>

Before you mark this PR as ready for review, make sure that you have:
- [X] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Fixed bracket colorization not working for content after folded
regions and for functions with large bodies.

---------

Co-authored-by: Kirill Bulatov <kirill@zed.dev>
2026-03-12 17:09:23 +00:00
Anikesh kumar
86b5e92108
docs: Fix incorrect binary name for visual_test_runner (#51153)
Fix binary name in macOS's development guide.

Closes #51151

Release Notes:

- N/A
2026-03-12 17:05:56 +00:00
Danilo Leal
2ddb1e6c4d
agent_ui: Add archive view to the sidebar (#51336)
This PR adds a button to the bottom of the sidebar that opens the
archive view, which at the moment, only shows the same, uncategorized
thread list available in the regular agent panel's history view.

Release Notes:

- N/A

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com>
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-03-12 14:05:30 -03:00
Kunall Banerjee
edc8255da6
docs: Add Vue language server configuration (#51356)
Follow-up to https://github.com/zed-extensions/vue/pull/87.

Release Notes:

- N/A
2026-03-12 16:30:21 +00:00
Viraj Bhartiya
4842e095d9
editor: Skip stop_at_indent for single-line editors (#50681)
In single-line editors like the Find bar, MoveToBeginningOfLine with
stop_at_indent should go directly to column 0 instead of stopping at the
indentation level.

Closes #50634

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zedindustries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Fixed `MoveToBeginningOfLine` stopping at indentation in single-line
editors like the Find bar instead of moving to column 0.
2026-03-12 18:28:21 +02:00
João Soares
7b69324856
Truncate long diagnostic messages in the status bar (#51031)
Closes #50186

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

## Screenshots:
### Before:
<img width="2543" height="39" alt="image"
src="https://github.com/user-attachments/assets/5e9fb7c5-0ba6-44b5-a0f6-1f63b35550f6"
/>

### After:
<img width="1165" height="581" alt="image"
src="https://github.com/user-attachments/assets/903bc637-7d38-48c5-9207-30e12eaa40de"
/>

Release Notes:

- Fixed long diagnostic messages in the status bar pushing right-side
buttons (terminal, agent, etc.) off screen
2026-03-12 18:25:52 +02:00
Smit Barmase
8e78b9fa97
Fix window drags when dragging button/input on titlebar in macOS (#51400)
Closes https://github.com/zed-industries/zed/issues/27500

This PR fixes an issue on macOS where dragging title bar buttons and
other UI elements would drag the window instead of no-op, like in native
Mac apps. That made interactions like selecting text with the mouse
impossible in those areas, including the title input in Rules Library.

We don't want to handle this at GPUI level, since you might still want
this dragging behavior while having no native titlebar for some apps,
and without implementing your own handler. So, we just handle this for
Zed.

On macOS, we now set `is_movable: false` on all windows, which disables
that drag-anything behavior and relies on the native window drag handler
for window dragging instead.

This also meant implementing a platform title bar for the sidebar in
Rules Library, since dragging there was previously handled by the
`is_movable` behavior. We already had a full-width platform title bar
there on other platforms. On macOS, it is sidebar-only to keep existing
design.
  
Release Notes:

- N/A
2026-03-12 21:16:48 +05:30
Lukas Wirth
9ddf672d57
project: Fix semantic tokens coloring deleted diff hunks (#51386)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-03-12 14:26:16 +01:00
Danilo Leal
47cc0bac41
agent_ui: Add keybinding to cycle through new thread location options & settings (#51384)
This PR adds the ability to save in the settings whether new threads
should start in the current project or in a new Git worktree.
Additionally, it also adds a keybinding that allows cycling through the
menu options easily, with the ability to use cmd-click/enter to choose
which one is set as the default.

No release notes because this feature/settings depends on a feature flag
that isn't out yet.

Release Notes:

- N/A
2026-03-12 10:14:10 -03:00
Nelson Campos
314b7e55fb
debugger: Fix restart only working once per session (#51247)
`Session::restart_task` is set to `Some` when a restart is initiated but
never cleared back to `None`. The guard at the top of `restart()` checks
`self.restart_task.is_some()` and returns early, so only the first
restart attempt succeeds.

This primarily affects debug adapters that advertise
`supportsRestartRequest` dynamically via a `CapabilitiesEvent` after
launch, such as the Flutter debug adapter.

Related: https://github.com/zed-extensions/dart/issues/45

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
(N/A — no UI changes)

Release Notes:

- debugger: Fixed debug session restart only working once when the
adapter supports DAP restart requests.

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Anthony Eid <anthony@zed.dev>
2026-03-12 13:05:52 +00:00
Xin Zhao
e0881e38f9
python: Add label_for_symbol for ty adapter (#51355)
Ported `label_for_symbol` logic directly from the basedpyright adapter
without adjustments.

Given Python's dynamic nature, the current implementation provides
sufficient coverage. No further modifications are needed for now.

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Fixed missing syntax highlighting in symbol search when using the ty
language server.
2026-03-12 13:24:51 +01:00
Bennet Bo Fenner
d28fc4e241
agent_ui: Register native agent when creating agent panel (#51379)
This ensures that in places like the inline assist we can just rely on
it being available.

Release Notes:

- N/A
2026-03-12 11:52:29 +00:00
Bennet Bo Fenner
3bcef8b1f2
agent_ui: Rename ExternalAgent to Agent (#51377)
Name is confusing, since the `NativeAgent` variant is not an external
agent

Release Notes:

- N/A
2026-03-12 11:38:35 +00:00
Sebastian Kootz
efc6b0ce70
gpui: Add aspect-ratio builder method to Styled (#48751)
# Summary
This PR simply adds the missing `aspect_ratio` and `aspect_square`
helper functions to the `Styled` trait.

Release Notes:

- N/A

Co-authored-by: MrSubidubi <finn@zed.dev>
2026-03-12 13:36:45 +02:00
Daniel Eichman
39721045f9
Add missing ctrl-shift-g binding for editor::UndoSelection to the JetBrains/IntelliJ keymap on macOS (#51130)
## Description:

This PR adds the missing `ctrl-shift-g` binding for
editor::UndoSelection to the JetBrains/IntelliJ keymap on macOS.

## Problem

In IntelliJ IDEA, when using multiple cursors:
- ctrl+g (macOS) adds the next occurrence to the selection
- ctrl+shift+g (macOS) removes the last added occurrence from the
selection

The current Zed JetBrains keymap has `ctrl-g` for SelectNext but is
missing the corresponding `ctrl-shift-g` for undoing/removing the last
selection.

## Reference

- Press Ctrl+G (macOS) to find and select the next occurrence
[link](https://www.jetbrains.com/help/idea/multicursor.html#multiple_words)

- To remove selection from the last selected occurrence, press
Ctrl+Shift+G (macOS)
[link](https://www.jetbrains.com/help/idea/multicursor.html#multiple_words)


This change improves parity with IntelliJ for users transitioning to
Zed.


### Demo 

https://github.com/user-attachments/assets/0c7f699f-697d-4b81-a929-53f765d254d8

Closes #ISSUE




Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [X] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- JetBrains macOS bindings: added the missing `ctrl-shift-g` binding for
`editor::UndoSelection`
2026-03-12 11:25:24 +00:00
Cameron Mcloughlin
9e50ee040e
agent: Thread switcher sticky workspace header (#51372) 2026-03-12 10:54:07 +00:00
Henrique Ferreiro
1fd8ee74e2
Fix Tree-sitter link in documentation (#51370) 2026-03-12 10:48:27 +00:00
Dibash Thapa
ff89bcfca0
Fix hidden files in remote Open Folder dialog (#50846)
Fixes https://github.com/zed-industries/zed/issues/48457

Hidden files (like .config, .ssh, etc.) were not showing in the Open
Folder dialog when browsing remote servers via SSH. This was because the
`OpenPathDelegate` was not configured to show hidden files.

This fix adds .show_hidden() when creating the delegate for remote
project picker.


Release Notes:

- Fixed the hidden files not showing in remote project's open folder
action
2026-03-12 10:17:22 +00:00
Bennet Bo Fenner
eeb034c31c
agent: Fix race condition when loading threads (#51366)
This fixes a race condition that could occur when using the sidebar:
`Failed to launch: project state not found`

We were accessing/creating the project state before an await point,
meaning that we could remove the state if session/close was called in
the meantime.

- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A
2026-03-12 09:38:54 +00:00
Shashank Suresh
4d5e25f408
editor: Add line range support to editor::CopyFileLocation command (#51328)
Closes #51309

Before you mark this PR as ready for review, make sure that you have:
- [X] Added a solid test coverage and/or screenshots from doing manual
testing
- [X] Done a self-review taking into account security and performance
aspects
- [X] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Improved `editor::CopyFileLocation` command to include the full
selected line range (e.g. 'src/main.rs:12-18') when multiple lines are
selected, rather than only the first line number.
2026-03-12 09:22:55 +00:00
Bennet Bo Fenner
5ebdbe2aac
agent_ui: No global thread history (#51362)
Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A
2026-03-12 09:22:05 +00:00
Josh Robson Chase
81da953acf
helix: Always offset cursor on selection (#46311)
https://github.com/zed-industries/zed/pull/42837 added the
`cursor_offset_on_selection` field, which displays the cursor *after*
the end of the selection unless a vim visual mode is enabled, in which
case it gets displayed *at* the end of the selection.

However, the real helix is effectively *always* in select mode, and will
always display the cursor at the end of the selection, whether that
selection is made via its visual mode, a movement key, or with the
mouse.

This makes it so that the helix mode setting is taken into account
regardless of the visual-ness of the vim mode in the `sync_vim_settings`
method.

I also considered simply moving `Mode::HelixNormal` up to the `true` arm
of the match in the `is_visual` method since helix is kinda *always* in
visual mode, but I figured that could have some unintended consequences
and chose to err on the side of caution.

Possibly related to #20121

Closes #46998

Release Notes:

- Fixed the cursor offset in non-visual helix selections

Co-authored-by: Nils Koch <mail@nilskch.dev>
2026-03-12 09:07:58 +00:00
Smit Barmase
f627c43ea1
languages: Prevent bsn macro from injecting rust layer (#51353)
Closes https://github.com/zed-industries/zed/issues/51240

We don’t parse bsn as embedded Rust anymore. We expect bsn to get its
own Tree-sitter implementation in the future, which should improve this.
This fixes broken syntax highlighting for string literals. See line 66
in the comparison below.

<img width="2560" height="1440" alt="image"
src="https://github.com/user-attachments/assets/230ae057-f315-4290-8f51-bcd21e6557d7"
/>

Release Notes:

- N/A

Co-authored-by: Christopher Biscardi <chris@christopherbiscardi.com>
2026-03-12 11:49:32 +05:30
Marshall Bowers
6034961499
ai_onboarding: Add student plan examples to component preview (#51338)
This PR adds examples for the student plan to the component preview.

Release Notes:

- N/A
2026-03-11 23:21:57 +00:00
Marshall Bowers
bb4f771f0e
client: Populate plans for organizations (#51334)
This PR makes it so we populate the `plans_by_organization` collection
with the plans returned from the server.

Release Notes:

- N/A
2026-03-11 22:22:17 +00:00
Marshall Bowers
becb24cd19
cloud_api_types: Add ZedBusiness variant to Plan (#51329)
This PR adds a `ZedBusiness` variant to the `Plan` enum.

Closes CLO-480.

Release Notes:

- N/A
2026-03-11 21:28:29 +00:00
Danilo Leal
3dff4c5787
agent_ui: Add timestamp to thread item in the sidebar (#51327)
Release Notes:

- N/A
2026-03-11 18:15:43 -03:00