be8f3b3
Add delete-path tool (#26590)
Click to expand commit body
Release Notes: - N/A
Richard Feldman created
be8f3b3
Add delete-path tool (#26590)
Release Notes: - N/A
Richard Feldman created
3131b04
Return which files were touched in the edit tool (#26564)
<img width="631" alt="Screenshot 2025-03-12 at 12 56 43 PM" src="https://github.com/user-attachments/assets/9ab84a53-829a-4943-ae76-b1d97ee31f55" /> <img width="908" alt="Screenshot 2025-03-12 at 12 57 12 PM" src="https://github.com/user-attachments/assets/bd246231-6c92-4266-b61e-5293adfe2ba0" /> Release Notes: - N/A
Richard Feldman created
3ec323c
uiua: Extract to zed-extensions/uiua repository (#26587)
This PR extracts the Uiua extension to the [zed-extensions/uiua](https://github.com/zed-extensions/uiua) repository. Release Notes: - N/A
Marshall Bowers created
c8b782d
git: Hard wrap in editor (#26507)
This adds the ability for the editor to implement hard wrap (similar to "textwidth" in vim). If you are typing and your line extends beyond the limit, a newline is inserted before the most recent space on the line. If you are otherwise editing the line, pasting, etc. then you will need to manually rewrap. Release Notes: - git: Commit messages are now wrapped "as you type" to 72 characters.
Conrad Irwin created
7bca157
Git on main thread (#26573)
This moves spawning of the git subprocess to the main thread. We're not yet sure why, but when we spawn a process using GCD's background queues, sub-processes like git-credential-manager fail to open windows. This seems to be fixable either by using the main thread, or by using a standard background thread, but for now we use the main thread. Release Notes: - Git: Fix git-credential-manager --------- Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
Conrad Irwin , Max Brunsfeld , and Kirill Bulatov created
5268e74
Properly handle goto single file worktrees during terminal cmd-clicks (#26582)
Closes https://github.com/zed-industries/zed/issues/26431 Follow-up of https://github.com/zed-industries/zed/pull/26174 `path_with_position.path.strip_prefix(&worktree_root)` used in the PR is wrong for cases of single-file worktrees, where it will return empty paths that will result in incorrect project and FS entries accessed. Release Notes: - Fixed goto single file worktrees during terminal cmd-clicks
Kirill Bulatov created
91c2099
Support word-based completions (#26410)
Closes https://github.com/zed-industries/zed/issues/4957 https://github.com/user-attachments/assets/ff491378-376d-48ec-b552-6cc80f74200b Adds `"completions"` language settings section, to configure LSP and word completions per language. Word-based completions may be turned on never, always (returned along with the LSP ones), and as a fallback if no LSP completion items were returned. Future work: * words are matched with the same fuzzy matching code that the rest of the completions are This might worsen the completion menu's usability even more, and will require work on better completion sorting. * completion entries currently have no icons or other ways to indicate those are coming from LSP or from word search, or from something else * we may work with language scopes more intelligently, group words by them and distinguish during completions Release Notes: - Supported word-based completions --------- Co-authored-by: Max Brunsfeld <max@zed.dev>
Kirill Bulatov and Max Brunsfeld created
74c29f1
Fix unstage/stage in project diff not working when git panel isn't open (#26575)
Closes #ISSUE Release Notes: - Fix Bug where unstage/stage all in project diff wouldn't work while git panel was closed Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Anthony Eid and Conrad Irwin created
5858e61
purescript: Extract to zed-extensions/purescript repository (#26571)
This PR extracts the PureScript extension to the [zed-extensions/purescript](https://github.com/zed-extensions/purescript) repository. Release Notes: - N/A
Marshall Bowers created
21cf2e3
Fix pane magnification causing mouse to drag tabs unexpectedly (#26383)
Previously, if a user clicked a button and moved the cursor out before releasing, the click event was correctly prevented, but the pending mouse-down state remained. This caused unintended drags when the UI shifted due to magnification settings. Now, mouse-up clears the pending state: - If over the button → clear state and trigger click handlers. - If outside the button → clear state without triggering a click. This avoids accidental drags while preserving expected click behavior. Closes #24600 Release Notes: - N/A --------- Co-authored-by: Ben Kunkle <ben@zed.dev>
Martim Aires de Sousa and Ben Kunkle created
a3ca555
zig: Extract to zed-extensions/zig repository (#26569)
This PR extracts the Zig extension to the [zed-extensions/zig](https://github.com/zed-extensions/zig) repository. Release Notes: - N/A
Marshall Bowers created
acf9b22
extension: Add `ExtensionEvents` for listening to extension-related events (#26562)
This PR adds a new `ExtensionEvents` event bus that can be used to listen for extension-related events throughout the app. Today you need to have a handle to the `ExtensionStore` (which entails depending on `extension_host`) in order to listen for extension events. With this change subscribers only need to depend on `extension`, which has a leaner dependency graph. Release Notes: - N/A
Marshall Bowers created
ffcd023
Bump Zed to v0.179 (#26563)
Release Notes: -N/A
Joseph T. Lyons created
6259ad5
Add RegexSearchTool (#26555)
Release Notes: - N/A
Antonio Scandurra created
8d259a9
git_ui: Update Project Diff empty state design (#26554)
Title Release Notes: - N/A --------- Co-authored-by: Cole Miller <m@cole-miller.net>
Nate Butler and Cole Miller created
010c5a2
docs: Update the Git page (#26530)
So it reflects the new set of features supported starting from v0.177. Release Notes: - N/A
Danilo Leal created
45b126a
git: Add an onboarding and banner flow (#26518)
TODO: - [ ] Hide the reset onboarding action (only useful for development, uncomment: https://github.com/zed-industries/zed/pull/26518/files#diff-f0ce01d9a3df30f60c64b6f9906c54aa0191246a58dbf5297ee321575a180879R96) - [x] Get a designer to replace the modal background (@danilo-leal) Release Notes: - Added a small onboarding banner for the git launch --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com> Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Mikayla Maki , Danilo Leal , and Danilo Leal created
5f74297
Fix edit tool tests on windows (#26552)
Assertions on the parsed system prompt should use CRLF on Windows. I didn't see it before because I was testing on my Windows VM from a shared folder I cloned on macOS. Release Notes: - N/A
Agus Zubiaga created
349f573
Add ListDirectoryTool (#26549)
Release Notes: - N/A
Antonio Scandurra created
41eb586
Remove `list_worktrees` and use relative paths instead (#26546)
Release Notes: - N/A
Antonio Scandurra created
6bf6fca
macOS: Fix window turning black on fullscreen mode (#26547)
Closes #26534 Recently, we fixed a title bar transparency issue that only occurred on macOS 15.3 and later. PR: https://github.com/zed-industries/zed/pull/26403 However, this seems to have broken multi-window fullscreen behavior on earlier macOS versions. This PR adds versioning so that the title bar transparency fix only applies to macOS 15.3.0 and later. No release notes, as this bug only exists on main right now. Release Notes: - N/A Co-authored-by: MrSubidubi <dev@bahn.sh>
Smit Barmase and MrSubidubi created
6e89537
assistant2: Add an option to enable/disable all tools (#26544)
This PR adds an option to enable or disable all tools in the tool selector. <img width="1297" alt="Screenshot 2025-03-12 at 10 40 28 AM" src="https://github.com/user-attachments/assets/9125bdfb-5b54-461c-a065-2882a8585a67" /> Release Notes: - N/A
Marshall Bowers created
669c6a3
assistant edit tool: Do not include `\r` in old/new str (#26542)
#26538 fixed part of the issue, but it would keep trailing carriage returns in the old/new strings. The model is unlikely to produce those, but we might as well support them. Release Notes: - N/A
Agus Zubiaga created
910531b
Check if additional git provider is not the original git provider (#26533)
Release Notes: - N/A Yesterday I worked on https://github.com/zed-industries/zed/pull/26482 and noticed afterwards that we have duplicated hosting providers if the git remote host is "gitlab.com" and after the PR also for "github.com". This is not a big problem, since the original providers are registered first and therefore we first find a match with the original providers, but I think we should address this nevertheless. We initialize every hosting provider with the defaults here: https://github.com/zed-industries/zed/blob/b008b2863ee015a9dc6ecdcd6dedbc708983f8b3/crates/git_hosting_providers/src/git_hosting_providers.rs#L15-L24 After that, we also register additional hosting providers: https://github.com/zed-industries/zed/blob/b008b2863ee015a9dc6ecdcd6dedbc708983f8b3/crates/git_hosting_providers/src/git_hosting_providers.rs#L30-L43 If we do not check if the additional provider is not the original provider, we will register the same provider twice. --------- Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Nils Koch and Marshall Bowers created
690f26c
Disable clangd's inactiveRegions support (#26539)
Disables https://github.com/zed-industries/zed/pull/26146 until a better way to add diagnostics is found. Overall, the PR had made changes that are worth keeping instead of reverting, such as finally extracting out r-a's language server logic into an `_ext.rs` file. Release Notes: - N/A
Kirill Bulatov created
6b56fee
assistant edit tool: Support \r\n around markers (#26538)
This should fix the tests on Windows Release Notes: - N/A
Agus Zubiaga created
d94001f
git: Fix placeholder dots in untracked files (#26537)
This regressed at some point. Release Notes: - N/A
Cole Miller created
6bcfc40
Introduce a system prompt for the new assistant (#26536)
This should be less eager in terms of invoking tools. But we should keep iterating on it as we add more tools. Also, this disables the Lua interpreter by default (it can still be enabled manually from the tools icon). Release Notes: - N/A --------- Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Antonio Scandurra and Richard Feldman created
47a89ad
assistant: Edit files tool (#26506)
Exposes a new "edit files" tool that the model can use to apply modifications to files in the project. The main model provides instructions and the tool uses a separate "editor" model (Claude 3.5 by default) to generate search/replace blocks like Aider does: ````markdown mathweb/flask/app.py ```python <<<<<<< SEARCH from flask import Flask ======= import math from flask import Flask >>>>>>> REPLACE ``` ```` The search/replace blocks are parsed and applied as they stream in. If a block fails to parse, the tool will apply the other edits and report an error pointing to the part of the input where it occurred. This should allow the model to fix it. Release Notes: - N/A --------- Co-authored-by: Antonio Scandurra <me@as-cii.com>
Agus Zubiaga and Antonio Scandurra created
f3f9789
Improve script tool description and add lines iterator to Lua file objects (#26529)
Release Notes: - N/A --------- Co-authored-by: Agus Zubiaga <hi@aguz.me>
Antonio Scandurra and Agus Zubiaga created
30afba5
Start tracking diffs in `ScriptingSession` (#26463)
The diff is not exposed yet, but we'll take care of that next. Release Notes: - N/A
Antonio Scandurra created
036c123
Add git init button (#26522)
Because why not Release Notes: - N/A
Mikayla Maki created
050f5f6
Hide generate commit message button when assistant is disabled (#26519)
Release Notes: - Git Beta: Fixed the generate commit message button still showing when the assistant is disabled.
Mikayla Maki created
2cd970f
git: Remove hunk style setting (#26504)
Cole Miller created
d6255fb
git: Prevent up and down motions leaking out of the commit editor (#26501)
Closes #ISSUE Release Notes: - Git Beta: fixed an issue where pressing `up` or `down` in the git panel's commit message editor would change the selected status entry
Cole Miller created
f9a66ec
Add detection of self hosted GitHub enterprise instances (#26482)
This PR does not close an issue, but it is an issue and and fix in one. I hope this is ok, but please let me know if you prefer me to open an issue before. Release Notes: - Add "copy permalink" action for self-hosted GitHub enterprise instances # Issue ### Related issues: * https://github.com/zed-industries/zed/issues/26393 * https://github.com/zed-industries/zed/issues/11043 When you try to copy a permalink from a self-hosted GitHub enterprise instance, you get the following error: <img width="383" alt="permalink" src="https://github.com/user-attachments/assets/b32338a7-a2d7-48fc-86bf-ade1d32ed1f7" /> You also cannot open a PR or commit when you hover over a git blame: https://github.com/user-attachments/assets/a5491ce7-270b-412f-b9ac-027ec020b028 ### Reproduce If you do not have access to a self-hosted GitHub instance, you can change the remote url of any git repo: ``` git remote set-url origin git@github.mycorp.com:nilskch/zed.git ``` With the fix, permalinks still won't bring you to a valid website, but you can verify that they are correctly created. # Solution Currently, we only support detecting self-hosted GitLab instances, but not self-hosted GitHub instances. We detect GitLab instances by checking if "gitlab" is part of the git URL. This PR adds the same logic to detect self-hosted GitHub enterprise instances (by checking if "github" is in the URL). This solution is not ideal, since self-hosted GitHub or GitLab instances might not contain the word "github" or "gitlab". #26393 proposes adding a setting that would allow users to map specific domains to their corresponding git provider types. This mapping would help Zed correctly identify the appropriate git instance, even if "gitlab" or "github" are not part of the URL. This PR does not implement the offered solution, but I added a TODO where the fix for #26393 has to make changes.
Nils Koch created
cfb9a4b
Fix git panel entries getting cut off (#26499)
Closes #26497 Release Notes: - N/A
Cole Miller created
9902cd5
extension_host: Remove restriction of extension API v0.3.0 to development builds (#26498)
Forgot to do this in #26495. Release Notes: - N/A
Marshall Bowers created
96510b7
zed_extension_api: Release v0.3.0 (#26495)
This PR releases v0.3.0 of the Zed extension API. Support for this version of the extension API will land in Zed v0.178.x. Release Notes: - N/A
Marshall Bowers created
a364a13
Fix panel not resizing after external file deletion (#26378)
Previously, when a file was deleted externally and the warning prompt was dismissed with "Close", the panel remained but was empty, leaving an unused split space. This happened because pane.remove_item(...) was being called with close_pane_if_empty set to false, preventing the panel from being removed even when it had no remaining items. This fix changes the third boolean parameter to true, ensuring that the panel is removed if it becomes empty, allowing the layout to properly resize. Closes #23904 Release Notes: - N/A
Cristiano Pantea created
09a4cfd
git_ui: Panel Horizontal Scroll (#26402)
Known Issues: - When items can horizontal scroll, the right selected border is hidden TODO: - [ ] Width calculation is off - [ ] When scrollbars should autohide they don't until hovering the panel - [ ] When switching to and from scrollbar track being visible we are missing a notify somewhere. Release Notes: - Git Panel: Added horizontal scrolling in the git panel --------- Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: Cole Miller <m@cole-miller.net> Co-authored-by: Cole Miller <cole@zed.dev>
Nate Butler , Max Brunsfeld , Cole Miller , and Cole Miller created
5d66c3d
Git panel editor scroll (#26465)
Release Notes: - N/A
Conrad Irwin created
28f33d0
Fix conflict marker in project diff view (#26466)
Closes #ISSUE Release Notes: - N/A Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Conrad Irwin and Max Brunsfeld created
55a90f5
ui: Split up `ContextMenu::render` into smaller methods (#26489)
This PR refactors the `ContextMenu::render` method to extract a couple smaller methods from it. The existing `render` method was suffering from its size, with some of the `match` arms not being able to be formatted with `rustfmt`. Release Notes: - N/A
Marshall Bowers created
8d6abf6
Improve terminal hover tooltips (#26487)
Follow-up of https://github.com/zed-industries/zed/pull/26174 * Fixes `./path/foo.bar` not properly parsed as valid open target * Shows full open target's path in cmd-hover tooltips Before: <img width="864" alt="before_1" src="https://github.com/user-attachments/assets/2575b887-6c4d-486e-8e92-dd76aedf8103" /> <img width="864" alt="before_2" src="https://github.com/user-attachments/assets/ded1f203-523c-4b75-afe9-fe541c785798" /> After: <img width="864" alt="after_1" src="https://github.com/user-attachments/assets/c50d9ba3-5dfb-4cfb-aed6-00e6fa6f088e" /> <img width="864" alt="after_2" src="https://github.com/user-attachments/assets/0cdc8f34-7faa-4aab-87f3-dc0c8b499842" /> Release Notes: - N/A
Kirill Bulatov created
04961a0
Tweak stage/unstage-and-next to start a commit instead of wrapping in the project diff editor (#26434)
Release Notes: - Git Beta: improved the stage-and-next and unstage-and-next actions in the project diff editor to start a commit after acting on the last hunk
Cole Miller created
fd7ab20
Don't clobber the user's upstream settings (#26486)
It's not clobbering time :( Release Notes: - Git Beta: Fixed a bug where our push button would always overwrite the current branch's upstream
Mikayla Maki created
7019aca
git_ui: Truncate long repository and branch names for respective selectors in panel (#26483)
This PR fixes a long repo name pushing the branch selector off the screen, as well as just generally truncating them down in a way smarter than a fixed character limit when long. | Before | After | |---------|-----------| |  |  | Release Notes: - Git Panel: Smart truncate long branch and repository names in their respective selectors
Nate Butler created
d43bcc0
assistant2: Remove "Tools" switch (#26485)
This PR removes the "Tools" switch from Assistant 2, as we can manage tools from the tool selector now. Release Notes: - N/A
Marshall Bowers created
2b94a35
Rework git toasts (#26420)
The notifications from git output could take up variable amounts of screen space, and they were quite obnoxious when a git command printed lots of output, such as fetching many new branches or verbose push hooks. This change makes the push/pull/fetch buttons trigger a small notification toast, based on the output of the command that was ran. For errors or commands with more output the user may want to see, there's an "Open Log" button which opens a new buffer with the output of that command. It also uses this behavior for long error notifications for other git commands like `commit` and `checkout`. The output of those commands can be quite long due to arbitrary githooks running. Release Notes: - N/A --------- Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Julia Ryan and Mikayla Maki created