96a75e0
Fix panic opening branch picker in commit modal (#26407)
Click to expand commit body
Closes #ISSUE Release Notes: - N/A
Conrad Irwin created
96a75e0
Fix panic opening branch picker in commit modal (#26407)
Closes #ISSUE Release Notes: - N/A
Conrad Irwin created
06cbff6
assistant2: Remove excess padding around scripting tool inputs (#26412)
This PR removes some excess padding around the rendered scripting tool inputs. Release Notes: - N/A
Marshall Bowers created
ce05813
assistant2: Render scripting tool inputs when opening past threads (#26408)
This PR makes it so we render the scripting tool inputs to Markdown when opening past threads. Release Notes: - N/A
Marshall Bowers created
4d1d8d6
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
Conrad Irwin created
1f8b14f
Return back a proper `resolved` value (#26406)
Follow-up of https://github.com/zed-industries/zed/pull/26300 https://github.com/zed-industries/zed/pull/26300/files#diff-a3da3181e4ab4f73aa1697d7b6dc0caa0c17b2a187fb83b076dfc0234ec91f54L16900 changed the snippets' `resolved` value but it should have not. Release Notes: - N/A
Kirill Bulatov created
082cc61
assistant2: Persist scripting tool uses in saved threads (#26404)
This PR makes it so the scripting tool uses are persisted to and restored from saved threads. Release Notes: - N/A
Marshall Bowers created
6cfc4dc
gpui: Fix transparent titlebar in fullscreen mode on macOS (#26403)
Closes #23735 This PR fixes an issue where Zed shows a transparent title bar in fullscreen mode on macOS instead of the default gray one. When switching to fullscreen mode, we change the title bar appearance to opaque. When exiting fullscreen mode, we check the existing `appears_transparent` flag that we pass to gpui to decide whether to change the title bar back to transparent or not. Note: Regardless of the `appears_transparent` flag, gpui should always show an opaque title bar in fullscreen mode to prevent a broken appearance, as macOS always displays the title bar in fullscreen mode upon mouse interaction. https://github.com/user-attachments/assets/211fb185-239b-454e-ac7f-b93b25d33805 Release Notes: - Fixed issue where Zed showed transparent titlebar in fullscreen mode on macOS.
Smit Barmase created
b9c4868
terminal: Support trailing `:description or error message` after file path (#26401)
Closes #25086 Release Notes: - Fixed a bug where file paths in the built in terminal of the format `path/to/file.ext:row:col:description or error message` would not be correctly identified as file paths due to the colon & additional text at the end
Ben Kunkle created
570c396
assistant2: Remove unneeded `pub` on field (#26399)
This PR removes an unneeded `pub` on a field in the `ContextStrip`, as it was never accessed externally. Release Notes: - N/A
Marshall Bowers created
5fd034e
docs: Add documentation for using debuggers with Zed (#26391)
Just some basic documentation for using debuggers in Zed development. Goes over configuring cargo to include full debug info, attaching to an instance of Zed, and using a debugger to debug panics and crashes Release Notes: - N/A
Ben Kunkle created
63dab5f
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>
Cole Miller and Max Brunsfeld created
a2d6df3
scripting_tool: Fix formatting of tool description (#26397)
This PR fixes the formatting of the scripting tool description, as it had acquired some strange whitespaces. Release Notes: - N/A
Marshall Bowers created
30e86ac
Add a "secondary" meta key to GPUI keystroke parsing (#26390)
"secondary" means "cmd" on macOS and "ctrl" on not macOS. Release Notes: - Added a "secondary" meta key to the zed keystroke parser, which maps to 'cmd' on macOS and 'ctrl' off of macOS
Mikayla Maki created
976fc3e
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) ### Previous message truncation: Before:  After:  ### Make branch icon match when menu is disabled 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
6309145
Allow too many arguments (#26375)
This is nearly half of our #allows, and seems like something we happily break whenever we need Release Notes: - N/A
Conrad Irwin created
659fae7
Remove GitUiFeatureFlag and enable panel unconditionally (#26386)
Release Notes: - git: Enable for everyone
Conrad Irwin created
02e9701
assistant2: Improve Lua script rendering (#26389)
This PR improves the rendering of Lua scripts provided to the scripting tool. We now render them in code blocks with syntax highlighting: <img width="1297" alt="Screenshot 2025-03-10 at 2 40 51 PM" src="https://github.com/user-attachments/assets/def65b5c-86a8-490f-aaa5-5cc1687fe01e" /> Release Notes: - N/A
Marshall Bowers created
5ecc67f
Remove --frozen flag for cargo-about (#26385)
This was added to support the nix build but accidentally broke our bundling. I'll try to re-add it in a way that works for both in the future. Release Notes: - N/A
Julia Ryan created
73dfb10
Scroll project diff into view always (#26379)
Closes #ISSUE Release Notes: - N/A
Conrad Irwin created
e513e81
assistant2: Decouple scripting tool from the `Tool` trait (#26382)
This PR decouples the scripting tool from the `Tool` trait while still allowing it to be used as a tool from the model's perspective. This will allow us to evolve the scripting tool as more of a first-class citizen while still retaining the ability to have the model call it as a regular tool. Release Notes: - N/A
Marshall Bowers created
2fc4dec
assistant: Use tool interface for scripts (#26377)
We decided to expose scripting as tools again. We are aware of the UX downsides of doing so, but we want to focus on getting it working well first, and the model seems to make better use of it as an actual tool. In the future, the tools API might support streaming. If it doesn't and we need to ship, we can consider reverting this. Release Notes: - N/A
Agus Zubiaga created
3891381
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
b91e929
git: Pass project environment to git binary invocations (#26301)
Closes #26213 Release Notes: - Git Beta: pass down environment variables from project to git operations
Cole Miller created
013a646
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
Cole Miller created
ed52e75
docs: Fix language links (#26368)
This PR fixes some language links in the docs. The Shell Script page wasn't being linked from `SUMMARY.md`, so no page was being generated. There were also some differences in the language lists in the sidebar and on the top-level languages page. Release Notes: - N/A
Marshall Bowers created
6da099a
Unsandbox Lua scripts (#26365)
Per a conversation with @nathansobo, have the Lua scripts run unsandboxed for now (while this feature is behind the staff feature flag). Release Notes: - N/A
Richard Feldman created
5f159bc
go_to_line: Fix goto line + mouse click jumps to previous scroll position (#26362)
Closes #20658 Now, when the "Go to Line" palette is open: - Clicking on the editor will dismiss the palette without changing the scroll position. (PR change) - Pressing Enter will jump to the line number entered in the palette. (Unchanged) - Pressing Escape will jump back to the previous cursor location. (Unchanged) Release Notes: - Fixed an issue where clicking the editor with the mouse while the "Go to Line" palette is open would cause it to jump to the previous scroll position.
Smit Barmase created
a446257
Sort `Cargo.toml`s (#26367)
This PR sorts some `Cargo.toml`s that had become unsorted. Release Notes: - N/A
Marshall Bowers created
c147b58
Remove redundant checks in `do_stage_or_unstage_and_next` (#26364)
Release Notes: - N/A
João Marcos created
84fe1bf
Recognize ixx as part of the cpp suffix (#26333)
Adds "ixx" as path suffix to be recognized for c++. > ixx documentation https://learn.microsoft.com/en-us/cpp/cpp/modules-cpp?view=msvc- I've also added it to the icon file. Release Notes: - N/A
Devzeth created
657d7a9
Add logo for `wgsl` (WebGPU Shading Language) (#26360)
Was dabbling on the shaders these past few days and felt like we could have the WGSL logo. This is based on the logo found on the GPU Web repository: https://github.com/gpuweb/gpuweb/tree/main/logo Release Notes: - N/A
Danilo Leal created
ee05cc3
Add a line numbers toggle to the editor controls menu (#26318)
Closes https://github.com/zed-industries/zed/issues/26305 <img src="https://github.com/user-attachments/assets/795029ad-128a-471f-9adf-c0ef26319bbf" width="400px" /> Release Notes: - N/A
Danilo Leal created
5ed144f
macOS: Add support for external file managers to open directory in Zed (#26357)
Closes #25421 This PR adds support for external file managers to show Zed as an option in the "Open With" context menu for directories on macOS. <img width="350" alt="image" src="https://github.com/user-attachments/assets/c52acd48-73c4-47be-8683-6950e0371b73" /> Release Notes: - Added support for opening folders in Zed from third-party macOS file managers like Path Finder and Super Charge through their "Open With" menu.
Smit Barmase created
2a862b3
nix: Disable checks and remove crane workaround (#26356)
The checkPhase was failing for me in darwin so I turned it off. I think eventually we'll want to use a separate derivation for tests (which crane has a helper for). Crane also solved our issue with spaces in paths so I bumped the flake to pick up that fix and removed our workaround: ipetkov/crane#808. Release Notes: - N/A
Julia Ryan created
4a7c84f
Fix nix build (#26270)
This PR includes lots of small fixes to get our `build.nix` and `shell.nix` back to a working state. I've tested this by running `cargo run` (inside the devshell) and `nix run` on x86 nixos and arm64 darwin machines. I'd appreciate it if others could test building inside the devshell to double-check that it's not just working because I happen to have some system-level packages installed, as well as seeing if it works on other platforms (non-nixos linux, arm linux, x86 darwin). I couldn't get the full test suite (`cargo nextest run --workspace`) passing in the devshell on darwin, but they _are_ all passing on nixos. nixpkgs [disables some of our tests](https://github.com/NixOS/nixpkgs/blob/92d11f06d5cfa80901ef8eea11ee294520fae485/pkgs/by-name/ze/zed-editor/package.nix#L226-L234) that apparently fail or are flakey on hydra, but they don't know why. I'm going to punt on debugging those for now, especially given that they seem to be working for me. I'm also unsure of whether we actually want the nix checkPhase to run the full test suite (it's currently not passing `--workspace`) given that we have separate CI that should enforce that those pass on all PRs. Here's an overview of the changes made: - Fix our `generate-licenses` script - Relaxes the `cargo-about` version requirement slightly so it doesn't try to install an older binary when the nixpkgs one is newer than our requirement - Add a workaround for [this cargo-about issue](https://github.com/zed-industries/zed/issues/19971) obviating the need for the patching done in the nixpkgs package - Set the new `--frozen` flag to avoid network access/mutating the lockfile - Use dynamic webrtc lib from nixpkgs, and fixes up the build script in webrtc-sys that hardcodes it to be statically linked. - Use `inputsFrom` in `shell.nix` and avoid duplicating everything from `build.nix` - Add a temporary workaround for an [upstream crane bug](https://github.com/ipetkov/crane/issues/808). - Fix shebangs in our `script` dir to not hard-code `/bin/bash` There are still a bunch of issues that aren't resolved here, I'll make a tracking issue for those and try to land this first just to get back to an unbroken state. Eventually among other things I'd like to use a `libgit2` from `staticPkgs` and musl cross compilation to build the remote server under nix, and then add that as a separate flake output and include it in the shell's `inputsFrom` list. Thanks @niklaskorz, @GaetanLepage, @bbigras and all the other nixpkgs maintainers that have kept the `zed-editor` package working and up to date! I seriously considered just making our flake `overrideAttrs` the package in nixpkgs given how well maintained it is. Thanks @WeetHet for your volunteer maintinance of this flake. I referenced #24953 while working on these fixes, and I'd love to collaborate on adding some of those pieces like treefmt and a github action. If you're interested I'd really appreciate some help debugging why crane's `buildDepsOnly` isn't working for us. I'm assuming it'd make our `nix build` times go way down from the improved dep caching if we could get it working. Thanks @rrbutani for all the help on this PR 💙. Release Notes: - N/A --------- Co-authored-by: Rahul Butani <rrbutani@users.noreply.github.com> Co-authored-by: Rahul Butani <rr.butani@gmail.com>
Julia Ryan , Rahul Butani , and Rahul Butani created
230e2e4
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.
Mikayla Maki created
d732b8b
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
7c3eecc
Add support for querying file outline in assistant script (#26351)
Release Notes: - N/A
Michael Sloan created
fff37ab
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
8a7a78f
Avoid modifying the LSP message before resolving it (#26347)
Closes https://github.com/zed-industries/zed/issues/21277 To the left is current Zed, right is the improved version. 3rd message, from Zed, to resolve the item, does not have `textEdit` on the right side, and has one on the left. Seems to not influence the end result though, but at least Zed behaves more appropriate now. <img width="1727" alt="image" src="https://github.com/user-attachments/assets/ca1236fd-9ce2-41ba-88fe-1f3178cdcbde" /> Instead of modifying the original LSP completion item, store completion list defaults and apply them when the item is requested (except `data` defaults, needed for resolve). Now, the only place that can modify the completion items is this method, and Python impl seems to be the one doing it: https://github.com/zed-industries/zed/blob/ca9c3af56ffb05a789c2b946489f4406af2c8281/crates/languages/src/python.rs#L182-L204 Seems ok to leave untouched for now. Release Notes: - Fixed LSP completion items modified before resolve request
Kirill Bulatov created
6de3ac3
Revert "Highlight `super` and `this` as keywords in JS/TS/TSX" (#26342)
Reverts zed-industries/zed#25135 This approach was not the best as explained in the response to the original PR. Likely, the better approach is to create a newer specific scope for these kinds of variables under the `@variable` prefix so that themes can control these pseudo-keywords specifically
Ben Kunkle created
5aae3bd
copilot: Fix missing sign-out button when Zed is the edit prediction provider (#26340)
Closes #25884 Added a sign-out button for Copilot in Assistant settings, allowing sign-out even when copilot is disabled. <img width="500" alt="image" src="https://github.com/user-attachments/assets/43fc97ad-f73c-49e1-a7b6-a3910434d661" /> Release Notes: - Added a sign-out button for Copilot in Assistant settings.
Smit Barmase created
e298301
assistant: Make scripting a first-class concept instead of a tool (#26338)
This PR makes refactors the scripting functionality to be a first-class concept of the assistant instead of a generic tool, which will allow us to build a more customized experience. - The tool prompt has been slightly tweaked and is now included as a system message in all conversations. I'm getting decent results, but now that it isn't in the tools framework, it will probably require more refining. - The model will now include an `<eval ...>` tag at the end of the message with the script. We parse this tag incrementally as it streams in so that we can indicate that we are generating a script before we see the closing `</eval>` tag. Later, this will help us interpret the script as it arrives also. - Threads now hold a `ScriptSession` entity which manages the state of all scripts (from parsing to exited) in a centralized way, and will later collect all script operations so they can be displayed in the UI. - `script_tool` has been renamed to `assistant_scripting` - Script source now opens in a regular read-only buffer Note: We still need to handle persistence properly Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Agus Zubiaga and Marshall Bowers created
ed6bf7f
diagnostics: Fix losing focus when activating from diagnostics view (#25517)
Closes #25509
Changes:
- If active item is already diagnostics, don't try to focus it again.
Instead of not focusing, should it just not activate instead? Something
like:
if !workspace
.active_item(cx)
.map(|item| item.item_id() == existing.item_id())
.unwrap_or(false)
{
workspace.activate_item(&existing, true, true, window, cx);
}
Release Notes:
- N/A
brian tan created
f14d667
copilot: Fix onboarding into Copilot requires Zed restart (#26330)
Closes #25594 This PR fixes an issue where signing into Copilot required restarting Zed. Copilot depends on an OAuth token that comes from either `hosts.json` or `apps.json`. Initially, both files don't exist. If neither file is found, we fallback to watching `hosts.json` for updates. However, if the auth process creates `apps.json`, we won't receive updates from it, causing the UI to remain outdated. This PR fixes that by watching the parent `github-copilot` directory instead, which will always contain one of those files along with an additional version file. I have tested this on macOS and Linux Wayland. Release Notes: - Fixed an issue where signing into Copilot required restarting Zed.
Smit Barmase created
22d9b5d
Update key binding documentation (#26321)
Release Notes: - N/A
Joseph T. Lyons created
6ed6e8b
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
4846e6f
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
cb543f9
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
450d727
Fixes to excerpt movement actions and bindings + add `multibuffer` and `singleton_buffer` key contexts (#26264)
Closes #26002 Release Notes: - Added `multibuffer` key context. - `cmd-down` and `cmd-shift-down` on Mac now moves to the end of the last line of a singleton buffer instead of the beginning. In multibuffers, these now move to the start of the next excerpt. - Fixed `vim::PreviousSectionEnd` (bound to `[ ]`) to move to the beginning of the line, matching the behavior of `vim::NextSectionEnd`. - Added `editor::MoveToStartOfNextExcerpt` and `editor::MoveToEndOfPreviousExcerpt`.
Michael Sloan created