cfdc654
add offset to uniform list scroll state
Smit Barmase created
cfdc654
add offset to uniform list scroll state
Smit Barmase created
fa788a3
project_panel: Reuse `index_for_entry` in `index_for_selection` (#35034)
Just refactor I came across while working on another issue. `index_for_entry` and `index_for_selection` have the exact same logic, here we can simply reuse `index_for_entry` for `index_for_selection`. Release Notes: - N/A
Smit Barmase created
7cdd808
helix: Fix replace in helix mode (#34789)
Closes https://github.com/zed-industries/zed/issues/33076 Release Notes: - Fixed replace command on helix mode: now it actually replaces what was selected and keeps the replaced text selected to better match helix
Pablo Ramón Guevara created
29332c1
ai onboarding: Add overall fixes to the whole flow (#34996)
Closes https://github.com/zed-industries/zed/issues/34979 Release Notes: - N/A --------- Co-authored-by: Agus Zubiaga <hi@aguz.me> Co-authored-by: Ben Kunkle <Ben.kunkle@gmail.com>
Danilo Leal , Agus Zubiaga , and Ben Kunkle created
fab450e
Fix invalid regular expressions highlighting all search fields (#35001)
Closes https://github.com/zed-industries/zed/issues/34969 Closes https://github.com/zed-industries/zed/issues/34970 Only highlight the search field on regex error (buffer search and project search). Clear errors when the buffer search hidden so stale errors aren't shown on next search. Before (all fields highlighted red): <img width="631" height="180" alt="Screenshot 2025-07-23 at 22 59 45" src="https://github.com/user-attachments/assets/a91d3090-1bae-4718-a1f5-0a1237559ff2" /> After (only query field highlighted red): <img width="632" height="187" alt="Screenshot 2025-07-23 at 23 10 49" src="https://github.com/user-attachments/assets/6ae72c84-9333-4cdb-907b-afb7a0a6e808" /> Release Notes: - Improved highlighting of regex errors in search dialogs
Peter Tripp created
4fb540d
dock: Add divider between panels on the right side, too (#35003)
A while ago, we added a divider in the left side of the status bar between the icon buttons that open panels vs. those that open something else (tabs, popover menus, etc.). There isn't a super good reason why we wouldn't do the same in the right side, even more so given that (at least by default) we usually have more buttons on that side; buttons that _don't_ open panels (regardless of being docked to the bottom or right). So, this PR does this! <img width="700" height="314" alt="CleanShot 2025-07-24 at 1 59 10@2x" src="https://github.com/user-attachments/assets/5f8bd4bc-a983-4000-a8f9-05a36b9e4b81" /> Release Notes: - N/A
Danilo Leal created
1e2b0fc
sum_tree: Remove Unit type (#35027)
This solves one ~TODO, as Unit type was a workaround for a lack of ability to implement Summary for (). Release Notes: - N/A
Piotr Osiewicz created
0af6900
linux: Fix `ctrl-0..9`, `ctrl-[`, `ctrl-^` (#35028)
There were two different underlying reasons for the issues with ctrl-number and ctrl-punctuation: 1. Some keys in the ctrl-0..9 range send codes in the `\1b`..`\1f` range. For example, `ctrl-2` sends keycode for `ctrl-[` (0x1b), but we want to map it to `2`, not to `[`. 2. `ctrl-[` and four other ctrl-punctuation were incorrectly mapped, since the expected conversion is by adding 0x40 Closes #35012 Release Notes: - N/A
Oleksiy Syvokon created
dd52fb5
terminal_view: Ensure breadcrumbs are updated on settings change (#35016)
Currently, terminal breadcrumbs are only updated after a settings change once the terminal view is focused again. This change ensures that the breadcrumbs are updated instantaneously once the breadcrumb settings changes. Release Notes: - Fixed an issue where terminal breadcrumbs would not react instantly to settings changes.
Finn Evers created
913b929
Add `editor: convert to sentence case` (#35015)
This PR adds an `editor: convert to sentence case` action. I frequently find myself copying branch names and then removing the hyphens and ensuring the first letter is capitalized, and then using the result text for the commit message. For example: <img width="927" height="482" alt="image" src="https://github.com/user-attachments/assets/adf14a37-a92e-44df-8c0e-267b5c7677fb" /> You can achieve this with a combination of other text manipulation commands, but this action makes it even easier. Also, moved `toggle_case` down into the area where all other commands internally using `manipulate_text` are located. Release Notes: - Added `editor: convert to sentence case`
Joseph T. Lyons created
5c9363b
Differentiate between file and selection diff events (#35014)
Release Notes: - N/A
Joseph T. Lyons created
cd9bcc7
agent_ui: Improve wrapping behavior in provider configuration header (#34989)
This ensures that the "Add provider" button does not move offscreen too fast and ensures the text wraps for smaller panel sizes. | Before | After | | --- | --- | | <img width="413" height="84" alt="image" src="https://github.com/user-attachments/assets/565f7503-bddb-4b05-83c1-8f8745ac3ce3" /> | <img width="392" height="84" alt="image" src="https://github.com/user-attachments/assets/18469e4d-d94c-4641-9081-1af8981bfffd" /> | Release Notes: - N/A
Finn Evers created
65759d4
gpui: Fix Interactivity prepaint to update scroll_handle bounds (#35013)
It took a long time to check this problem. Finally, I found that due to a detail missing when changing #34832, the bounds of `ScrollHandle` was not updated in the Interactivity `prepaint` phase. ```diff - scroll_handle_state.padded_content_size = padded_content_size; + scroll_handle_state.max_offset = scroll_max; ``` It was correct before the change, because the `padded_content_size` (including `bounds.size`) was saved before, and the bounds was missing after changing to `max_offset`, but the bounds were not updated anywhere. So when `scroll_handle.bounds()` is obtained outside, it is always 0px here. @MrSubidubi Release Notes: - N/A
Jason Lee created
ddd50aa
Fix some bugs with `editor: diff clipboard with selection` (#34999)
Improves testing around `editor: diff clipboard with selection` as well. Release Notes: - Fixed some bugs with `editor: diff clipboard with selection`
Joseph T. Lyons created
34bf6eb
Disable auto-close in search (#35005)
Currently if you type `\(`, it auto-closes to `\()` which is broken. It's arguably nice that if you type `(` it auto-closes to `()`, but I am much more likely to be looking for a function call `name\(` than to be starting a group in search. Release Notes: - search: Regex search will no longer try to close parenthesis automatically.
Conrad Irwin created
a6956ee
Improve Helix insert (#34765)
Closes #34763 Release Notes: - Improved insert in `helix_mode` when a selection exists to better match helix's behavior: collapse selection to avoid replacing it - Improved append (`insert_after`) to better match helix's behavior: move cursor to end of selection if it exists
Pablo Ramón Guevara created
8b0ec28
vim: Add `:norm` support (#33232)
Closes #21198 Release Notes: - Adds support for `:norm` - Allows for vim and zed style modified keys specified in issue - Vim style <C-w> and zed style <ctrl-w> - Differs from vim in how multi-line is handled - vim is sequential - zed is combinational (with multi-cursor)
AidanV created
c08851a
ollama: Add Magistral to Ollama (#35000)
See also: #34983 Release Notes: - Added magistral support to ollama
versecafe created
b93e1c7
mistral: Add support for magistral-small and magistral-medium (#34983)
Release Notes: - mistral: Added support for magistral-small and magistral-medium
Peter Tripp created
67027bb
agent: Fix Zed header in settings view (#34993)
Follow-up to taffy bump (#34939), fixes an issue reported by @MrSubidubi Release Notes: - N/A
Piotr Osiewicz created
31afda3
project_panel: Automatically open project panel when Rename or Duplicate is triggered from workspace (#34988)
In project panel, `rename` and `duplicate` action further needs user input for editing, so if panel is closed we should open it. Release Notes: - Fixed project panel not opening when `project panel: rename` and `project panel: duplicate` actions are triggered from workspace.
Smit Barmase created
3d4266b
collab: Remove `POST /billing/subscriptions/manage` endpoint (#34986)
This PR removes the `POST /billing/subscriptions/manage` endpoint, as it has been moved to `cloud.zed.dev`. Release Notes: - N/A
Marshall Bowers created
4a87397
livekit_client: Revert a change that broke MinGW builds (#34977)
the change was made in https://github.com/zed-industries/zed/pull/34223 for unknown reason. it wasn't required actually, and the code can be safely left as before update: after this revert Zed compiles with MinGW as before Release Notes: - N/A
Maksim Bondarenkov created
3da23cc
Re-land taffy 0.8.3 (#34939)
Re #34938 - **chore: Bump taffy to 0.8.3** - **editor: Fix sticky multi-buffer header not extending to the full width** Release Notes: - N/A
Piotr Osiewicz created
b63d820
editor: Fix move line up panic when selection is at end of line next to fold marker (#34982)
Closes #34826 In move line up method, make use of `prev_line_boundary` which accounts for fold map, etc., for selection start row so that we don't incorrectly calculate row range to move up. Release Notes: - Fixed an issue where `editor: move line up` action sometimes crashed if the cursor was at the end of a line beside a fold marker.
Smit Barmase created
7e9d6cc
mistral: Add support for Mistral Devstral Medium (#34888)
Mistral released their new DevstralMedium model to be used via API: https://mistral.ai/news/devstral-2507 Release Notes: - Add support for Mistral Devstral Medium
Renato Lochetti created
8bf7dcb
agent: Fix follow button disabled state (#34978)
Release Notes: - N/A
Danilo Leal created
edceb72
Redact secrets from environment in LSP Server Info (#34971)
In "Server Info" view of LSP logs: - Redacts sensitive values from environment - Sorts environment by name | Before | After | | - | - | | <img width="797" height="327" alt="Screenshot 2025-07-23 at 14 10 14" src="https://github.com/user-attachments/assets/75781f30-9099-4994-9824-94d9c46f63e1" /> | <img width="972" height="571" alt="image" src="https://github.com/user-attachments/assets/c5bef744-a1b7-415f-9eb7-8314275c59b9" /> | Release Notes: - Improved display of environment variables in LSP Logs: Server Info view
Peter Tripp created
50985b7
Fix telemetry event type names (#34974)
Release Notes: - N/A
Joseph T. Lyons created
be0d9ee
Add collapse functionality to outline entries (#33490)
partly Closes #23075 Release Notes: - Now provides collapse and enables functionality to outline entries - Add a new expand_outlines_with_depth setting to customize how deep the tree is expanded by when a file is opened part 2 is in #34164 **Visual examples**   
Nicolas Rodriguez created
9863c8a
agent_ui: Show keybindings for NewThread and NewTextThread in new thread button (#34967)
I believe in this PR: #34829 we moved to context menu entry from action but the side effect of that was we also removed the Keybindings from showing it in the new thread button dropdown. This PR fixes that. cc @danilo-leal | Before | After | |--------|--------| | <img width="900" height="1962" alt="CleanShot 2025-07-23 at 23 36 28@2x" src="https://github.com/user-attachments/assets/760cbe75-09b9-404b-9d33-1db73785234f" /> | <img width="850" height="1964" alt="CleanShot 2025-07-23 at 23 37 17@2x" src="https://github.com/user-attachments/assets/24a7e871-aebc-475c-845f-b76f02527b8f" /> | Release Notes: - N/A
Umesh Yadav created
a48247a
Bump Zed to v0.198 (#34964)
Release Notes: -N/A
Joseph T. Lyons created
5f0edd3
Add TestPanic feature flag (#34963)
Now the `dev: panic` action can be run on all release channels if the user has the feature flag enabled. Release Notes: - N/A
Julia Ryan created
56b64b1
keymap ui: Improve resize columns on double click (#34961)
This PR splits the resize logic into separate left/right propagation methods and improve code organization around column width adjustments. It also allows resize to work for both the left and right sides as well, instead of only checking the right side for room Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Ben Kunkle <ben@zed.dev>
Anthony Eid and Ben Kunkle created
fdcd866
ai onboarding: Add telemetry event capturing (#34960)
Release Notes: - N/A Co-authored-by: Katie Geer <katie@zed.dev> Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>
Danilo Leal , Katie Geer , and Joseph T. Lyons created
3b428e2
Remove `!menu` from `j k` binding in initial keymap examples (#34959)
See https://github.com/zed-industries/zed/pull/34912#issuecomment-3108802582 Release Notes: - N/A
Michael Sloan created
986b446
keymap ui: Resizable column follow up (#34955)
I cherry picked a small fix that didn't get into the original column resizable branch PR because I turned on auto merge. Release Notes: - N/A
Anthony Eid created
8713c55
keymap_ui: Dim keybinds that are overridden by other keybinds (#34952)
This change dims rows in the keymap editor for which the corresponding keybind is overridden by other keybinds coming from higher priority sources. Release Notes: - N/A
Finn Evers created
326fe05
Resizable columns (#34794)
This PR adds resizable columns to the keymap editor and the ability to double-click on a resizable column to set a column back to its default size. The table uses a column's width to calculate what position it should be laid out at. So `column[i]` x position is calculated by the summation of `column[..i]`. When resizing `column[i]`, `column[i+1]`’s size is adjusted to keep all columns’ relative positions the same. If `column[i+1]` is at its minimum size, we keep seeking to the right to find a column with space left to take. An improvement to resizing behavior and double-clicking could be made by checking both column ranges `0..i-1` and `i+1..COLS`, since only one range of columns is checked for resize capacity. Release Notes: - N/A --------- Co-authored-by: Anthony <anthony@zed.dev> Co-authored-by: Remco Smits <djsmits12@gmail.com>
Mikayla Maki , Anthony , and Remco Smits created
1f4c9b9
language: Update block_comment and documentation comment (#34861)
As suggested in https://github.com/zed-industries/zed/pull/34418, this proposes various changes to language configs to make block comments and doc-block-style comments more similar. In doing so, it introduces some breaking changes into the extension schema. This change is needed to support the changes I'm working on in #34418, to be able to support `rewrap` in block comments like `/* really long comment ... */`. As is, we can do this in C-style doc-block comments (eg `/** ... */`) because of the config in `documentation`, but we can't do this in regular block comments because we lack the info about what the line prefix and indentation should be. And while I was here, I did various other clean-ups, many of which feel nice but are optional. I would love special attention on the changes to the schema, version and related changes; I'm totally unfamiliar with that part of Zed. **Summary of changes** - break: changes type of `block_comment` to same type as `documentation_comment` (**this is the important change**) - break: rename `documentation` to `documentation_comment` (optional, but improves consistency w/ `line_comments` and `block_comment`) - break/refactor?: removes some whitespace in the declaration of `block_comment` delimiters (optional, may break things, need input; some langs had no spaces, others did) - refactor: change `tab_size` from `NonZeroU32` to just a `u32` (some block comments don't seem to need/want indent past the initial delimiter, so we need this be 0 sometimes) - refactor: moves the `documentation_comment` declarations to appear next to `block_comment`, rearranges the order of the fields in the TOML for `documentation_comment`, rename backing `struct` (all optional) **Future scope** I believe that this will also allow us to extend regular block comments on newline – as we do doc-block comments – but I haven't looked into this yet. (eg, in JS try pressing enter in both of these: `/* */` and `/** */`; the latter should extend w/ a `*` prefixed line, while the former does not.) Release Notes: - BREAKING CHANGE: update extension schema version from 1 to 2, change format of `block_comment` and rename `documentation_comment` /cc @smitbarmase
claytonrcarter created
14171e0
collab: Add `POST /users/:id/update_plan` endpoint (#34953)
This PR adds a new `POST /users/:id/update_plan` endpoint to Collab to allow Cloud to push down plan updates to users. Release Notes: - N/A
Marshall Bowers created
326ab5f
Improve collab channel organization keybinds (#34821)
Change channel reorganization (move up/down) from `cmd-up/down` (mac) / `ctrl-up/down` (linux) to `alt-up/down` (both) to match moving lines in the editor. Also fix an issue where if you selected channels using down/up in the filter field, the movement shortcuts would not work (`editing` vs `not_editing`). Release Notes: - N/A
Peter Tripp created
2bc6e18
Ensure `disable_ai` is properly respected (#34941)
Quick follow up to #34896 which ensures that the Agent Panel cannot be caught by actions like `workspace: toggle left dock` when `disable_ai` is set to true. Also removes a method that was introduced but unused in the workspace because `first_enabled_panel_idx` already covers all cases this method could be useful for. Release Notes: - N/A
Finn Evers created
c2c2264
gpui: Add tree example (#34942)
This commit adds an example with deep children hierarchy. The depth of a tree can be tweaked with GPUI_TREE_DEPTH env variable. With depth=100 <img width="301" height="330" alt="image" src="https://github.com/user-attachments/assets/844cd285-c5f3-4410-a74e-981bf093ba2e" /> With this example, I can trigger a stack overflow at depth=633 (and higher). Release Notes: - N/A
Piotr Osiewicz created
6cd3726
Revert "chore: Bump taffy to 0.8.3" (#34938)
Reverts zed-industries/zed#34876 From our Slack: <img width="1694" height="1610" alt="image" src="https://github.com/user-attachments/assets/c7b8f02a-8609-4ed3-9cd5-7d05d152e40e" /> https://github.com/user-attachments/assets/828964be-9b6e-4496-9361-9e3a2e9aa208 Release Notes: - N/A
Piotr Osiewicz created
7db110f
sum_tree: Utilize `size_hint` in `TreeSet::extend` (#34936)
Collect the iterator instead of manually looping over it to utilize possible size hints. Zed usually passes in owned `Vec`'s, meaning we get to reuse memory as well. Release Notes: - N/A
tidely created
6122f46
project: Fix search filter patterns on remote projects (#34748)
we were join(",") and split(",") to serialize the patterns.
This doesn't work when pattern includes a ","
example: *.{ts,tsx} (very common pattern used by agent)
help needed:
how will this work on version mismatch?
Release Notes:
- Fixed search filter patterns on remote projects.
maan2003 created
500ceaa
Add an `editor: diff clipboard with selection` action (#33283)
https://github.com/user-attachments/assets/d472fbdd-7736-4bd7-8a90-8cca356b2815 This PR adds `editor: diff clipboard with selection` - good for spotting the differences in eerily-similar code, which is when refactoring code, as you need to see what needs to be passed in in order to maintain previous behavior of both snippets. 1. Copy some text from anywhere 2. Highlight some text in Zed 3. Run `editor: diff clipboard with selection` Like JetBrains' IDEs and VS Code with the `PartialDiff` package, if the selection is empty, we take the entire buffer as the selection. Caveats: - We do not know the language of the text in the clipboard. I went ahead and just assumed that in most cases, it will be the same language as the selected text, which does mean we will highlight the old text incorrectly if they are copying from a different language, but I think in most cases, it will be the same, and the alternative of always having no syntax highlighting is worse. PyCharm seems to do the same thing. Release Notes: - Added an `editor: diff clipboard with selection` action --------- Co-authored-by: Junkui Zhang <364772080@qq.com> Co-authored-by: Ben Kunkle <ben@zed.dev>
Joseph T. Lyons , Junkui Zhang , and Ben Kunkle created
3e27fa1
gpui: Allow Animation to be cloned (#34933)
Release Notes: - N/A --- Let `Animation` able to clone, then we can define one to share for multiple places. For example: <img width="914" height="637" alt="image" src="https://github.com/user-attachments/assets/8eafb318-afba-4399-a975-d83cb7afe74c" />
Jason Lee created
11ac83f
workspace: Fix closing remote workspace restores last local workspace on startup (#34931)
Closes #7759 While opening a new SSH project if we are reusing an existing window, i.e. drop the existing workspace and create a new one, then before dropping it, we should remove `session_id` from that workspace's serialized entry. That way: 1. Upon closing (cmd-w) this remote workspace (which also clears `session_id` for this), and then quitting. No workspace with that `session_id` is found, and it starts fresh. 2. Upon directly quitting (cmd-q) this remote workspace, only this workspace exists in db (among two of them) with that `session_id`, and it restores correctly. Release Notes: - Fixed an issue while closing remote workspace restores last local workspace on startup.
Smit Barmase created