194f6c9
Treat `.h++` files as C++ (#42802)
Click to expand commit body
Release Notes: - `.h++` files are now treated as C++.
Benjamin Jurk created
194f6c9
Treat `.h++` files as C++ (#42802)
Release Notes: - `.h++` files are now treated as C++.
Benjamin Jurk created
99277a4
miniprofiler_ui: Copy path to clipboard on click (#43280)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
48e113a
cli: Allow opening non-existent paths (#43250)
Changes are made to `parse_path_with_position`: we try to get the canonical, existing parts of a path, then append the non-existing parts. Closes #4441 Release Notes: - Added the possibility to open a non-existing path using `zed` CLI ``` zed path/to/non/existing/file.txt ``` Co-authored-by: Syed Sadiq Ali <sadiqonemail@gmail.com>
Ulysse Buonomo and Syed Sadiq Ali created
06f8e35
agent_ui: Make thread markdown editable (#43377)
This PR makes the thread markdown editable. This refers to the "open thread as markdown" feature, where you previously could only read. One benefit of this move is that it makes a bit more obvious that you can `cmd-s` to save the markdown, allowing you to store the content of a given thread. You could already do this before, but due to it being editable now, you see the tab with a dirty indicator, which communicates that better. Release Notes: - agent: Made the thread markdown editable.
Danilo Leal created
07b6686
docs: Improve edit prediction page (#43379)
This PR improves the edit prediction page particularly by adding information about pricing and plans, which wasn't at all mentioned here before, _and_ by including a section with a keybinding example demonstrating how to always use just `tab` to always accept edit predictions. Release Notes: - N/A
Danilo Leal created
dbcfb48
Add mouse-based affordance to open a recent project in new window (#43373)
Closes https://github.com/zed-industries/zed/issues/31796 <img width="500" height="1034" alt="Screenshot 2025-11-23 at 7 39 2@2x" src="https://github.com/user-attachments/assets/bd516359-328f-44aa-9130-33f9567df805" /> Release Notes: - N/A
Danilo Leal created
34a2e1d
settings_ui: Don't show sh as default shell on windows (#43276)
Closes #ISSUE Release Notes: - Fixed an issue in the settings UI where changing the terminal shell would set the default shell to `sh` on Windows
Ben Kunkle created
da143c5
Fix inline assist panic (#43364)
Fixes a panic that was introduced in #42633. Repro steps: 1. Open the inline assistant and mention a file in the prompt 2. Run the inline assistant 3. Remove the mention and insert a different one 4. 💥 This would happen because the mention set still had a reference to the old editor, because we create a new one in `PromptEditor::unlink`. Also removes the unused `crates/agent_ui/src/context_picker/completion_provider.rs` file, which was not removed by mistake in the previous PR. Release Notes: - N/A
Bennet Bo Fenner created
1f03fc6
editor: Fix tab tooltips not showing file path for remote files (#43359)
Closes #42344 Release Notes: - Fixed editor tab tooltips not showing file path for remote files Here's the before/after, tested both local and remote: https://github.com/user-attachments/assets/2768a0f8-e35b-4eff-aa95-d0decb51ec78
Mayank Verma created
06e03a4
terminal_view: Reuse editor's blink manager (#43351)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
41c6190
Fix labels for GitHub issue templates (#43348)
Release Notes: - N/A
John Tur created
f57f4cd
agent_ui: Display footer for model selector when in Zed agent (#43294)
This PR adds back the footer with the "Configure" button in the model selector but only when the seeing it from the Zed agent (or inline assistant/text threads). I had removed it a while back because seeing the "Configure" button, which takes you to the agent panel settings view, when clicking from an external agent didn't make much sense, given there's nothing model-wise you can configure from Zed (at least yet) for an external agent. This also makes the button in the footer a bit nicer by making it full screen and displaying a keybinding, so that you can easily do the whole "trigger model selector → go to settings view" all with the keyboard. <img width="400" height="870" alt="Screenshot 2025-11-21 at 10 38@2x" src="https://github.com/user-attachments/assets/c14f2acf-b793-4bc1-ac53-8a8a53b219e6" /> Release Notes: - N/A
Danilo Leal created
d9498b4
debugger_ui: Improve some elements of the UI (#43344)
- In the launch tab of the new session mode, I've switched it to use the `InputField` component instead given that had all that we needed already. Allows for removing a good chunk of editor-related code - Also in the launch tab, added support for keyboard navigation between all of the elements there (dropdown, inputs, and switch component) - Added some simple an empty state treatment for the breakpoint column when there are none set https://github.com/user-attachments/assets/a441aa8a-360b-4e38-839f-786315a8a235 Release Notes: - debugger: Made the input elements within the launch tab in the new session modal keyboard navigable˙.
Danilo Leal created
7a5851e
ui: Remove `CheckboxWithLabel` and improve `Switch` and `Checkbox` (#43343)
This PR finally removes the `CheckboxWithLabel` component, which is not fully needed given the `Checkbox` can take a `label` method. Then, took advantage of the opportunity to add more methods with regards to label customization (position, size, and color) in both the `Checkbox` and `Switch` components. Release Notes: - N/A
Danilo Leal created
5b23a4a
docs: Fix minor typo in docker.md (#43334)
Updated wording (added a missing word) for reporting issues in Dockerfile extension documentation. Closes #ISSUE N/A Release Notes: - N/A
warrenjokinen created
10eba0b
Update JavaScript default language server (#43316)
As stated in [TypeScript Language Server documentation](https://zed.dev/docs/languages/typescript#language-servers), JavaScript uses `vtsls` as the default language server. Release Notes: - N/A
Liffindra Angga Zaaldian created
ab0527b
gpui: Fix documentation of window methods (#43315)
Closes #43313 Release Notes: - N/A Signed-off-by: Marco Mihai Condrache <52580954+marcocondrache@users.noreply.github.com>
Marco Mihai Condrache created
bfe141e
Fix wsl path parsing (#43295)
Closes #40286 Release Notes: - N/A --------- Co-authored-by: John Tur <john-tur@outlook.com>
Julia Ryan and John Tur created
4376eb8
Disable flaky `test_git_status_postprocessing` test (#43293)
Release Notes: - N/A
Cole Miller created
8e2c0c3
askpass: Fix double command ampersand in powershell script (#43289)
Fixes https://github.com/zed-industries/zed/issues/42618 / https://github.com/zed-industries/zed/issues/43109 Release Notes: - N/A
Lukas Wirth created
de58a49
Fix a bug where Anthropic completions would not work on nightly (#43287)
Follow up to: https://github.com/zed-industries/zed/pull/43185/files Release Notes: - N/A Co-authored-by: Michael <mbenfield@zed.dev>
Mikayla Maki and Michael created
d07193c
git: Handle git pre-commit hooks separately (#43285)
We now run git pre-commit hooks before we commit. This ensures we don't run into timeout issues with askpass delegate and report invalid error to the user. Closes #43157 Release Notes: - Fixed long running pre-commit hooks causing committing from Zed to fail. Co-authored-by: Cole Miller <cole@zed.dev>
Jakub Konka and Cole Miller created
279b76d
Retry sentry uploads (#43267)
We see internal server errors occasionally; and it's very annoying to have to re-run the entire step Release Notes: - N/A
Conrad Irwin created
dfa102c
Add setting for enabling server-side decorations (#39250)
Previously, this was controllable via the undocumented ZED_WINDOW_DECORATIONS environment variable (added in #13866). Using an environment variable for this is inconvenient because it requires users to set that environment variable somehow before starting Zed, such as in the .desktop file or persistently in their shell. Controlling this via a Zed setting is more convenient. This does not modify the design of the titlebar in any way. It only moves the existing option from an environment variable to a Zed setting. Fixes #14165 Client-side decorations (default): <img width="3840" height="2160" alt="image" src="https://github.com/user-attachments/assets/525feb92-2f60-47d3-b0ca-47c98770fa8c" /> Server-side decorations in KDE Plasma: <img width="3840" height="2160" alt="image" src="https://github.com/user-attachments/assets/7379c7c8-e5e3-47ba-a3ea-4191fec9434d" /> Release Notes: - Changed option for Wayland server-side decorations from an environment variable to settings.json field --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Be and Conrad Irwin created
a04b3d8
gpui: Fall back to client-side decorations on Wayland if SSD not supported (#39313)
It is optional for Wayland servers to support server-side decorations. In particular, GNOME chooses to not implement SSD (https://gitlab.gnome.org/GNOME/mutter/-/issues/217). So, even if the application requests SSD, it must draw client-side decorations unless the application receives a response from the server confirming the request for SSD. Before, when the user requested SSD for Zed, but the Wayland server did not support it, there were no server-side decorations (window titlebar) drawn, but Zed did not draw the window minimize, maximize, and close buttons either. This fixes Zed so it always draws the window control buttons if the Wayland server does not support SSD. Before on GNOME Wayland with SSD requested: <img width="3840" height="2160" alt="image" src="https://github.com/user-attachments/assets/68a6d853-623d-401f-8e7f-21d4dea00543" /> After on GNOME Wayland with SSD requested: <img width="3840" height="2160" alt="image" src="https://github.com/user-attachments/assets/b258ae8b-fe0e-4ba2-a541-ef6f2c38f788" /> Release Notes: - Fixed window control buttons not showing in GNOME Wayland when SSD requested
Be created
e76b485
terminal: New settings for path hyperlink regexes (#40305)
Closes: - #12338 - #40202 1. Adds two new settings which allow customizing the set of regexes used to identify path hyperlinks in terminal 1. Fixes path hyperlinks for paths containing unicode emoji and punctuation, for example, `mojo.🔥` 1. Fixes path hyperlinks for Windows verbatim paths, for example, `\\?\C:\Over\here.rs`. 1. Improves path hyperlink performance, especially for terminals with a lot of content 1. Replaces existing custom hard-coded default path hyperlink parsing logic with a set of customizable default regexes ## New settings (from default.json) ### terminal.path_hyperlink_regexes Regexes used to identify paths for hyperlink navigation. Supports optional named capture groups `path`, `line`, `column`, and `link`. If none of these are present, the entire match is the hyperlink target. If `path` is present, it is the hyperlink target, along with `line` and `column` if present. `link` may be used to customize what text in terminal is part of the hyperlink. If `link` is not present, the text of the entire match is used. If `line` and `column` are not present, the default built-in line and column suffix processing is used which parses `line:column` and `(line,column)` variants. The default value handles Python diagnostics and common path, line, column syntaxes. This can be extended or replaced to handle specific scenarios. For example, to enable support for hyperlinking paths which contain spaces in rust output, ``` [ "\\s+(-->|:::|at) (?<link>(?<path>.+?))(:$|$)", "\\s+(Compiling|Checking|Documenting) [^(]+\\((?<link>(?<path>.+))\\)" ], ``` could be used. Processing stops at the first regex with a match, even if no link is produced which is the case when the cursor is not over the hyperlinked text. For best performance it is recommended to order regexes from most common to least common. For readability and documentation, each regex may be an array of strings which are collected into one multi-line regex string for use in terminal path hyperlink detection. ### terminal.path_hyperlink_timeout_ms Timeout for hover and Cmd-click path hyperlink discovery in milliseconds. Specifying a timeout of `0` will disable path hyperlinking in terminal. ## Performance This PR fixes terminal to only search the hovered line for hyperlinks and adds a benchmark. Before this fix, hyperlink detection grows linearly with terminal content, with this fix it is proportional only to the hovered line. The gains come from replacing `visible_regex_match_iter`, which searched all visible lines, with code that only searches the line hovered on (including if the line is wrapped). Local benchmark timings (terminal with 500 lines of content): ||main|this PR|Δ| |-|-|-:|-| | cargo_hyperlink_benchmark | 1.4 ms | 13 µs | -99.0% | | rust_hyperlink_benchmark | 1.2 ms | 11 µs | -99.1% | | ls_hyperlink_benchmark | 1.3 ms | 7 µs | -99.5% | Release Notes: - terminal: New settings to allow customizing the set of regexes used to identify path hyperlinks in terminal - terminal: Fixed terminal path hyperlinks for paths containing unicode punctuation and emoji, e.g. mojo.🔥 - terminal: Fixed path hyperlinks for Windows verbatim paths, for example, `\\?\C:\Over\here.rs` - terminal: Improved terminal hyperlink performance, especially for terminals with a lot of content visible
Dave Waggoner created
0492255
Make community champions public (#43271)
Release Notes: - N/A
Joseph T. Lyons created
6b9c2b0
zeta2: Improve jump outside UI (#43262)
Still a prototype UI but a bit more noticeable :) Release Notes: - N/A
Agus Zubiaga created
f0820ae
agent_ui: Remove context strip from inline assistant (#42633)
TODO - [x] Implement PromptEditor::paste - [x] Fix creases on unlink - [x] PromptCompletionProviderDelegate::supports_images - [ ] Fix highlighting in completion menu Release Notes: - N/A --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Bennet Bo Fenner and Danilo Leal created
5a9b810
markdown: Add LaTeX syntax highlighting injection (#41110)
Closes [#30264](https://github.com/zed-industries/zed/issues/30264) Small addition based on [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter/blob/main/runtime/queries/markdown_inline/injections.scm) <img width="1122" height="356" alt="Screenshot From 2025-10-24 15-47-58" src="https://github.com/user-attachments/assets/33e7387d-a299-4921-9db8-622d2657bec1" /> This does require the LaTeX extension to be installed. Release Notes: - Added LaTeX highlighting for inline and display equations in Markdown when the LaTeX extension is installed --------- Co-authored-by: Ben Kunkle <ben@zed.dev>
Luke Naylor and Ben Kunkle created
4fb671f
zeta2: Predict at next diagnostic location (#43257)
When no predictions are available for the current buffer, we will now attempt to predict at the closest diagnostic from the cursor location that wasn't included in the last prediction request. This enables a commonly desired kind of far-away jump without requiring explicit model support. Release Notes: - N/A
Agus Zubiaga created
a3cbe1a
crashes: Print panic message to logs (#43159)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
9b82361
Fix install linux (#43205)
Closes: #42726 Release Notes: - Fix ./script/install-linux for installing a development version of Zed on Linux
Conrad Irwin created
3c69e5c
Revert "gpui: Convert macOS clipboard file URLs to paths for paste" (#43254)
Reverts zed-industries/zed#36848 Turns out this broke copying a screenshot from apps like CleanShot X and then pasting it over. We should land this again after taking a look at those cases. Pasting screenshots from the native macOS screenshot functionality works though. cc @seantimm Release Notes: - Fixed issue where copying a screenshot from apps like CleanShot X into Agent Panel didn't work as expected.
Smit Barmase created
2ac13b9
Fallible Settings (#42938)
Also tidies up error notifications so that in the case of syntax errors we don't see noise about the migration failing as well. Release Notes: - Invalid values in settings files will no longer prevent the rest of the file from being parsed.
Conrad Irwin created
a8d7f06
Revert "util: Check whether discovered powershell is actually executable" (#43247)
Reverts zed-industries/zed#43044 Closes https://github.com/zed-industries/zed/issues/43224 This slows down startup on windows significantly Release Notes: - Fixed slow startup on Windows
Lukas Wirth created
28e1c15
agent_ui: Fix sent agent prompt getting lost after authentication (#43245)
Closes #42379 Release Notes: - Fixed issue where a sent agent message is not restored after successful authentication.
Smit Barmase created
0ee7271
Allow onboarding pages to be zoomed in/out (#43244)
We were just missing adding keybindings for these. Release Notes: - onboarding: The onboarding pages can now be zoomed in/out with the same keybindings you'd use to zoom in/out a regular buffer.
Danilo Leal created
d6a5566
docs: Point to the right URL for Gemini CLI (#43239)
Point to the right URL for Gemini CLI. Release Notes: - N/A --- 💖
Kunall Banerjee created
ea85f90
docs: Fix small typo in docs for Snippets (#43238)
Happened to notice this typo while going through the docs. Release Notes: - N/A --- 💖
Kunall Banerjee created
1ce58a8
zed: Allocate more rayon threads depending on available parallelism (#43235)
While zed itself is not a heavy user of rayon, wasmtime is, especially for compilation. This change is similar to the rayon default but we halve the number of threads still so we don't spawn too many threads overall. Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
a30887f
Fix some panics (#43233)
Fixes ZED-2NP Fixes ZED-3DP Fixes ZED-3EV Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
92b6e8e
Jetbrains keymap updates (#42848)
Closes https://github.com/zed-industries/zed/issues/14639 ## Release Notes: Various improvements to the Jetbrains keymap. Added various missing keyboard shortcuts that I use on a daily basis in Jetbrains, and changed a few which were present in the keymap but mapped to the wrong behavior. ### Added: - Added various missing keybindings for Jetbrains keymap - `ctrl-n` → `project_symbols::Toggle` - `ctrl-alt-n` → `file_finder::Toggle` (open project files) - `ctrl-~` → `git::Branch` - `ctrl-\` → `assistant::InlineAssist` - `ctrl-space` → `editor::ShowCompletions` - `ctrl-q` → `editor::Hover` - `ctrl-p` → `editor::ShowSignatureHelp` - `ctrl-f5` → `task::Rerun` - `shift-f9` → `debugger::Start` - `shift-f10` → `task::Spawn` - Added macOS equivalents for all of the above, however I only have a Linux machine so I have not tested the mac bindings. The binding are generally the same except `ctrl → cmd` with few exceptions. - `cmd-j` → `editor::Hover` ### Fixed: - Several incorrectly mapped keybindings for the Jetbrains keymap - `ctrl-alt-s` → `editor::OpenSettings` (was `editor::OpenSettingsFile`) - `ctrl-alt-b` → `editor::GoToImplementation` (was `editor::GoToDefinitionSplit`) - `alt-left` → `pane::ActivatePreviousItem` - `alt-right` → `pane::ActivateNextItem` - `ctrl-k` now opens the Git panel. I believe this was commented out because of a bug where focus is not given to the commit message text box, but imo the current behavior of not doing anything at all feels more confusing/frustrating to a Jetbrains user (projecting a little here, happy to revert).
jtaub created
0a6cb61
Fix `connect.host` setting being ignored by debugpy (#43190)
Closes #42727 Unfortunately we can only support IPv4 addresses right now because `TcpArguments` only supports an IPv4 address. I'm not sure how difficult it would be to lift this limitation. Release Notes: - Fixed `connect.host` setting being ignored by debugpy Co-authored-by: Cole Miller <cole@zed.dev>
Andrew Farkas and Cole Miller created
e2f6422
language: Move language server update to background when it takes too long (#43164)
Closes https://github.com/zed-industries/zed/issues/42360 If updating a language server takes longer than 10 seconds, we now fall back to launching the currently installed version (if exists) and continue downloading the update in the background. Release Notes: - Improved language server updates for slow connection, now Zed launches existing server if the update is taking too long. --------- Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Smit Barmase and Piotr Osiewicz created
bb514c1
macOS: Enumerate GPUs first; prefer low-power non-removable; fall back to system default (#38164)
Problem: Some macOS environments report no devices via MTLCopyAllDevices, causing startup failure with “unable to access a compatible graphics device,” especially on Apple Silicon. Change: Prefer MTLCreateSystemDefaultDevice (metal::Device::system_default()) first. If None, enumerate devices and select a non‑removable, low‑power device by preference. Why this works: On Apple Silicon the system default is the unified GPU; on Intel, the fallback keeps a stable policy and avoids accidentally picking removable/high‑power devices. Impact: Fixes startup on affected ASi systems; improves selection consistency on Intel multi‑GPU. Behavior unchanged where system_default() succeeds. Risk: Low. Aligns with Apple’s recommended selection path. Still fails early with a clearer message if no Metal devices exist. Closes #37689. Release Notes: - Fixed: Startup failure on some Apple Silicon machines when Metal device enumeration returned no devices by falling back to the system default device. --------- Co-authored-by: 张小白 <364772080@qq.com> Co-authored-by: Kate <work@localcc.cc>
cacaosteve , 张小白 , and Kate created
550442e
Disable fsevents tests (#43218)
They're flakier than phyllo dough, and not nearly as delicious Release Notes: - N/A
Conrad Irwin created
b3ebcef
gpui: Only time out multi-stroke bindings when current prefix matches (#42659)
Part One for Resolving #10910 ### Summary Typing prefix (partial keybinding) will behave like Vim. No timeout until you either finish the sequence or hit Escape, while ambiguous sequences still auto-resolve after 1s. ### Description This follow-up tweaks the which-key system first part groundwork so our timeout behavior matches Vim’s expectations. Then we can implement the UI part in the next step (reference latest comments in https://github.com/zed-industries/zed/pull/34798) - `DispatchResult` now reports when the current keystrokes are already a complete binding in the active context stack (`pending_has_binding`). We only start the 1s flush timer in that case. Pure prefixes or sequences that only match in other contexts—stay pending indefinitely, so leader-style combos like `space f g` no longer evaporate after a second. - `Window::dispatch_key_event` cancels any prior timer before scheduling a new one and only spawns the background flush task when `pending_has_binding` is true. If there’s no matching binding, we keep the pending keystrokes and rely on an explicit Escape or more typing to resolve them. Release Notes: - Fixed multi-stroke keybindings so only ambiguous prefixes auto-trigger after 1 s; unmatched prefixes now stay pending until canceled, matching Vim-style leader behavior.
Xipeng Jin created
2b9eeb9
Disable keychain timeout in bundle-mac (#43204)
Attempt to reduce the number of times bundle-mac fails to notorize by disabling keychain's auto-lock timeout Release Notes: - N/A
Conrad Irwin created
07d9898
Make the edit prediction status bar menu work correctly when using sweep (#43203)
Release Notes: - N/A --------- Co-authored-by: Ben Kunkle <ben@zed.dev>
Max Brunsfeld and Ben Kunkle created