3130b46
v0.177.x preview
Joseph T. Lyons created
3130b46
v0.177.x preview
Joseph T. Lyons created
669082d
assistant2: Fix keyboard navigation issues when a picker is open (#25928)
This fixes: - Bug: Using "up" in model selector triggers assistant2::FocusUp not menu::SelectPrev - Bug: Pressing arrow up/down in the model selector opened in the inline assistant doesn't work - Bug: Dismissing the model selector with Esc is not working - Bug: Dismissing context pickers with Esc no longer working Release Notes: - N/A
Bennet Bo Fenner created
d5bc7b9
extension_cli: Make use of `scrollbar_thumb.background` a hard error (#25932)
This PR updates the extension CLI to make the use of `scrollbar_thumb.background` in a theme a hard error. We're working to eradicate usage of this theme property, so this will prevent new extensions from being published that use it. Release Notes: - N/A
Marshall Bowers created
8bb2739
keymap: Update `Prev` to `Previous` follow-up (#25931)
Follow-up for https://github.com/zed-industries/zed/pull/25909 Add three more action replacements: ``` 1. "pane::ActivatePrevItem" -> "pane::ActivatePreviousItem" 2. "vim::MoveToPrev" -> "vim::MoveToPrevious" 3. "vim:MoveToPrevMatch" -> "vim:MoveToPreviousMatch" ``` Release Notes: - N/A
smit created
466be14
Revert "Use multi-line regex for '\s'" (#25926)
Reverts zed-industries/zed#19241 Closes: https://github.com/zed-industries/zed/issues/25901 Although `\s` contains `\n` it is widely used in non-multiline regexes (unlike `\n`).
Peter Tripp created
9544619
Skip .git/lfs FS events (#25927)
Closes https://github.com/zed-industries/zed/issues/25865 Closes https://github.com/zed-industries/zed/pull/25915 In the issue, Zed had caused `.git/lfs/tmp/466102258`-like files to appear in the directory, which lead to background FS event listener to handle this as an update, incrementing snapshot's `scan_id`, which lead to git status rescan, which caused another increment to `status_scan_id` — incrementing either of the IDs causes the related repo data to be considered "changed: https://github.com/zed-industries/zed/blob/41b45eaba798a56e596857fa497c862050788bc7/crates/worktree/src/worktree.rs#L1590-L1605 hence propagating events to the other parts of the system (e.g. git blame, which was also active in the issue's case) ``` [2025-03-01T20:01:08+01:00 DEBUG worktree] ignoring event ".git/lfs/tmp/466102258" within unloaded directory [2025-03-01T20:01:08+01:00 DEBUG worktree] received fs events [] [2025-03-01T20:01:08+01:00 DEBUG worktree] reloading repositories: ["/Users/alex/dev/monorepo/.git"] [2025-03-01T20:01:08+01:00 DEBUG editor::git::blame] Status of git repositories updated. Regenerating blame data... [2025-03-01T20:01:08+01:00 DEBUG editor::git::blame] Status of git repositories updated. Regenerating blame data... [2025-03-01T20:01:08+01:00 DEBUG editor::git::blame] Status of git repositories updated. Regenerating blame data... ``` Due to repo update events sent, another `.git/lfs/tmp/` entry is created, things start over... The PR fixes this by ignoring any `.git/lfs/` directory-related FS events, as needed for the current git status update heuristics. https://github.com/zed-industries/zed/pull/25915 tried to follow further and `scan_id` and `status_scan_id` but we do not store all git state in memory, e.g. head https://github.com/zed-industries/zed/blob/e0060b92cc862c4d926652e1a01f0991ccb3a805/crates/editor/src/editor_tests.rs#L13686 as [tests](https://github.com/zed-industries/zed/actions/runs/13631960559/job/38101504549?pr=25915) show. Release Notes: - Improved `.git` scan heuristics
Kirill Bulatov created
b34c0fd
git_ui: Fix item heights in git panel (#25833)
- Fixes items slightly overlapping in the git panel - Fixes commit button in the project diff not opening modal Release Notes: - N/A --------- Co-authored-by: Nate Butler <iamnbutler@gmail.com> Co-authored-by: Cole Miller <m@cole-miller.net>
Max Brunsfeld , Nate Butler , and Cole Miller created
e0060b9
assistant: Adjust slash command picker (#25920)
Mostly just fine-tuning its positioning. Other changes are mainly using the Label's `buffer_font` method instead of using a div for that. Release Notes: - N/A
Danilo Leal created
06bcc42
Revert "assistant_context_editor: Close menus on send (#25440)" (#25916)
Reverting https://github.com/zed-industries/zed/pull/25440 This is a good change, but given the PR was open for a while, I guess it didn't catch conflicts with main, and so it broke it. Will revert it for now, to keep main fresh, but will look into adding this behavior back again. Release Notes: - N/A
Danilo Leal created
f24c226
assistant_context_editor: Close menus on send (#25440)
Closes #ISSUE Before: https://github.com/user-attachments/assets/e63b6207-0c80-4fd6-99c0-febe3d639ba1 After: https://github.com/user-attachments/assets/870f2c6d-9b7f-456d-a1e3-26e1c31b129d Release Notes: - N/A
brian tan created
593f3dc
keymap: Update `Prev` to `Previous` for consistency (#25909)
Closes #10167
This is take 2 on https://github.com/zed-industries/zed/pull/2341 which
was closed due to lack of migrator.
This PR contains rename of following keymap actions:
```sh
1. ["editor::GoToPrevHunk", { "center_cursor": true }] -> ["editor::GoToPreviousHunk", { "center_cursor": true }]
2. "editor::GoToPrevDiagnostic" -> "editor::GoToPreviousDiagnostic"
3. "editor::ContextMenuPrev" -> "editor::ContextMenuPrevious"
4. "search::SelectPrevMatch" -> "search::SelectPreviousMatch"
5. "file_finder::SelectPrev" -> "file_finder::SelectPrevious"
6. "menu::SelectPrev" -> "menu::SelectPrevious"
7. "editor::TabPrev" -> "editor::Backtab"
```
Release Notes:
- Renamed several keymap actions for consistency (e.g., `GoToPrevHunk` →
`GoToPreviousHunk`, `TabPrev` → `Backtab`). Your existing configured
keybindings will still work. You can click **"Backup and Update"** at
the top of your keymap file to easily update to the new actions.
Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>
smit and Joseph T. Lyons created
61d584d
context menu: Adjust item disabled state when there is docs aside (#25860)
When a context menu item has a documentation aside element attached to it, we're now hiding the keybinding (which wouldn't trigger anything anyway) to make room for displaying an info icon, with the purpose of indicating the existence of the docs aside, which will typically explain the reason why the item’s disabled in the first place. Also, changed the label color to use the `Disabled` token; more appropriate for this, and just slightly darker, which is great! <img src="https://github.com/user-attachments/assets/a7f9f022-16d1-41d5-b1b5-3cbcc9630cc8" width="500px"/> Release Notes: - N/A
Danilo Leal created
c37f616
gpui: Maintain `img` aspect ratio when `max_width` is set (#25632)
Release Notes: - Fixed Markdown preview to display image with max width 100%. ## Before <img width="1202" alt="image" src="https://github.com/user-attachments/assets/359628df-8746-456f-a768-b3428923c937" /> <img width="750" alt="SCR-20250226-napv" src="https://github.com/user-attachments/assets/f6154516-470e-41b2-84f5-ef0612c447ad" /> ## After <img width="1149" alt="image" src="https://github.com/user-attachments/assets/2279347d-9c69-4a47-bb62-ccc8e55a98f6" /> <img width="520" alt="SCR-20250226-ngyz" src="https://github.com/user-attachments/assets/03af5f14-1935-472e-822f-4c7f62630780" />
Jason Lee created
73ac199
Add user-visible output for remote operations (#25849)
This PR adds toasts for reporting success and errors from remote git operations. This PR also adds a focus handle to notifications, in anticipation of making them keyboard accessible. Release Notes: - N/A --------- Co-authored-by: julia <julia@zed.dev>
Mikayla Maki and julia created
508b9d3
Add an informative tooltip to commit button when unable to commit (#25912)
Release Notes: - N/A
Mikayla Maki created
0a4ff2f
tab: Add setting to hide the close button entirely (#23880)
Closes #23744 Release Notes: - Changed the `always_show_close_button` key to `show_close_button` and introduced a new `hidden` value, that allows never displaying the close button. --------- Co-authored-by: Peter Tripp <peter@zed.dev> Co-authored-by: Danilo Leal <daniloleal09@gmail.com> Co-authored-by: smit <0xtimsb@gmail.com>
Morgan Metz , Peter Tripp , Danilo Leal , and smit created
ae6d350
Use system-installed git binary for push/pull/fetch (#25900)
### Problem When using HTTPS remotes, users are getting errors when trying to push or pull via the git panel. On macOS, Zed bundles a `git` binary that's part of [`dugite-native`](https://github.com/desktop/dugite-native). But we don't include the entire package. Additional binaries from `dugite-native` are needed for pulling and pushing over HTTPS. ### Solution Rather than bundling those additional binaries, I've changed the `push`, `pull`, and `fetch` actions to rely on the *system-installed* `git` binary. The downside of this is that, if the user does not have Git installed, they wont' be able to push, pull, or fetch from within Zed. But we believe that the vast majority of users will have Git installed. Also, unlike `diff` and `status`, which Zed needs to call in the background without any user interaction, `push`/`pull` and `fetch` are explicit actions that the user takes in Zed, so there is an opportunity to prompt them to install Git if they haven't. ### Background There are three ways (that I know of) that users might authenticate when pushing, pulling, or fetching over HTTPS. 1. Via a built-in [Git `credential.helper`](https://git-scm.com/docs/gitcredentials). On macOS, Git ships with a helper called `credential-osxkeychain` that stores internet passwords in the OS Keychain. You can opt into this globally with the command `git config --global credential.helper osxkeychain`, which writes to your `~/.gitconfig`. 2. Via [`Git Credential Manager` (GCM)](https://github.com/git-ecosystem/git-credential-manager), which is a different `credential.helper`, [built by GitHub](https://github.blog/security/application-security/git-credential-manager-authentication-for-everyone/), which must be installed manually, and integrates with specific Git hosting providers like GitHub and Azure. 3. By typing their Username and Password/Access-token interactively when pushing/pulling/fetching. ### Testing Status * [ ] 🚫 Interactive password auth - not yet supported, requires https://github.com/zed-industries/zed/pull/25848 * [x] **credential-osxkeychain** - when using the built-in credential helper, and the credentials are already stored in the keychain, push/pull/fetch now work fine . * [ ] **GCM** - still testing. * Right now, I'm seeing `git-credential-manager` just hang indefinitely when pushing from Zed, even though it works when pushing from a terminal. Release Notes: - N/A
Max Brunsfeld created
0e44f93
lsp: Do not add trailing slash to workspace folders (#25903)
Closes #25390 Release Notes: - Fixed issues with ansible-language-server sending phantom diagnostic updates
Piotr Osiewicz created
65d92d7
Make more log files read only (#25887)
Closes https://github.com/zed-industries/zed/issues/5105 Makes the following logs read only - Zed error / warning log - Zed telemetry log Release Notes: - N/A
Joseph T. Lyons created
8b5ef25
docs: Add documentation for Seed search query from cursor (#25875)
Missing documentation added for `seed_search_query_from_cursor`. Release Notes: - N/A
Devzeth created
fec228b
Fix issue with `cmd-w` closing window in preview tabs on MacOS (#25878)
Closes #25810 Reorders default macOS keymap so that `cmd-w` in `"context": "PromptLibrary"` bindings is not the last binding for `workspace::CloseWindow` and therefore does not get rendered in the app menu or intercepted by MacOS Release Notes: - N/A
Ben Kunkle created
e00d737
Add `constructor` highlighting for JS/TS/TSX (#25207)
Closes #19267 Adds highlight field specifically for `constructor` in JS/TS/TSX so that it can be highlighted as a different color than regular methods Release Notes: - N/A --------- Co-authored-by: Ben Kunkle <ben@zed.dev>
Devzeth and Ben Kunkle created
b0dee94
pane: Hide "Copy Relative Path" and "Reveal In Project Panel" actions for files outside of the projects (#25386)
"Copy Relative Path" action had a check for existence of relative path but it always passed because [`WorktreeStore::find_worktree()`](https://github.com/zed-industries/zed/blob/1d5499bee72f1ea57ed883b942f05d5c1e7cec89/crates/project/src/worktree_store.rs#L148) function returned empty path for these kinds of files. It feels correct to make changes there, but I don't know what else could be impacted. "Reveal In Project Panel" had no check whatsoever and so I made one. Release Notes: - N/A
Egor Krugletsov created
e65471c
Optimize JSON merging by removing redundant key clones in serde_json operations (#25866)
Hi Zed team! 👋 As a fan of Zed Editor who's excited to contribute, I noticed a small optimization opportunity in the JSON merging utilities. <b>Changes:</b> Removed redundant key.clone() calls in insert() operations within 2 functions: 1. merge_json_value_into 2. merge_non_null_json_value_into <b>Why:</b> Since we're already moving ownership of `source_object` 's contents and key is no longer used further, we could directly pass `key` to `insert` without cloning. Eliminates redundant allocations, improving performance slightly for JSON-heavy operations. <b>Testing:</b> I have tested this locally and all existing tests passed. The change preserves behavior while removing redundancy. Love using Zed and happy to contribute! Let me know if any adjustments are needed! Release Notes: - N/A
greathongtu created
6713ec8
windows: Bring back restoration of tabs (#25870)
Closes #25022 Release Notes: - N/A
张小白 created
48e09c0
Tweak the Git beta issue template (#25869)
Release Notes: - N/A
Joseph T. Lyons created
3f03d7b
Add a temporary issue template for Git beta bugs (#25867)
Release Notes: - N/A
Joseph T. Lyons created
fa96e22
paths: Add support for clickable file paths in the Odin language format (#25842)
This PR adds support for clickable file paths in the Odin language format. The odin compiler errors use the format `/path/to/file.odin(1:1)`. We didn't recognize this format, making these paths non-clickable in the terminal. Also added tests for this. Release Notes: - Added support for clickable file paths in the Odin language format. --------- Co-authored-by: Peter Tripp <peter@zed.dev>
Devzeth and Peter Tripp created
a8a05f2
cli: Add extra paths in `detect()` on Windows (#25765)
I'm already integrating CLI into MSYS2 package, and this patche helped me to make it work like in Arch: https://github.com/msys2/MINGW-packages/pull/23537. used the same way as in [Linux implementation](https://github.com/zed-industries/zed/blob/6856e869fcb8fd2e164a2c43b42ac5046f1d7ea8/crates/cli/src/main.rs#L314) Closes #ISSUE Release Notes: - N/A
Maksim Bondarenkov created
aa1ab50
Add stop_at_indent for Editor::DeleteToBeginningOfLine (#25688)
Added test_beginning_of_line_stop_at_indent editor test - Follow-up to: https://github.com/zed-industries/zed/pull/25428 - Replaces: https://github.com/zed-industries/zed/pull/25346 This is all authored by @felixpackard in #25346 I just updated it to use `stop_at_indent` instead of `stop_at_first_char`. Release Notes: - Added support for `stop_at_indent` to `Editor::DeleteToBeginningOfLine` (thanks [@felixpackard](https://github.com/felixpackard)) Co-authored-by: Felix Packard <felix@rigr.gg>
Peter Tripp and Felix Packard created
d115cb1
windows: Use dev drive instead of `ReFS` (#25858)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
张小白 created
42571e4
Ensure inlay hint toggling with modifiers happens fast (#25852)
Follow-up of https://github.com/zed-industries/zed/pull/25766 Fixes the bugs found: * modifier toggle not happening instantly due to `edit_debounce_ms` considered * hint update race that ignored the cache clear Release Notes: - N/A
Kirill Bulatov created
2d61a51
Diff View: Scroll to center of hunks when reviewing (#25846)
When reviewing hunks, scroll to put them at the center of the screen so you can better see the context around that hunk. The field `center_cursor` was added to the actions `editor::GoToHunk` and `editor::GoToPrevHunk`, this was set to `false` by default in keymaps, as it wouldn't help with in-editor navigation. The field is set to `true` for when you trigger `git::StageAndNext` and `git::UnstageAndNext`, this is also `true` for the buttons in the Diff View toolbar. Release Notes: - N/A
João Marcos created
a2876f5
Support hunk-wise `StageAndNext` and `UnstageAndNext` (#25845)
This PR adds the `whole_excerpt` field to the actions: - `git::StageAndNext` - `git::UnstageAndNext` Which is set by false by default, effectively, now staging and unstaging with these actions is done hunk-by-hunk, this also affects the `Stage` and `Unstage` buttons in the Diff View toolbar. A caveat: with this PR, there is no way to configure the buttons in the Diff View toolbar to restore the previous behavior, if we want, I think we can make it a setting, but let's see if anyone really wants that. Release Notes: - N/A
João Marcos created
13deaa3
Fix new git panel buttons (#25844)
Release Notes: - N/A
Cole Miller created
694afd1
Fix buffer search options not resetting when dismissed after Vim mode search then reopened with `buffer: deploy search` (#25838)
Closes #25315 Release Notes: - Fixes an issue where the buffer search options would not be reset when using `buffer: deploy search` after using Vim search (`*` & `#`) which enable all search options
Ben Kunkle created
eb648dd
Follow-up tweaks to new git panel footer (#25832)
- Use a popover for the branch picker - Don't deploy a repository selector if there's only one repo Release Notes: - N/A
Cole Miller created
1c4c568
Allow unfolding deleted buffers in project diff w/ keyboard (#25835)
Release Notes: - N/A
Max Brunsfeld created
ec88a68
Fix active pane modifiers applying to parent pane axis if child pane is active (#25836)
Closes #25304 Release Notes: - Fixed an issue where `active_pane_modifiers` settings would be applied to a parent pane if one of it's child panes was active
Ben Kunkle created
7fb1697
chore: Extract PromptStore out of prompt_library (#25837)
One step closer to removing long pole with assistant/assistant2 builds Release Notes: - N/A
Piotr Osiewicz created
53b2792
Improve script/mitm-proxy.sh to support podman (#25834)
Peter Tripp created
760d087
Update bundled JSON schemas (2025-02-28) (#25826)
Updated JSON schemas to [SchemaStore/schemastore@b107b83](https://github.com/SchemaStore/schemastore/tree/b107b83a50bad9ac06dd171201dc870901f92ca8) (2025-02-28) - [tsconfig.json](https://github.com/SchemaStore/schemastore/commits/master/src/schemas/json/tsconfig.json) @ [b107b83](https://raw.githubusercontent.com/SchemaStore/schemastore/b107b83a50bad9ac06dd171201dc870901f92ca8/src/schemas/json/tsconfig.json) - [package.json](https://github.com/SchemaStore/schemastore/commits/master/src/schemas/json/package.json) @ [b107b83](https://raw.githubusercontent.com/SchemaStore/schemastore/b107b83a50bad9ac06dd171201dc870901f92ca8/src/schemas/json/package.json) Previously: - https://github.com/zed-industries/zed/pull/20910 Release Notes: - Updated bundled JSON schemas for package.json and tsconfig.json
Peter Tripp created
71866d6
assistant2: Include some text in the tool result messages (#25825)
This PR makes it so we include some textual content in the user messages that as used to send up tool results. I observed that when sending up the tool results with no text, it would lead the model to start replying with no text, which would then result in an error when attaching later tool results. I think there's a deeper issue at play here, but for now we just include some text to keep the model on track. Release Notes: - N/A
Marshall Bowers created
0c2bbb3
Optimistically update hunk states when staging and unstaging hunks (#25687)
This PR adds an optimistic update when staging or unstaging diff hunks. In the process, I've also refactored the logic for staging and unstaging hunks, to consolidate more of it in the `buffer_diff` crate. I've also changed the way that we treat untracked files. Previously, we maintained an empty diff for them, so as not to show unwanted entire-file diff hunks in a regular editor. But then in the project diff view, we had to account for this, and replace these empty diffs with entire-file diffs. This form of state management made it more difficult to store the pending hunks, so now we always use the same `BufferDiff`/`BufferDiffSnapshot` for untracked files (with a single hunk spanning the entire buffer), but we just have a special case in regular buffers, that avoids showing that entire-file hunk. * [x] Avoid creating a long queue of `set_index` operations when staging/unstaging rapidly * [x] Keep pending hunks when diff is recalculated without base text changes * [x] Be optimistic even when staging the single hunk in added/deleted files * Testing Release Notes: - N/A --------- Co-authored-by: Cole Miller <m@cole-miller.net>
Max Brunsfeld and Cole Miller created
9d8a163
git_ui: New panel design (#25821)
This PR updates the ui of the git panel. It removes the header from the panel and unifies the repository, branch and commit controls in the bottom section. It also adds a secondary menu to the primary button giving access to a variety of actions for managing local and remote changes:  Known issues (will be fixed in a later pr) - Spinner showing git operation progress was removed, will be re-added - Clicking expand with the panel editor focused will commit (due to shared action name. Already tracked) Before | After  (Also adds `component`, `linkme` to cargo-machete ignore as they are used in the `IntoComponent` proc-macro and will always be incorrectly flagged as unused) Release Notes: - N/A --------- Co-authored-by: Cole Miller <m@cole-miller.net> Co-authored-by: Cole Miller <53574922+cole-miller@users.noreply.github.com> Co-authored-by: Cole Miller <cole@zed.dev>
Nate Butler , Cole Miller , Cole Miller , and Cole Miller created
8a22a07
git: Adjust rendering of git hunks (#25824)
- Light themes get their own values (creating better contrast and a better distinction between staged and unstaged hunks in light themes.) - Scrollbar git hunks indicators now use the correct colors Before:  After:  Release Notes: - Fixed an issue where git hunk indicators in editor scrollbars used the incorrect colors.
Nate Butler created
fad4df5
editor: Add Organize Imports Action (#25793)
Closes #10004 This PR adds support for the organize imports action. Previously, you had to manually configure it in the settings and then use format to run it. Note: Default key binding will be `alt-shift-o` which is similar to VSCode's organize import. Also, because `cmd-shift-o` is taken by outline picker. Todo: - [x] Initial working - [x] Handle remote - [x] Handle multi buffer - [x] Can we make it generic for executing any code action? Release Notes: - Added `editor:OrganizeImports` action to organize imports (sort, remove unused, etc) for supported LSPs. You can trigger it by using the `alt-shift-o` key binding.
smit created
e4e758d
Rust 1.85 (#25272)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Piotr Osiewicz and Anthony Eid created
fc52b43
assistant2: Factor out tool use into its own module (#25819)
This PR factors out the concerns related to tool use out of `Thread` and into their own module. Release Notes: - N/A
Marshall Bowers created
b445e4c
assistant2: Rework how tool results are stored and referred to (#25817)
This PR reworks how we store tool results and refer to them later. We now maintain a mapping of the tool uses to their corresponding results, with separate mappings for the messages and the tool uses they correspond to. Release Notes: - N/A
Marshall Bowers created