ac209f1
zed 0.177.7
Joseph T. Lyons created
ac209f1
zed 0.177.7
Joseph T. Lyons created
44a43c7
Address out-of-bounds panic in inline completion button (cherry-pick #26394) (#26440)
Cherry-picked Address out-of-bounds panic in inline completion button (#26394) Closes #26350 Release Notes: - Git Beta: Fixed a panic that could occur when using the project diff Co-authored-by: Cole Miller <cole@zed.dev>
gcp-cherry-pick-bot[bot] and Cole Miller created
74c1ec5
Show a disabled stage all button for no entries (cherry-pick #26436) (#26437)
Cherry-picked Show a disabled stage all button for no entries (#26436) Closes #ISSUE Release Notes: - N/A Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
gcp-cherry-pick-bot[bot] and Conrad Irwin created
61187a9
Fix enter binding in git panel's commit editor on Linux (cherry-pick #26427) (#26438)
Cherry-picked Fix enter binding in git panel's commit editor on Linux (#26427) Closes #26110 Release Notes: - Git Beta: fixed being unable to enter newline in the git panel's commit editor on Linux Co-authored-by: Cole Miller <cole@zed.dev>
gcp-cherry-pick-bot[bot] and Cole Miller created
2da767d
Go back to "create branch" in the list (#26433)
Closes #ISSUE Release Notes: - N/A
Conrad Irwin created
58bb9f3
Git commit modal branch list (cherry-pick #26417) (#26435)
Cherry-picked Git commit modal branch list (#26417) Closes #26273 Release Notes: - git: Fixes opening the branch selector in the commit modal with cmd-option-b - git: Truncates the branch selector in the commit modal Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
gcp-cherry-pick-bot[bot] and Conrad Irwin created
8c3585d
git_ui: Show more information in the branch picker (cherry-pick #25359) (#26432)
Cherry-picked git_ui: Show more information in the branch picker (#25359) Final product:  Release Notes: - Added more information about Git branches to the branch picker. --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com> Co-authored-by: Marshall Bowers <git@maxdeviant.com> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com> Co-authored-by: Angelk90 <20476002+Angelk90@users.noreply.github.com> Co-authored-by: Danilo Leal <daniloleal09@gmail.com> Co-authored-by: Marshall Bowers <git@maxdeviant.com> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
gcp-cherry-pick-bot[bot] , Angelk90 , Danilo Leal , Marshall Bowers , and Conrad Irwin created
1365247
Use current upstream for permalink to line (cherry-pick #26398) (#26429)
Cherry-picked Use current upstream for permalink to line (#26398) Release Notes: - git: Copy permalink to line now uses the upstream of the current branch instead of "origin" Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
gcp-cherry-pick-bot[bot] and Conrad Irwin created
f4028ef
Unwind deprecated permalinks code (cherry-pick #26395) (#26426)
Cherry-picked Unwind deprecated permalinks code (#26395) Release Notes: - N/A Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
gcp-cherry-pick-bot[bot] and Conrad Irwin created
7fa916a
Fix race conditions in updating buffer diffs on git changes (#26409)
Release Notes: - N/A --------- Co-authored-by: Cole Miller <m@cole-miller.net>
Max Brunsfeld and Cole Miller created
198ecff
Fix panic opening branch picker in commit modal (cherry-pick #26407) (#26413)
Cherry-picked Fix panic opening branch picker in commit modal (#26407) Closes #ISSUE Release Notes: - N/A Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
gcp-cherry-pick-bot[bot] and Conrad Irwin created
a4b9b5d
Git commit modal command (cherry-pick #26405) (#26411)
Cherry-picked Git commit modal command (#26405) Fix KeyBinding::for_action() to use the active focus handle instead of what was rendered last. This makes the UI consistently chose the cmd-escape binding for close (because escape in the editor is editor::Cancel?), so force it to be "escape" Release Notes: - git: Fixed escape tooltip in commit modal Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
gcp-cherry-pick-bot[bot] and Conrad Irwin created
633df53
Add a missing notify when updating the project diff (cherry-pick #26396) (#26400)
Cherry-picked Add a missing notify when updating the project diff (#26396) Closes #ISSUE Release Notes: - Git Beta: Fixed a bug that caused the project diff not to update in response to git-related events Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: Cole Miller <cole@zed.dev> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
gcp-cherry-pick-bot[bot] , Cole Miller , and Max Brunsfeld created
790fb9e
git_ui: Design Polish (#26361)
Polish PR - [ ] Horizontal scrollbar for git panel - [ ] Allow shift clicking a checkbox in any section to stage the whole section - [ ] Clean up design of no changes/pending push state in panel - [x] Ensure checkbox placeholder dot is centered in the checkbox - [x] Improve spacing between elements in git panel entries - [x] Update git branch icon to match branch selector text when disabled - [x] Truncate last commit message less aggressively in panel - [x] Clean up new panel header design - [x] Remove `_background` version control keys (backgrounds are derived from the foreground colors) Before:  After:  Before:  After:  Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Cole Miller <cole@zed.dev> Co-authored-by: Cole Miller <m@cole-miller.net> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Nate Butler , Cole Miller , Cole Miller , and Max Brunsfeld created
17c0113
Remove GitUiFeatureFlag and enable panel unconditionally (cherry-pick #26386) (#26392)
Cherry-picked Remove GitUiFeatureFlag and enable panel unconditionally (#26386) Release Notes: - git: Enable for everyone Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
gcp-cherry-pick-bot[bot] and Conrad Irwin created
cb8d667
Scroll project diff into view always (cherry-pick #26379) (#26387)
Cherry-picked Scroll project diff into view always (#26379) Closes #ISSUE Release Notes: - N/A Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
gcp-cherry-pick-bot[bot] and Conrad Irwin created
6d79434
Git keyboard shortcuts (#26374)
Closes #26040 Release Notes: - git: Add keyboard shortcuts (when the panel is open) for fetch `ctrl-g ctrl-g`, pull `ctrl-g down`, push `ctrl-g up`, force-push `ctrl-g shift-up`, open diff `ctrl-g d`
Conrad Irwin created
d474438
Restore git panel header (cherry-pick #26354) (#26380)
Cherry-picked Restore git panel header (#26354) Let's play around with it. This should not be added to tomorrow's preview. Release Notes: - Git Beta: Added a panel header with an open diff and stage/unstage all buttons. Co-authored-by: Mikayla Maki <mikayla@zed.dev>
gcp-cherry-pick-bot[bot] and Mikayla Maki created
c21ab40
git: Pass project environment to git binary invocations (cherry-pick #26301) (#26373)
Cherry-picked git: Pass project environment to git binary invocations (#26301) Closes #26213 Release Notes: - Git Beta: pass down environment variables from project to git operations Co-authored-by: Cole Miller <cole@zed.dev>
gcp-cherry-pick-bot[bot] and Cole Miller created
4b24ef3
zed 0.177.6
Joseph T. Lyons created
1d7ffff
Remove redundant checks in `do_stage_or_unstage_and_next` (#26364)
Release Notes: - N/A
João Marcos created
44c93b0
git_ui: Branch picker improvements (cherry-pick #26287) (#26371)
Cherry-picked git_ui: Branch picker improvements (#26287) - Truncate branch names based on the width of the picker - Use a footer for "Create branch" instead of a picker entry Still to do: - [x] Select the footer button when no matches and run the create logic on `enter` - [x] Make it possible to quickly select the footer button from the keyboard when there are matches Release Notes: - Git Beta: Removed limitation that made it impossible to create a branch from the branch picker when it too closely resembled an existing branch name Co-authored-by: Cole Miller <cole@zed.dev>
gcp-cherry-pick-bot[bot] and Cole Miller created
4144a2e
git: Disable commit message generation when commit not possible (#26329)
## Issue: - `Generate Commit Message` will generate a random message if there are no changes. <img width="614" alt="image" src="https://github.com/user-attachments/assets/c16cadac-01af-47c0-a2db-a5bbf62f84bb" /> ## After Fixed: - `Generate Commit Message` will be disabled if commit is not possible <img width="610" alt="image" src="https://github.com/user-attachments/assets/5ea9ca70-6fa3-4144-ab4e-be7a986d5496" /> ## Release Notes: - Fixed: Disable commit message generation when commit is not possible
Richard Hao created
1eff87c
Follow-up fixes for recent multi buffer optimizations (#26345)
I realized that the optimization broke multi buffer syncing after buffer reparses. Release Notes: - N/A
Max Brunsfeld created
2599713
git: Refine diff hunk controls visuals (#26317)
You may need to zoom in hard to see this 😅 but the main addition of this PR is just ensuring there's also horizontal border instead of just on the bottom. Also added some box-shadow here to make it pop out of the diff a bit more. | Before | After | |--------|--------| |  |  | Release Notes: - N/A
Danilo Leal created
ea2df99
Fix performance bottlenecks when multi buffers have huge numbers of buffers (#26308)
This is motivated by trying to make the Project Diff view usable with huge Git change sets. Release Notes: - Improved performance of rendering multibuffers with very large numbers of buffers
Max Brunsfeld created
6c574fa
Git UI papercuts (#26316)
Release Notes: - Git Beta: added `git:Add` as an alias for the existing `git::Diff` - Git Beta: Fixed a bug where the 'generate commit message' keybinding wasn't working. - Git Beta: Made the empty project diff state a little more helpful with a button to push, and a button to close the item.
Mikayla Maki created
783e239
Add git branch switching aliases (#26315)
This gives us _very_ rudimentary support for `git switch` and `git checkout` now, by making them aliases for our existing `git::branch` call. Release Notes: - Git Beta: Added `git::Switch` and `git::CheckoutBranch` as aliases for the existing `git::Branch`
Mikayla Maki created
4c455ca
Improve when the commit suggestions would show (#26313)
Release Notes: - Git Beta: Fixed a few bugs where the suggested commit text wouldn't show in certain cases, or would update slowly.
Mikayla Maki created
270e47c
git: Fix errors not showing in the toast notification (#26303)
Release Notes: - Resolved an issue where error messages from Git were not being displayed in toast notifications. <img width="1702" alt="Screenshot 2025-03-08 at 1 11 30 AM" src="https://github.com/user-attachments/assets/a46517db-4e64-4c5e-a64e-96e820ca9aec" />
Kiran_Peraka created
c075dd5
Change the default staging and unstaging state display (#26299)
This adds a setting for the "border" hunk display mode, as discussed, and makes it the default. Here's how it looks in light mode: <img width="1512" alt="Screenshot 2025-03-07 at 11 39 25 AM" src="https://github.com/user-attachments/assets/a934faa3-ec69-47e1-ad46-535e48b98e9f" /> And dark mode: <img width="1511" alt="Screenshot 2025-03-07 at 11 39 56 AM" src="https://github.com/user-attachments/assets/43c9afd1-22bb-4bd8-96ce-82702a6cbc80" /> Release Notes: - Git Beta: Adjusted the default hunk styling for staged and unstaged changes Co-authored-by: Conrad <conrad@zed.dev> Co-authored-by: Nate <nate@zed.dev>
Mikayla Maki , Conrad , and Nate created
3129e3d
Remove worktree and project notifies (#26244)
This reduces the number of multibuffer syncs from 100,000 to 20,000. Before this change each editor individually observed the project, so literally any project change was amplified by the number of editors you had open. Now editors listen to their buffers instead of the project, and other users of `cx.observe` on the project have been updated to use specific events to reduce churn. Follow up to #26237 Release Notes: - Improved performance of Zed in large repos with lots of file system events. --------- Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> (cherry picked from commit 80fb88520f0c52b806ac963dca6a39bead1f49aa)
Conrad Irwin and Max Brunsfeld created
dfbfcdf
Track dirtyness per item (#26237)
This reduces the number of multibuffer syncs when starting the editor with 80 files open in the Zed repo from 10,000,000 to 100,000 by avoiding O(n**2) dirtyness checks. Release Notes: - Fixed a beachball when restarting in a large repo with a large number open files
Conrad Irwin created
53ff7ca
worktree: Add some info-level logging about added and removed repository entries (cherry-pick #26291) (#26292)
Cherry-picked worktree: Add some info-level logging about added and removed repository entries (#26291) Trying to track down a user's reported issue with parent repositories not getting picked up. Release Notes: - N/A Co-authored-by: Cole Miller <cole@zed.dev>
gcp-cherry-pick-bot[bot] and Cole Miller created
0a391ab
zed 0.177.5
Joseph T. Lyons created
e29fb61
git_ui: Try to prompt the model out of including the diff output (#26281)
This PR updates the prompt for generating commit messages to tell the model not to include the raw diff output in the message. Release Notes: - N/A
Marshall Bowers created
9db97b8
Fix inline diagnostics in the project diff (#26275)
https://github.com/zed-industries/zed/blob/205f9a9f0391da47a87cac45a41f67d2a23f5a95/crates/editor/src/element.rs#L1643 Due to the snippet above, Zed is supposed to have `row` larger or equal to `start_row` here: https://github.com/zed-industries/zed/blob/205f9a9f0391da47a87cac45a41f67d2a23f5a95/crates/editor/src/element.rs#L1694 yet the panic were reported when clicking in the project diff. That project diff has a lot of highlighting happening already, so the PR disables inline diagnostics within a git diff view. Release Notes: - N/A
Kirill Bulatov created
871bca5
git: Fix git panel not using default width (#26220)
Closes #26062 Removing the width here causes zed to use the default value (inside default settings) after restart like other panels. Release Notes: - Fixed issue where git panel wasn't using default width after restart Co-authored-by: Mikayla Maki <mikayla@zed.dev>
loczek and Mikayla Maki created
6dde040
Add staged variants of the hunk_style controls (#26259)
This PR adds a few more hunk style settings that flips the emphasis. Normally, the concept at Zed has been that the project diff should emphasize what's going into the commit. However, this leads to a problem where the default state of all diff hunks are in the non-emphasized state, making them hard to see and interact with. Especially on light themes. This PR is an experiment in flipping the emphasis states. Now the project diff is more like a queue of work, with the next "job" (hunk to be evaluated) emphasized, and the "completed" (staged) hunks deemphasized. This fixes the default state issue but is a big jump from how we've been thinking about it. So here we can try it out and see how it feels :) Release Notes: - Git Beta: Added hunk style settings to emphasize the unstaged state, rather than the staged state.
Mikayla Maki created
d6190db
Restore co-author hiding (#26257)
Release Notes: - N/A
Mikayla Maki created
7365cac
Improve the generate commit message design (#26233)
[WIP] Release Notes: - N/A --------- Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com> Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Marshall Bowers , Mikayla Maki , and Danilo Leal created
84f8b86
Fix paths on Windows in new test (#26255)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Cole Miller created
e53389f
Disable restore hunk control for created files (#25841)
Release Notes: - Git Beta: disable hunk restore action and button for created files
Cole Miller created
12fb23b
Add StatusToast & the ToastLayer (#26232)
https://github.com/user-attachments/assets/b16e32e6-46c6-41dc-ab68-1824d288c8c2 This PR adds the first part of our planned extended notification system: StatusToasts. It also makes various updates to ComponentPreview and adds a `Styled` extension in `ui::style::animation` to make it easier to animate styled elements. _**Note**: We will be very, very selective with what elements are allowed to be animated in Zed. Assume PRs adding animation to elements will all need to be manually signed off on by a designer._ ## Status Toast  These are designed to be used for notifying about things that don't require an action to be taken or don't need to be triaged. They are designed to be ignorable, and dismiss themselves automatically after a set time. They can optionally include a single action. Example: When the user enables Vim Mode, that action might let them undo enabling it.  Status Toasts should _not_ be used when an action is required, or for any binary choice. If the user must provide some input, this isn't the right component! ### Out of scope - Toasts should fade over a short time (like AnimationDuration::Fast or Instant) when dismissed - We should visually show when the toast will dismiss. We'll need to pipe the `duration_remaining` from the toast layer -> ActiveToast to do this. - Dismiss any active toast if another notification kind is created, like a Notification or Alert. Release Notes: - N/A --------- Co-authored-by: Cole Miller <m@cole-miller.net>
Nate Butler and Cole Miller created
75f7def
Add event to track LLM-generated commit messages (#26245)
Release Notes: - N/A
Joseph T. Lyons created
9195cd5
git_ui: Add support for generating commit messages with an LLM (#26227)
This PR finishes up the support for generating commit messages using an LLM. We're shelling out to `git diff` to get the diff text, as it seemed more efficient than attempting to reconstruct the diff ourselves from our internal Git state. https://github.com/user-attachments/assets/9bcf30a7-7a08-4f49-a753-72a5d954bddd Release Notes: - Git Beta: Added support for generating commit messages using a language model. --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Marshall Bowers and Conrad Irwin created
f0be142
git_ui: Scaffold out support for generating commit messages with an LLM (#26161)
This PR adds the rough structure needed to support generating commit messages using an LLM. This functionality is not yet surfaced to the user. This is the current state, if you tweak the source to show the button: https://github.com/user-attachments/assets/66d1fbc4-09f3-4277-84f4-e9c9ebab274c Release Notes: - N/A
Marshall Bowers created
0dec6fb
Cherry-pick: Worktree paths in git panel, take 2 (#26047) (#26252)
Release Notes: - Git Beta: updated the git panel to use worktree-relative paths and support opening files outside the active repository's worktree
Cole Miller created
4f8a094
Fix early return when reaching end excerpt in `lift_buffer_metadata` (#26253)
Release Notes: - Fixed a bug causing slowness when viewing multi buffers with lots of excerpts
Max Brunsfeld created
43c8106
Disable restore hunk control for created files (cherry-pick #25841) (#26251)
Cherry-picked Disable restore hunk control for created files (#25841) Release Notes: - Git Beta: disable hunk restore action and button for created files Co-authored-by: Cole Miller <cole@zed.dev>
gcp-cherry-pick-bot[bot] and Cole Miller created