03a3ece
Remove unnecessary starts_with checks
Click to expand commit body
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Bennet Bo Fenner and Marshall Bowers created
03a3ece
Remove unnecessary starts_with checks
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Bennet Bo Fenner and Marshall Bowers created
ff8c0c3
Merge branch 'main' into bedrock-thinking-toggle-integration
Shardul Vaidya created
231b0cc
glsl: Add `task` and `mesh` path suffixes (#50605)
The GLSL language extension was missing the "task" and "mesh" path suffixes for task and mesh shaders. "task" and "mesh" are the official suffixes used in glslang. Release Notes: - N/A Co-authored-by: MrSubidubi <finn@zed.dev>
rcmz and MrSubidubi created
bb6a6e0
ci: Fix jq command (#51510)
Sigh.. The missing flag caused the wrong output to be used, resulting in an error in the process. Release Notes: - N/A
Finn Evers created
ccb2674
extension_ci: Add infrastructure for this repository (#51493)
This will allow us to also use the workflows for this repository, which will especially come in handy once we revisit provider extensions. Not perfect, as we will trigger some failed workflows for extensions that were just added Release Notes: - N/A
Finn Evers created
4e8937b
ui: Refactor the `Button` component icon methods (#51496)
Previously, if you wanted to have a button that contains icons on both
edges, you'd need to use a `ButtonLike` component, which takes any
children. Meanwhile, the `Button` would only take one icon, where you
could control its position through the `IconPosition` enum. This has
always felt unnecessarily limiting. So, this PR removes this limitation
by adding two new methods to the button: `start_icon` and `end_icon`.
In the meantime, I have also been bothered by the unnecessary
indirection in the `IconButton` due to the existence of the `ButtonIcon`
component. So I figured I could also completely eliminate that by adding
some of its methods directly to the `IconButton` and in the Button, just
using a regular `Icon` component.
---
## Before
```rust
Button::new("id", "Label")
.icon(IconName::Plus)
.icon_position(IconPosition::Start)
.icon_size(IconSize::Small)
.icon_color(Color::Muted)
```
## After
```rust
Button::new("id", "Label")
.start_icon(Icon::new(IconName::Check))
.end_icon(Icon::new(IconName::ChevronDown).size(IconSize::XSmall))
```
This should have no visual impact to the UI.
Release Notes:
- N/A
Danilo Leal created
a623dc3
agent_ui: Insert branch diff crease when clicking on menu item (#51509)
Follow up to https://github.com/zed-industries/zed/pull/51487 The PR above added the item to the menu, and this one makes the menu item actually insert a mention crease with the branch diff. That was missing in the previous one. Release Notes: - N/A
Danilo Leal created
f04b4e0
file_finder: Put collab channel inclusion behind a setting (#51505)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
e29206b
Do not overly eagerly invalidate the runnables (#51500)
Follow-up of https://github.com/zed-industries/zed/pull/51299 Release Notes: - N/A
Kirill Bulatov created
e6f571c
gpui: Fix busyloop on X disconnect (#41986)
When the connection to X is broken zed will go into an infinite loop and eat up 100% (of one core) of CPU; this change causes it to exit with an error instead. I encountered this behavior while running zed in [Xephyr](https://freedesktop.org/wiki/Software/Xephyr/) for testing, though I do sometimes terminate my X server as a way to log out or attempt to recover from a (very) broken state, and I appreciate a graceful exit in those situations! Exiting in case of X server disconnect is common practice in my observations, likely as the difficulty of recreating state stored server-side outweighs the potential utility in attempting to recover (if "reconnecting" to an X server is ever desired in regular usage, [Xpra](https://xpra.org/index.html) might be able to help!). Release Notes: - N/A
kitt created
2c0d6c0
project_panel: Add horizontal scroll setting (#51143)
This PR introduces the `project_panel.scrollbar.horizontal_scroll` setting to allow users to toggle the horizontal scroll bar in the project panel. This was Zed's design before PR #18513, and the default behavior of VSCode (`workbench.list.horizontalScrolling`). https://github.com/user-attachments/assets/f633f4e4-a585-4494-8f48-df77c6aca418 ## Rationale Zed's design used to be the same as the default behavior of VSCode. I.e., no horizontal scrolling, and the view is always snapped to the left, with long file names clipped of. If you want to see the content that is out-of-frame, you'll need to drag the handle and expand the project panel. This could be problematic, especially for large repos with multiple levels of nested directories, as pointed out by issues #5550 and #7001. <img width="1398" height="992" alt="image" src="https://github.com/user-attachments/assets/d86563f2-0f06-4e9e-818c-155ac45f0f56" />\ *VSCode's default setup, for reference.* Then came PR #18513, which added horizontal scroll and addressed this pain point, but users didn't have a choice. They're stuck with horizontal scrolling always turned on. I, for instance, personally prefer the old, VSCode-default behavior, for most projects I open are small and don't need horizontal scrolling in the project panel. With horizontal scrolling always turned on, I find it annoying to have my project panel view accidentally scrolled to the middle, and I'll have to grab my mouse and scroll it back. It's also visually redundant. Thus, why not add an option like VSCode's `workbench.list.horizontalScrolling` and let users choose? I'd love to be able to, say, set a per-project override for the projects that need horizontal scrolling, while having it disabled by default. ## Extra Notes - I was originally thinking about using `ScrollbarAxes` from `src/editor_settings.rs` and make the option `project_panel.scrollbar.axes.horizontal` similar to the global editor scrollbar settings, but this option is specific to the project panel and it doesn't quite make sense to allow disabling vertical scrolling on the project panel, so I added a standalone option for it instead, similar to VSCode's `workbench.list.horizontalScrolling`. - I went the conservative route and set horizontal scrolling to enabled (current behavior) by default. Imo it might make more sense to disable it by default instead, similar to VSCode, but I'll leave this for the Zed team to decide. - I named it `horizontal_scroll` instead of `horizontal_scrolling` to be consistent with the adjacent setting `sticky_scroll`. - As for tests, I don't see tests for the scrollbar, so I didn't add any. I'd be glad to update the PR if anything is not inline with the project's requirements or conventions. --- Release Notes: - Added `project_panel.scrollbar.horizontal_scroll` setting to allow toggling horizontal scrolling in the project panel Signed-off-by: k4yt3x <i@k4yt3x.com>
K4YT3X created
bde0834
git: Log some more information when opening a git repository and when `git show` fails (#51495)
Release Notes: - N/A
Cole Miller created
697e5be
git: Fix commit message generation in untrusted projects and block external diff (#51323)
When on a untrusted project, if one was to try and use the commit generation functionality, the command would fail because of the `-c diff.external` configuration provided in `GitBinary::build_command`, as git would interpret this as `""` and try to run that command. This `-c diff.external` is a good safeguard to have on untrusted repositories because it prevents random commands, configured in `.git/config` from being run. For example, if one uses `git config diff.external "touch bananas.txt"` and then run `git diff`, a new `bananas.txt` file would be created. However, it was still possible to bypass this safeguard using the following strategy: 1. Specify a custom diff for a specific file format. For example, for markdown files, with `printf '*.md diff=pwned\n' > .gitattributes` 2. Update the command run by the `pwned` diff, for example, `git config diff.pwned.command "touch bananas.txt"` 3. Open Zed and attempt to generate a commit message in an untrusted repository and check that a new `bananas.txt` file was created This is only prevented by using the `--no-ext-diff` flag on the `diff` command, so a new `GitBinary::build_diff_command` has been introduced which simply wraps `GitBinary::build_command` and adds the `--no-ext-diff` flag, if necessary. As a side-effect, this also makes it so that generating a commit message in an untrusted repository works again, which was accidentally broken on https://github.com/zed-industries/zed/pull/50649 . 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: - Fixed commit message generation in untrusted repositories
Dino created
3e7f2e3
agent_ui: Add branch diff menu item to context menu (#51487)
This PR adds the recently introduced "branch diff" mention option to the "Add Context" menu in the message editor: <img width="450" height="582" alt="Screenshot 2026-03-13 at 9 58@2x" src="https://github.com/user-attachments/assets/1f5102e7-9018-4a5b-992d-43befa55dcbe" /> Release Notes: - N/A
Danilo Leal created
b0cc006
ep: Error indication when Mercury free tier limit reached (#51447)
Release Notes: - Added an error indicator in the edit prediction menu with an error message when the free tier limit is exceeded
Ben Kunkle created
7d566e0
extension_ci: Add initial support for extensions in a subdirectory (#51173)
This wil help with releases for extensions living this repository, which will become more relevant once agent provider extensions are back on the table. Release Notes: - N/A
Finn Evers created
46f16c7
docs: Introduce fresh documentation for snippets in extensions (#50874)
Add documentation for snippets in extensions. Feel free to change the wording or add more content. 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 --------- Co-authored-by: Finn Evers <finn.evers@outlook.de>
LBF38 and Finn Evers created
0674324
agent: Fix session close capability check (#51479)
Release Notes: - agent: Fixed an issue where external agents would return an error because unsupported ACP method was called
Bennet Bo Fenner created
6fb9680
agent_ui: Wire up archive entry loading (#51475)
Release Notes: - N/A --------- Co-authored-by: cameron <cameron.studdstreet@gmail.com> Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Ben Brandt , cameron , and Bennet Bo Fenner created
b77c444
editor: Remove unnecessary clone (#51470)
Release Notes: - N/A
Finn Evers created
5ab2d97
Revert "project: Support resolving paths with worktree names prefixed" (#51474)
Reverts zed-industries/zed#50692 The test here doesn't pass, unsure how this managed to even get merged
Lukas Wirth created
3bc4b58
editor: Replace `BreadcrumbText` with `HighlightedText` (#51083)
Remove the BreadcrumbText struct from workspace and use the existing HighlightedText struct from the language crate instead. The per-segment font field is replaced by returning an optional Font alongside the segments from the breadcrumbs() method, since the font was always uniform across all segments of a given item. Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
e4b6286
file_finder: Show collab channels in file search (#51120)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
1285253
project: Support resolving paths with worktree names prefixed (#50692)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
95a9340
lsp: Fix LSP restart breaking semantic token highlighting (#51452)
Closes #51450 When you restart the lsp, it does not sufficiently clear cached data regarding the semantic tokens, if using semantic_tokens = "full", this would mean that you would have no syntax highlighting. also, toggling on and off semantic tokens in the menu would have no effect. this change properly clears the cached state and things work again! Before: https://github.com/user-attachments/assets/67ac1be1-ae3d-4c84-afbc-056fd81f63f0 After: https://github.com/user-attachments/assets/644f8297-8003-4d74-b962-81ba9bb8274c You might notice that the syntax highlighting is quite spare in the videos, especially compared to the non semantic token based highlighting, and you would be correct! but thats just how it is with `semantic_tokens: "full"`, other editors, like neovim, provide basic syntax highlighting that zed doesn't (because it doesn't need to with treesitter usually, but here treesitter is disabled), however if we turn off that syntax highlighting we can see that neovim actually matches zed here: <img width="847" height="485" alt="Screenshot 2026-03-12 at 11 33 19 PM" src="https://github.com/user-attachments/assets/7f90789c-dac3-41bf-9d19-640c6c7b1144" /> 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: - lsp: Fixed restarting the LSP breaking semantic token highlighting.
Finn Eitreim created
07cfa81
Grace period for inaccessible workspaces (#50829)
Closes #49603 Release Notes: - Added a 7-day grace period to prevent recently used local workspaces from being deleted when their paths are temporarily unavailable. Session workspaces are always preserved on restart.
Oussama ELJabbari created
7eb009e
editor: Make underscores and newlines subword boundaries (#50552)
Updates #21054 Authored-By: @ngauder Release Notes: - Added _ and newline to subword boundaries --------- Co-authored-by: Nikolas Gauder <nikolas.gauder@tum.de>
Conrad Irwin and Nikolas Gauder created
b8eea31
agent: Add tooltip to diff stats (#51448)
Cameron Mcloughlin created
ea5c58c
ui: Add new component for thread sidebar panel toggle (#51441)
Danilo Leal created
8e04523
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.
João Soares created
7aba1f9
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
Conrad Irwin created
7b9afc8
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.
Finn Eitreim created
d4bb640
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
Danilo Leal created
b15a8c1
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
Justin Su created
a07d0f4
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
Marshall Bowers created
9424836
Make dispatcher on TestApp public again (#51431)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Conrad Irwin created
cc09611
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
Amaan created
5e60aa9
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
Mikayla Maki created
dd0e51e
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>
Bennet Bo Fenner and Danilo Leal created
b32067d
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>
Conrad Irwin , Nathan Sobo , John Tur , Agus Zubiaga , and Antonio Scandurra created
ad1e82e
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
franciskafyi created
df8bafd
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 ...
Ben Kunkle created
5586fbf
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
Danilo Leal created
ec2659a
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`
Tommy Han created
7a61562
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
Om Chillure created
bc9a3e5
Tidy up DiffStat (#51411)
Release Notes: - Tweaked the git diff status to render + and - using the font instead of icons.
Conrad Irwin created
ac16a78
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>
Skanda Bhat , SkandaBhat , and dino created
329df2c
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>
Katie Geer , María Craig , and Zed Zippy created
17adc40
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
Mikayla Maki created
dcab464
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.
Finn Evers created