37927a5
docs: Add some more redirects (#34537)
Click to expand commit body
This PR adds some more redirects for the docs. Release Notes: - N/A
Marshall Bowers created
37927a5
docs: Add some more redirects (#34537)
This PR adds some more redirects for the docs. Release Notes: - N/A
Marshall Bowers created
d4110fd
linux: Fix spacebar not working with multiple keyboard layouts (#34514)
Closes #26468 #16667 This PR fixes the spacebar not working with multiple keyboard layouts on Linux X11. I have tested this with Czech, Russian, German, German Neo 2, etc. It seems to work correctly. `XkbStateNotify` events correctly update XKB state with complete modifier info (depressed/latched/locked), but `KeyPress/KeyRelease` events immediately overwrite that state using `update_mask()` with only raw X11 modifier bits. This breaks xkb state as we reset `latched_mods` and `locked_mods` to 0, as well as we might not correctly handle cases where this new xkb state needs to change. Previous logic is flawed because `KeyPress/KeyRelease` event only gives you depressed modifiers (`event.state`) and not others, which we try to fill in from `previous_xkb_state`. This patch was introduced to fix capitalization issue with Neo 2 (https://github.com/zed-industries/zed/pull/14466) and later to fix wrong keys with German layout (https://github.com/zed-industries/zed/pull/31193), both of which I have tested this PR with. Now, instead of manually managing XKB state, we use the `update_key` method, which internally handles modifier states and other cases we might have missed. From `update_key` docs: > Update the keyboard state to reflect a given key being pressed or released. > > This entry point is intended for programs which track the keyboard state explictly (like an evdev client). If the state is serialized to you by a master process (like a Wayland compositor) using functions like `xkb_state_serialize_mods()`, you should use `xkb_state_update_mask()` instead. **_The two functins should not generally be used together._** > > A series of calls to this function should be consistent; that is, a call with `xkb::KEY_DOWN` for a key should be matched by an `xkb::KEY_UP`; if a key is pressed twice, it should be released twice; etc. Otherwise (e.g. due to missed input events), situations like "stuck modifiers" may occur. > > This function is often used in conjunction with the function `xkb_state_key_get_syms()` (or `xkb_state_key_get_one_sym()`), for example, when handling a key event. In this case, you should prefer to get the keysyms *before* updating the key, such that the keysyms reported for the key event are not affected by the event itself. This is the conventional behavior. Release Notes: - Fix the issue where the spacebar doesn’t work with multiple keyboard layouts on Linux X11.
Smit Barmase created
3d160a6
Don't highlight partial indent guide backgrounds (#34433)
Closes https://github.com/zed-industries/zed/issues/33665
Previously if a line was indented something that was not a multiple of
`tab_size` with `"ident_guides": { "background_coloring": "indent_aware"
} }` the background of characters would be highlighted. E.g. indent of 6
with tab_size 4.
| Before / After |
| - |
| <img width="497" height="77" alt="Screenshot 2025-07-14 at 14 43 46"
src="https://github.com/user-attachments/assets/93923117-047d-4d21-9a4f-488345f1ab89"
/>
| <img width="481" height="84" alt="Screenshot 2025-07-14 at 14 43 09"
src="https://github.com/user-attachments/assets/a5d383cb-50c3-4239-ae8c-f72765ae7287"
/> |
CC: @bennetbo Any idea why this partial indent was enabled in your
initial implementation
[here](https://github.com/zed-industries/zed/pull/11503/files#diff-1781b7848dd9630f3c4f62df322c08af9a2de74af736e7eba031ebaeb4a0e2f4R3156-R3160)?
This looks to be intentional.
Release Notes:
- N/A
Peter Tripp created
c29c46d
Appropriately pick venv activation script (#33205)
when `terminal.detect_venv.activate_script` setting is default, pick the appropriate activate script as per the `terminal.shell` settings specified by the user. Previously when the activate_script setting is default, zed always try to use the `activate` script, which only works when the user shell is `bash or zsh`. But what if the user is using `fish` shell in zed? Release Notes: - python: value of `activate_script` setting is now automatically inferred based on the kind of shell the user is running with. --------- Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Ragul R and Piotr Osiewicz created
312369c
debugger: Improve drag-and-scroll in memory views (#34526)
Closes #34508 Release Notes: - N/A
Piotr Osiewicz created
42b2b65
Document alternative method to providing intelephense license key (#34502)
This PR updates the [Intelephense section in the docs](https://zed.dev/docs/languages/php#intelephense) to include an alternative way to provide the premium license key. Release Notes: - N/A
Stephen Samra created
a529103
Disable format-on-save for verilog (#34512)
Disables format-on-save by default for the [verilog extension](https://github.com/someone13574/zed-verilog-extension), since there isn't a standard style. Release Notes: - N/A
someone13574 created
1ed3f9e
Add user handle and plan chip to the user menu (#34522)
A nicer way to visualize in which plan you're in and a bit of personalization by adding the GitHub handle you're signed with in the user menu, as a complement to the avatar photo itself. Taking advantage of the newly added Chip component. <img width="320" height="476" alt="CleanShot 2025-07-16 at 1 33 08@2x" src="https://github.com/user-attachments/assets/36718a42-27d1-499e-ac81-1eef2cd00347" /> Release Notes: - N/A
Danilo Leal created
59d5244
ui: Add Chip component (#34521)
Possibly the simplest component in our set, but a nice one to have so we can standardize how it looks across the app. Release Notes: - N/A
Danilo Leal created
ee4b9a2
ui: Fix wrapping in the banner component (#34516)
Also removing the `icon` field as the banner component always renders with an icon anyway. Hopefully, this fixes any weird text wrapping that was happening before. Release Notes: - N/A
Danilo Leal created
ae65ff9
ci: Disable FreeBSD builds (#34511)
Recently FreeBSD zed-remote-server builds are failing 90%+ of the time for unknown reasons. Temporarily suspend them. Example failing builds: - [2025-07-15 16:15 Nightly Failure](https://github.com/zed-industries/zed/actions/runs/16302777887/job/46042358675) - [2025-07-15 12:20 Nightly Success](https://github.com/zed-industries/zed/actions/runs/16297907892/job/46025281518) - [2025-07-14 08:21 Nightly Failure](https://github.com/zed-industries/zed/actions/runs/16266193889/job/45923004940) - [2025-06-17 Nightly Failure](https://github.com/zed-industries/zed/actions/runs/15700462603/job/44234573761) Release Notes: - Temporarily disable FreeBSD zed-remote-server builds due to CI failures.
Peter Tripp created
fc24102
Tweaks to ACP for the Gemini PR (#34506)
- **Update to use --experimental-acp** - **Fix tool locations** Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: mkorwel <matt.korwel@gmail.com> Co-authored-by: Agus Zubiaga <agus@zed.dev>
Conrad Irwin , mkorwel , and Agus Zubiaga created
7ca3d96
debugger: Highlight the size of jumped-to memory (#34504)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
afbd2b7
agent: Add plan chip in the Zed section within the settings view (#34503)
| Free | Pro | |--------|--------| | <img width="1140" height="368" alt="CleanShot 2025-07-15 at 7 50 48@2x" src="https://github.com/user-attachments/assets/b54fd46d-d823-4689-b099-0a9aef8b1c9a" /> | <img width="1136" height="348" alt="CleanShot 2025-07-15 at 7 51 45@2x" src="https://github.com/user-attachments/assets/d291a1f5-511f-43df-9ce2-041c77d1cb86" /> | Release Notes: - agent: Added a chip communicating which Zed plan you're subscribed to in the agent panel settings view.
Danilo Leal created
0a3ef40
debugger: Interpret user-specified debug adapter binary paths in a more intuitive way for JS and Python (#33926)
Previously we would append `js-debug/src/dapDebugServer.js` to the value of the `dap.JavaScript.binary` setting and `src/debugpy/adapter` to the value of the `dap.Debugpy.binary` setting, which isn't particularly intuitive. This PR fixes that. Release Notes: - debugger: Made the semantics of the `dap.$ADAPTER.binary` setting more intuitive for the `JavaScript` and `Debugpy` adapters. In the new semantics, this should be the path to `dapDebugServer.js` for `JavaScript` and the path to the `src/debugpy/adapter` directory for `Debugpy`. --------- Co-authored-by: Remco Smits <djsmits12@gmail.com>
Cole Miller and Remco Smits created
0ebbeec
debugger: Remove `Start` button from the attach modal (#34496)
Right now it doesn't work at all (the PID doesn't get set in the generated scenario), and it's sort of redundant with the picker functionality. Release Notes: - N/A
Cole Miller created
0ada4ce
editor: Add ToggleFocus action (#34495)
This PR adds action `editor: toggle focus` which focuses to last active editor pane item in workspace. Release Notes: - Added `editor: toggle focus` action, which focuses to last active editor pane item. --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Smit Barmase and Danilo Leal created
572d3d6
Rename `action_input` to `action_arguments` in keybinding contexts (#34480)
Release Notes: - N/A
Anthony Eid created
3751737
Add zed://extension/{id} links (#34492)
Release Notes:
- Add zed://extension/{id} links to open the extensions UI with a
specific extension
Conrad Irwin created
ec52e92
Add xAI language model provider (#33593)
Closes #30010 Release Notes: - Add support for xAI language model provider
Umesh Yadav created
af0031a
Fix positioning of terminal inline assist after clearing the screen (#34465)
Closes #33945. Here's my attempt to describe what's going on in that issue and what this fix is doing: We always render the terminal inline assistant starting on the line after the cursor, with a height of 4 lines. When deploying it, we scroll the viewport to the bottom of the terminal so that the assistant will be in view. When scrolling while the assistant is deployed (including in that case), we need to make an adjustment that "pushes up" the terminal content by the height of the assistant, so that we can scroll to see all the normal content plus the assistant itself. That quantity is `scroll_top`, which represents _how much height in the current viewport is occupied by the assistant that would otherwise be occupied by terminal content_. So when you scroll up and a line of the assistant's height goes out of view, `scroll_top` decreases by 1, etc. When we scroll to the bottom after deploying the assistant, we set `scroll_top` to the result of calling `max_scroll_top`, which computes it this way: ``` block.height.saturating_sub(viewport_lines.saturating_sub(terminal_lines)) ``` Which, being interpreted, is "the height of the assistant, minus any viewport lines that are not occupied by terminal content", i.e. the assistant is allowed to eat up vertical space below the last line of terminal content without increasing `scroll_top`. The problem comes when we clear the screen---this adds a full screen to `terminal_lines`, but the cursor is positioned at the top of the viewport with blank lines below, just like at the beginning of a session when `terminal_lines == 1`. Those blank lines should be available to the assistant, but the `scroll_top` calculation doesn't reflect that. I've tried to fix this by basing the `max_scroll_top` calculation on the position of the cursor instead of the raw `terminal_lines` value. There was also a special case for `viewport_lines == terminal_lines` that I think can now be removed. Release Notes: - Fixed the positioning of the terminal inline assistant when it's deployed after clearing the terminal.
Cole Miller created
b398935
Fix comment in default.json (#34481)
Update line to properly reference the intended setting. Release Notes: - N/A
Ariel Rzezak created
78b7737
Remove scap from workspace-hack (#34490)
Regression in #34251 which broke remote_server build Release Notes: - N/A
Michael Sloan created
57e8f5c
Automatically retry in more situations (#34473)
In #33275 I was very conservative about when to retry when there are errors in language completions in the Agent panel. Now we retry in more scenarios (e.g. HTTP 5xx and 4xx errors that aren't in the specific list of ones that we handle differently, such as 429s), and also we show a notification if the thread halts for any reason. <img width="441" height="68" alt="Screenshot 2025-07-15 at 12 51 30 PM" src="https://github.com/user-attachments/assets/433775d0-a8b2-403d-9427-1e296d164980" /> <img width="482" height="322" alt="Screenshot 2025-07-15 at 12 44 15 PM" src="https://github.com/user-attachments/assets/5a508224-0fe0-4d34-9768-25d95873eab8" /> Release Notes: - Automatic retry for more Agent errors - Whenever the Agent stops, play a sound (if configured) and show a notification (if configured) if the Zed window was in the background.
Richard Feldman created
729cde3
project_panel: Add rename, delete and duplicate actions to workspace (#34478)
Release Notes: - Added `project panel: rename`, `project panel: delete` and `project panel: duplicate` actions to workspace. Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Smit Barmase and Danilo Leal created
ebbf02e
keymap_ui: Keyboard navigation for keybind edit modal (#34482)
Adds keyboard navigation to the keybind edit modal. Using up/down arrows to select the previous/next input editor, and `cmd-enter` to save + `escape` to exit Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
3ecdfc9
Remove auto-width editor type (#34438)
Closes #34044
`EditorMode::SingleLine { auto_width: true }` was only used for the
title editor in the rules library, and following
https://github.com/zed-industries/zed/pull/31994 we can replace that
with a normal single-line editor without problems. The auto-width editor
was interacting badly with the recently-added newline visualization
code, causing a panic during layout---by switching it to
`Editor::single_line` the newline visualization works there too.
Release Notes:
- Fixed a panic that could occur when opening the rules library.
---------
Co-authored-by: Finn <finn@zed.dev>
Cole Miller and Finn created
f9561da
Maintain keymap editor position when deleting or modifying a binding (#34440)
When a key binding is deleted we keep the exact same scroll bar position. When a keybinding is modified we select that keybinding in it's new position and scroll to it. I also changed save/modified keybinding to use fs.write istead of fs.atomic_write. Atomic write was creating two FS events that some scrollbar bugs when refreshing the keymap editor. Co-authored-by: Ben \<ben@zed.dev\> Release Notes: - N/A
Anthony Eid created
b3747d9
keymap_ui: Add column for conflict indicator and edit button (#34423)
This PR adds a column to the keymap editor to highlight warnings as well as add the possibility to click the edit icon there for editing the corresponding entry in the list. Release Notes: - N/A --------- Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Finn Evers , Danilo Leal , and Danilo Leal created
95de2bf
keymap_ui: Limit length of keystroke input and hook up actions (#34464)
Closes #ISSUE Changes direction on the design of the keystroke input. Due to MacOS limitations, it was decided that the complex repeat keystroke logic could be avoided by limiting the number of keystrokes so that accidental repeats were less damaging to ux. This PR follows up on the design pass in #34437 that assumed these changes would be made, hooking up actions and greatly improving the keyboard navigability of the keystroke input. Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
d7bb1c1
lsp: Fix workspace diagnostics lag & add streaming support (#34022)
Closes https://github.com/zed-industries/zed/issues/33980 Closes https://github.com/zed-industries/zed/discussions/33979 - Switches to the debounce task pattern for diagnostic summary computations, which most importantly lets us do them only once when a large number of DiagnosticUpdated events are received at once. - Makes workspace diagnostic requests not time out if a partial result is received. - Makes diagnostics from workspace diagnostic partial results get merged. There might be some related areas where we're not fully complying with the LSP spec but they may be outside the scope of what this PR should include. Release Notes: - Added support for streaming LSP workspace diagnostics. - Fixed editor freeze from large LSP workspace diagnostic responses.
teapo created
5f3e7a5
lsp: Wait for shutdown response before sending exit notification (#33417)
Follow up: #18634 Closes #33328 Release Notes: - Fixed language server shutdown process to prevent race conditions and improper termination by waiting for shutdown confirmation before closing connections.
Umesh Yadav created
0671a4d
Allow for venv activation script to use `pyenv` (#33119)
Release Notes: - Allows for configuration and use of `pyenv` as a virtual environment provider
Taylor Beever created
bd78f2c
project: Use `checked_sub` for next/previous in search history (#34408)
Use `checked_sub` instead of checking for bounds manually. Also greatly simplifies the logic for `next` and `previous`. Removing other manual bounds checks as well Release Notes: - N/A
tidely created
d1abba0
gpui: Reduce manual shifting & other minor improvements (#34407)
Minor cleanup in gpui. - Reduce manual shifting by using `u32::to_be_bytes` - Remove eager `Vec` allocation when listing registered actions - Remove unnecessary return statements - Replace manual `if let Some(_)` with `.as_deref_mut()` Release Notes: - N/A
tidely created
0506598
cli: Remove manual `std::io::copy` implementation (#34409)
Removes a manual implementation of `std::io::copy`. The internal buffer of `std::io::copy` is also 8 kB and behaves exactly the same. On Linux `std::io::copy` also has access to some better performing file copying. Release Notes: - N/A
tidely created
7ab8f43
Update to acp 0.0.9 (#34463)
Release Notes: - N/A
Ben Brandt created
050ed85
Add severity argument to GoToDiagnostic actions (#33995)
This PR adds a `severity` argument so severity can be defined when
navigating through diagnostics. This allows keybinds like the following:
```json
{
"] e": ["editor::GoToDiagnostic", { "severity": "error" }],
"[ e": ["editor::GoToDiagnostic", { "severity": "error" }]
}
```
I've added test comments and a test. Let me know if there's anything
else you need!
Release Notes:
- Add `severity` argument to `editor::GoToDiagnostic`,
`editor::GoToPreviousDiagnostic`, `project_panel::SelectNextDiagnostic`
and `project_panel::SelectPrevDiagnostic` actions
Hilmar Wiegand created
858e176
Refine keymap UI design (#34437)
Release Notes: - N/A --------- Co-authored-by: Ben Kunkle <Ben.kunkle@gmail.com>
Danilo Leal and Ben Kunkle created
a65c0b2
collab: Fix typo in log message (#34455)
This PR fixes a small typo in a log message. Release Notes: - N/A
Marshall Bowers created
848a86a
collab: Sync model overages for all active Zed Pro subscriptions (#34452)
Release Notes: - N/A
Marshall Bowers created
52f2b32
extension_cli: Copy over snippet file when bundling extensions (#34450)
Closes #30670 Release Notes: - Fixed snippets from extensions not working.
Piotr Osiewicz created
8dca4d1
Fix border and minimap flickering on pane split (#33973)
Closes #33972 As noted on https://github.com/zed-industries/zed/pull/31390#discussion_r2147473526, when splitting panes and having a border size set for the active pane, or the minimap visibility configured to the active editor only, zed will shortly show a flicker of the border or the minimap on the pane that's being deactivated. Release Notes: - Fixed an issue where pane activations would sometimes have a brief delay, causing a flicker in the process.
Alvaro Parker created
440beb8
Improve Java LSP documentation (#34410)
Remove references to [ABckh/zed-java-eclipse-jdtls](https://github.com/ABckh/zed-java-eclipse-jdtls) which hasn't seen a new version in 10 months (2024-10-01). Release Notes: - N/A
Peter Tripp created
ce63a6d
Exclude .repo folders by default (#34431)
These are used by [Google's `repo` tool](https://android.googlesource.com/tools/repo) used for Android for managing hundreds of git subprojects. Originally reported in: - https://github.com/zed-industries/zed/issues/34302 Release Notes: - Add Google Repo `.repo` folders to default `file_scan_exclusions`
Peter Tripp created
26ba6e7
editor: Improve minimap performance (#33067)
This PR aims to improve the minimap performace. This is primarily achieved by disabling/removing stuff that is not shown in the minimal as well as by assuring the display map is not updated during minimap prepaint. This should already be much better in parts, as the block map as well as the fold map will be less frequently updated due to the minimap prepainting (optimally, they should never be, but I think we're not quite there yet). For this, I had to remove block rendering support for the minimap, which is not as bad as it sounds: Practically, we were currently not rendering most blocks anyway, there were issues due to this (e.g. scrolling any visible block offscreen in the main editor causes scroll jumps currently) and in the long run, the minimap will most likely need its own block map or a different approach anyway. The existing implementation caused resizes to occur very frequently for practically no benefit. Can pull this out into a separate PR if requested, most likely makes the other changes here easier to discuss. This is WIP as we are still hitting some code path here we definitely should not be hitting. E.g. there seems to be a rerender roughly every second if the window is unfocused but visible which does not happen when the minimap is disabled. While this primarily focuses on the minimap, it also touches a few other small parts not related to the minimap where I noticed we were doing too much stuff during prepaint. Happy for any feedback there aswell. Putting this up here already so we have a place to discuss the changes early if needed. Release Notes: - Improved performance with the minimap enabled. - Fixed an issue where interacting with blocks in the editor would sometimes not properly work with the minimap enabled.
Finn Evers created
363a265
Add test for running `Close Others` on an inactive item (#34425)
Adds a test for the changes added in: https://github.com/zed-industries/zed/pull/34355 Release Notes: - N/A
Joseph T. Lyons created
37e73e3
Only depend on scap x11 feature when gpui x11 feature is enabled (#34251)
Release Notes: - N/A
Michael Sloan created
32f5132
Fix contrast adjustment for Powerline separators (#34417)
It turns out Starship is using custom Powerline separators in the Unicode private reserved character range. This addresses some issues seen in the comments of #34234 Release Notes: - Fix automatic contrast adjustment for Powerline separators
Richard Feldman created
fd5650d
debugger: A support for data breakpoint's on variables (#34391)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com> Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Anthony Eid , Piotr Osiewicz , Mikayla Maki , and Mikayla Maki created