51b7d06
Fix a typo: to -> two (#44272)
Click to expand commit body
Release Notes: - N/A
Haojian Wu created
51b7d06
Fix a typo: to -> two (#44272)
Release Notes: - N/A
Haojian Wu created
66c7bdf
git: For conflicted files, set project diff excerpts using conflicts only (#44263)
It's just distracting having excerpts for all the successfully merged hunks. Release Notes: - git: The project diff now focuses on merge conflicts for files that have them.
Cole Miller created
363fbbf
git: Fix excerpt ranges in the commit view (#44261)
Release Notes: - N/A
Cole Miller created
9860884
gpui: Make length helpers into const functions (#44259)
Make gpui's `rems()`, `phi()`, `auto()` length related helpers into const functions. I can't see why these functions aren't already const except that it must've been overlooked when they were written? In my project I had need for rems() to be const, and I thought I'd do phi() and auto() whilst I was in the neighbourhood Release Notes: - N/A
Serophots created
4cef8eb
Fix persistence for single-file worktrees (#44257)
We were just deleting them before Co-Authored-By: Matthew Chisolm <mchisolm0@gmail.com> Closes #ISSUE Release Notes: - Fixed restoring window location for single-file worktrees Co-authored-by: Matthew Chisolm <mchisolm0@gmail.com>
Conrad Irwin and Matthew Chisolm created
e5f8773
markdown_preview: Remove unnecessary vec allocation (#44238)
Instead of allocating a one-element vec on the heap, we can just use an array here (since `Editor::edit` accepts anything that implements `IntoIterator`). I haven't checked if there are more instances that can be simplified, just accidentally stumbled upon this when working on something else in the markdown preview crate. Release Notes: - N/A
Oleksii (Alexey) Orlenko created
f4b8b0f
settings: Fix inconsistent terminal font weight step size (#44243)
Closes #44242 Release Notes: - Fixed inconsistent terminal font weight step size in settings
Mayank Verma created
5cd30e5
inline assistant: Use tools and remove insertion mode (#44248)
Co-authored by: Mikayla Maki <mikayla.c.maki@gmail.com> Co-authored-by: Danilo Leal <daniloleal09@gmail.com> Release Notes: - N/A
Michael Benfield created
a350438
Specify a schema to use when dealing with JSONC files (#44250)
Follow-up of https://github.com/zed-industries/zed/pull/43854 Closes https://github.com/zed-industries/zed/issues/40970 Seems that json language server does not distinguish between JSONC and JSON files in runtime, but there is a static schema, which accepts globs in its `fileMatch` fields. Use all glob overrides and file suffixes for JSONC inside those match fields, and provide a grammar for such matches, which accepts trailing commas. Release Notes: - Improved JSONC trailing comma handling
Kirill Bulatov created
bd6ca84
git_ui: Improve the branch picker UI (#44217)
Follow up to https://github.com/zed-industries/zed/pull/42819 and
https://github.com/zed-industries/zed/pull/44206.
- Make this picker feel more consistent with other similar pickers
(namely, the project picker)
- Move actions to the footer and toggle them conditionally
- Only show the "Create" and "Create New From: {default}" when we're
selecting the "Create" list item _or_ when that item is the only
visible. This means I'm changing here the state transition to only
change to `NewBranch/NewRemote` if we only have those items available.
- Reuse more UI code and use components when available (e.g.,
`ListHeader`)
- Remove secondary actions from the list item
Next step (in another PR), will be refine the same picker in the
smaller, panel version.
https://github.com/user-attachments/assets/fe72ac06-c1df-4829-a8a4-df8a9222672f
Release Notes:
- N/A
Danilo Leal created
f9cea5a
Fix project not getting dropped after closing window (#44237)
Bennet Bo Fenner created
3bb6c25
git_ui: Fix history view label truncation (#44218)
There's still a weird problem happening where the labels (and the label on the tab, too, for what is worth) flicker as the file history view gets smaller. I suspect that problem is related to something else—potentially the truncation algorithm or focus management—so I'm not solving it here. <img width="500" height="1948" alt="Screenshot 2025-12-05 at 11 24@2x" src="https://github.com/user-attachments/assets/25715725-e2cb-475a-bdab-f506bb75475f" /> Release Notes: - N/A
Danilo Leal created
37b0cdf
multi_buffer: Remap excerpt ids to latest excerpt in excerpt fetching (#44229)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ... Co-authored by: Cole Miller <cole@zed.dev>
Lukas Wirth created
d76dd86
tab_switcher: Add documentation for tab switcher (#44189)
Release Notes: - Added documentation for Tab Switcher
Dino created
b558be7
adds tracing for instrumenting non-async functions (#44147)
Tracing code is not included in normal release builds Documents how to use them in our performance docs Only the maps and cursors are instrumented atm # Compile times: current main: fresh release build (cargo clean then build --release) 377.34 secs current main: fresh debug build (cargo clean then build ) 89.31 secs tracing tracy: fresh release build (cargo clean then build --release) 374.84 secs tracing tracy: fresh debug build (cargo clean then build ) 88.95 secs tracing tracy: fresh release build with timings (cargo clean then build --release --features tracing) 375.77 secs tracing tracy: fresh debug build with timings (cargo clean then build --features tracing) 90.03 secs Release Notes: - N/A --------- Co-authored-by: localcc <work@localcc.cc>
David Kleingeld and localcc created
07fe8e9
remoting: Proxy configuration docs (#44225)
Adds an explicit section about how to configure proxies when remoting. Release Notes: - N/A
Agus Zubiaga created
b776178
agent_ui: Fix mention and slash command menu not appearing with show_completions_on_input set to false (#44222)
Addresses a regression introduced by https://github.com/zed-industries/zed/pull/44021 that caused @mentions and slash commands to stop working if you set `show_completions_on_input: false` in your settings. In this case, we should always show these menus, otherwise the features won't work at all. Release Notes: - N/A
Ben Brandt created
1d0aef6
Ensure font features are applied to styled text (#44219)
- Replace `gpui::styled::Styled.font_family()` calls with `gpui::styled::Styled.font()` when laying out inline diagnostics and inline blame, to ensure that the font's features are also used, and not just the font feature. - Update both `editor::hover_popover::hover_markdown_style` and `editor::hover_popover::diagnostics_markdown_style` to ensure that both the UI and Buffer font features are used in both markdown and diagnostics popover. Closes #44209 Release Notes: - Fixed font feature application for inline git blame, inline diagnostics, markdown popovers and diagnostics popovers
Dino created
c7ef302
remoting: Server download connect timeout (#44216)
Sometimes machines are configured to drop outbound packets (rather than reject connections). In these cases, curl/wget just hang causing our download step to never complete. This PR adds a timeout of 10s for the connection (not the whole download), so that in situations like this we can fallback to our client-side download eventually. Related to but doesn't fully fix: https://github.com/zed-industries/zed/issues/43694 and https://github.com/zed-industries/zed/issues/43718 Release Notes: - remote: Add 10s connect timeout for server download
Agus Zubiaga created
822fc7e
remote: Use last line of `uname` and shell output (#44165)
We have seen cases (see https://github.com/zed-industries/zed/issues/43694) where the user's shell initialization script includes text that ends up in the output of the commands we use to detect the platform and shell of the remote. This solution isn't perfect, but it should address the issue in most situations since both commands should only output one line. Release Notes: - remote: Improve resiliency when initialization scripts output text
Agus Zubiaga created
126d708
git: Fix branch picker creating new branches with refs/head/ prefixed on the branch name (#44206)
The bug was introduced in this recent PR: https://github.com/zed-industries/zed/pull/42819. Since it's still in nightly, there is no need for release notes. I also polished the feature a bit by: - Ensuring branch names are always a single line so the branch picker's uniform list uses the correct element height. - Adding tooltip text for the filter remotes button. - Fixing the create branch from default icon showing up for non-new branch entries. Release Notes: - N/A
Anthony Eid created
a5ab5c7
gpui: Document the leak detector (#44208)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
35da6d0
debugger: Fix evaluate selection running two evaluations & failing for Python and go (#44205)
Evaluate selection now acts as if the text was typed verbatim into the console. Closes ##33526 Release Notes: - debugger: Fixed "evaluate selection" not behaving as if the highlighted text was not typed verbatim into the console.
Piotr Osiewicz created
d6241b1
Fix infinite loop in assemble_excerpts (#44195)
Also, expand the number of identifiers fetched. Release Notes: - N/A
Max Brunsfeld created
42583c1
Reorganize edit prediction code and remove old experiments (#44187)
Release Notes: - N/A --------- Co-authored-by: Agus Zubiaga <agus@zed.dev> Co-authored-by: Ben Kunkle <ben@zed.dev>
Max Brunsfeld , Agus Zubiaga , and Ben Kunkle created
7616710
Add experimental LSP-based context retrieval system for edit prediction (#44036)
To do * [x] Default to no context retrieval. Allow opting in to LSP-based retrieval via a setting (for users in `zeta2` feature flag) * [x] Feed this context to models when enabled * [x] Make the zeta2 context view work well with LSP retrieval * [x] Add a UI for the setting (for feature-flagged users) * [x] Ensure Zeta CLI `context` command is usable --- * [ ] Filter out LSP definitions that are too large / entire files (e.g. modules) * [ ] Introduce timeouts * [ ] Test with other LSPs * [ ] Figure out hangs Release Notes: - N/A --------- Co-authored-by: Ben Kunkle <ben@zed.dev> Co-authored-by: Agus Zubiaga <agus@zed.dev>
Max Brunsfeld , Ben Kunkle , and Agus Zubiaga created
cd8679e
Allow trailing commas in builtin JSONC schemas (#43854)
The JSON language server looks for a top-level `allowTrailingCommas` flag to decide whether it should warn for trailing commas. Since the JSONC parser for these builtin files can handles trailing commas, adding this flag to the schema also prevents a warning for those commas. I don't think there's an issue that is only for this specific issue, but it relates to *many* existing / older issues: - #18509 - #17487 - #40970 - #18509 - #21303 Release Notes: - Suppress warning for trailing commas in builtin JSON files (`settings.json`, `keymap.json`, etc.)
Ian Chamberlain created
43f977c
terminal view: Use tooltip element for the tab tooltip (#44169)
Just recently realized we don't need this custom component for it given we now have `Tooltip::element`. UI result is exactly the same; nothing changes. Release Notes: - N/A
Danilo Leal created
bdb8caa
git_ui: Fix indent guides not showing for file buffers in the commit view (#44166)
Follow up to https://github.com/zed-industries/zed/pull/44162 where my strategy for not displaying the indent guides only in the commit message was wrong given I ended up... disabling indent guides for all the buffers. This PR adds a new method to the editor where we can disable it for a specific buffer ID following the pattern of `disable_header_for_buffer`. Release Notes: - N/A
Danilo Leal created
9ae77ec
markdown: Don't adjust indentation when inserting with multiple cursors (#40794)
Closes #40757 ## Summary This PR addresses an issue where Zed incorrectly adjusts the indentation of Markdown lists when inserting text using multiple cursors. Currently: - Editing individual lines with a single cursor behaves correctly (no unwanted indentation changes). - Using multiple cursors, Zed automatically adjusts the indentation, unlike VS Code, which preserves the existing formatting. ## Tasks - [x] Implement a new test to verify correct Markdown indentation behavior with multiple cursors. - [x] Apply the fix to prevent Zed from adjusting indentation when inserting text on multiple cursors. ------------------------ Release Notes: - Fixed an issue where inserting text with multiple cursors inside a nested Markdown list would cause it to lose its indentation. --------- Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
vipex and Smit Barmase created
d5ed9d3
git: Don't call `git2::Repository::find_remote` for every blamed buffer (#44107)
We already store the remote URLs for `origin` and `upstream` in the `RepositorySnapshot`, so just use that data. Follow-up to #44092. Release Notes: - N/A
Cole Miller created
74a1b5d
Update PHP language server docs (#44001)
Reformat document structure like other language docs, improve information flow, add missing requirements, and fix typos. Release Notes: - N/A --------- Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Liffindra Angga Zaaldian and Piotr Osiewicz created
07af011
worktree: Fix git ignored directories dropping their contents when they are refreshed (#44143)
Closes https://github.com/zed-industries/zed/issues/38653 Release Notes: - Fixed git ignored directories appearing as empty when their content changes on windows Co-authored by: Smit Barmase <smit@zed.dev>
Lukas Wirth created
c357dc2
git_ui: Clean up the commit view UI (#44162)
Danilo Leal created
93bc661
editor: Improve performance of `update_visible_edit_prediction` (#44161)
One half of https://github.com/zed-industries/zed/issues/42861 This basically reduces the main thread work for large enough json (and other) files from multiple milliseconds (15ms was observed in that test case) down to microseconds (100ms here). Release Notes: - Improved cursor movement performance when edit predictions are enabled
Lukas Wirth created
a33e881
remote: Recognize WSL interop to open browser for codex web login (#44136)
Closes #41521 Release Notes: - Fixed codex web login not working on wsl remotes if no browser is installed Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Lukas Wirth and Ben Brandt created
c978db8
Fix background scanner deadlock (#44109)
Fixes a deadlock in the background scanner that occurs on single-core Linux devices. This happens because the background scanner would `block` on a background thread waiting for a future, but on single-core Linux devices there would be no other thread to pick it up. This mostly affects SSH remoting use cases where it's common for servers to have 1 vCPU. Closes #43884 Closes #43809 Release Notes: - Fix SSH remoting hang when connecting to 1 vCPU servers
Agus Zubiaga created
2dad46c
gpui: Fix division by zero when chars/sec = 0 on Wayland (#44151)
Closes #44148 the existing rate == 0 check inside the timer callback already handles disabling repeat - it just drops the timer immediately. So the fix prevents the crash while preserving correct behavior. Release Notes: - Linux (Wayland): Fixed a crash that could occur when `characters_per_second` was zero
Rawand Ahmed Shaswar created
4c51fff
Add support for git remotes (#42819)
Follow up of #42486 Closes #26559 https://github.com/user-attachments/assets/e2f54dda-a78b-4d9b-a910-16d51f98a111 Release Notes: - Added support for git remotes --------- Signed-off-by: Benjamin <5719034+bnjjj@users.noreply.github.com>
Coenen Benjamin created
0d80b45
python: Improve sorting order of toolchains to give higher precedence to project-local virtual environments that are within current subproject (#44141)
Closes #44090 Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com> Release Notes: - python: Improved sorting order of toolchains in monorepos with multiple local virtual environments. - python: Fixed toolchain selector not having an active toolchain selected on open. --------- Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com> Co-authored-by: Smit <smit@zed.dev>
Piotr Osiewicz , Smit Barmase , and Smit created
bad6bde
Use buffer language when formatting with Prettier (#43368)
Set `prettier_parser` explicitly if the file extension for the buffer does not match a known one for the current language Release Notes: - N/A --------- Co-authored-by: Kirill Bulatov <kirill@zed.dev>
John Gibb and Kirill Bulatov created
4ec2d04
search: Fix sort order not being maintained in presence of open buffers (#44135)
In project search UI code we were seeing an issue where "Go to next match" would act up and behave weirdly. It would not wrap at times. Stuff would be weird, yo. It turned out that match ranges reported by core project search were sometimes out of sync with the state of the multi-buffer. As in, the sort order of `search::ProjectSearch::match_ranges` would not match up with multi-buffer's sort order. This is ~because multi-buffers maintain their own sort order. What happened within project search is that we were skipping straight from stage 1 (filtering paths) to stage 3 via an internal channel and in the process we've dropped the channel used to maintain result sorting. This made is so that, given 2 files to scan: - project/file1.rs <- not open, has to go through stage2 (FS scan) - project/file2.rs <- open, goes straight from stage1 (path filtering) to stage3 (finding all matches) We would report matches for project/file2.rs first, because we would notice that there's an existing language::Buffer for it. However, we should wait for project/file1.rs status to be reported first before we kick off project/file2.rs The fix is to use the sorting channel instead of an internal one, as that keeps the sorting worker "in the loop" about the state of the world. Closes #43672 Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com> Release Notes: - Fixed "Select next match" in project search results misbehaving when some of the buffers within the search results were open before search was ran. - Fixed project search results being scrolled to the last file active prior to running the search. --------- Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com> Co-authored-by: Smit <smit@zed.dev>
Piotr Osiewicz , Smit Barmase , and Smit created
0f0017d
bedrock: Support global endpoints and new regional endpoints (#44103)
Closes #43598 Release Notes: - bedrock: Added opt-in `allow_global` which enables global endpoints - bedrock: Updated cross-region-inference endpoint and model list - bedrock: Fixed Opus 4.5 access on Bedrock, now only accessible through the `allow_global` setting
Shardul Vaidya created
9db0d66
linux: Spawn at least two background threads (#44110)
Related to https://github.com/zed-industries/zed/pull/44109, https://github.com/zed-industries/zed/issues/43884, https://github.com/zed-industries/zed/issues/43809. In the Linux dispatcher, we create one background thread per CPU, but when a single core is available, having a single background thread significantly hinders the perceived performance of Zed. This is particularly helpful when SSH remoting to low-resource servers. We may want to bump this to more than two threads actually, but I wanted to be conservative, and this seems to make a big difference already. Release Notes: - N/A
Agus Zubiaga created
b07389d
macos: Add missing file access entitlements (#43609)
Adds `com.apple.security.files.user-selected.read-write` and `com.apple.security.files.downloads.read-write` to zed.entitlements. This resolves an issue where the integrated terminal could not access external drives or user-selected files on macOS, even when "Full Disk Access" was granted. These entitlements are required for the application to properly inherit file access permissions. Release Notes: - Resolves an issue where the integrated terminal could not access external drives or user-selected files on macOS.
Aero created
db2e26f
Re-colorize the brackets when the theme changes (#44130)
Closes https://github.com/zed-industries/zed/issues/44127 Release Notes: - Fixed brackets not re-colorizing on theme change
Kirill Bulatov created
391c92b
Reduce priority of Windows thread pool work items (#44121)
`WorkItemPriority::High` will enqueue the work items to threads with higher-than-normal priority. If the work items are very intensive, this can cause the system to become unresponsive. It's not clear what this gets us, so let's avoid the responsiveness issue by deleting this. Release Notes: - N/A
John Tur created
1e4d80a
Update fancy-regex (#44120)
Fancy regex has a max backtracking limit which defaults to 1,000,000 backtracks. This avoids spinning the CPU forever in the case that a match is taking a long time (though does mean that some matches may be missed). Unfortunately the verison we depended on causes an infinite loop when the backtracking limit is hit (https://github.com/fancy-regex/fancy-regex/issues/137), so we got the worse of both worlds: matches were missed *and* we spun the CPU forever. Updating fixes this. Excitingly regex may gain support for lookarounds (https://github.com/rust-lang/regex/pull/1315), which will make fancy-regex much less load bearing. Closes #43821 Release Notes: - Fix a bug where search regexes with look-around or backreferences could hang the CPU. They will now abort after a certain number of match attempts.
Conrad Irwin created
f90d9d2
Prefer to disable options over hiding (git panel entry context menu) (#44102)
When adding the File History option here, I used the pattern to hide the option, since that's what another option was already doing here, but I see other menus in the git panel (`...`) that use disabling over hiding, which is what I think is a nicer experience (allows you to learn of actions, the full range of actions is always visible, don't have to worry about how multiple hidden items might interact in various configurations, etc). <img width="336" height="241" alt="SCR-20251203-pnpy" src="https://github.com/user-attachments/assets/0da90b9a-c230-4ce3-87b9-553ffb83604f" /> <img width="332" height="265" alt="SCR-20251203-pobg" src="https://github.com/user-attachments/assets/5da95c7d-faa9-4f0f-a069-f1d099f952b9" /> In general, I think it would be good to move to being more consistent with disabling over hiding - there are other places in the app that are hiding - some might be valid, but others might just choices made on a whim. Release Notes: - N/A
Joseph T. Lyons created
40a611b
tab_switcher: Subscribe to workspace events instead of pane events (#44101)
Closes #43171 Previously the tab switcher only subscribed to events from a single pane so closing tabs in other panes wouldn't cause the tab switcher to update. This PR changes that so the tab switcher subscribes to the whole workspace and thus updates when tabs in other panes are closed. It also modifies the work in #44006 to sync selected index across the whole workspace instead of just the original pane in the case of the all-panes tab switcher. Release Notes: - Fixed all-panes tab switcher not updating in response to changes in other panes
Andrew Farkas created