Experimenting with a set of standardized icons and polishing spacing a
little bit.
Release Notes:
- N/A
Danilo Leal
created
e070c81
Remove remaining plugin-related language server adapters (#34334)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/34208
Release Notes:
- N/A
Kirill Bulatov
created
5b61b8c
agent: Fix crash with pathological fetch output (#34253)
Click to expand commit body
Closes #34029
The crash is due to a stack overflow in our `html_to_markdown`
conversion; I've added a maximum depth of 200 for the recursion in that
crate to guard against this kind of thing.
Separately, we were treating all content-types other than `text/plain`
and `application/json` as HTML; I've changed this to only treat
`text/html` and `application/xhtml+xml` as HTML, and fall back to
plaintext. (In the original crash, the content-type was
`application/octet-stream`.)
Release Notes:
- agent: Fixed a potential crash when fetching large non-HTML files.
Cole Miller
created
625ce12
Revert "git: Intercept signing prompt from GPG when committing" (#34306)
Click to expand commit body
Reverts zed-industries/zed#34096
This introduced a regression, because the unlocked key can't benefit
from caching.
Release Notes:
- N/A
Cole Miller
created
12bc890
Recall empty, unsaved buffers on app load (#33475)
Click to expand commit body
Closes #33342
This PR implements serialization of pinned tabs regardless of their
state (empty, untitled, etc.)
The root cause was that empty untitled tabs were being skipped during
serialization but their pinned state was still being persisted, leading
to a mismatch between the stored pinned count and actual restorable
tabs, this issue lead to a crash which was patched by @JosephTLyons, but
this PR aims to be a proper fix.
**Note**: I'm still evaluating the best approach for this fix. Currently
exploring whether it's necessary to store the pinned state in the
database schema or if there's a simpler solution that doesn't require
schema changes.
---
**Edit from Joseph**
We ended up going with altering our recall logic, where we always
restore all editors, even those that are new, empty, and unsaved. This
prevents the crash that #33335 patched because we are no longer skipping
the restoration of pinned editors that have no text and haven't been
saved, throwing off the count dealing with the number of pinned items.
This solution is rather simple, but I think it's fine. We simply just
restore everything the same, no conditional dropping of anything. This
is also consistent with VS Code, which also restores all editors,
regardless of whether or not a new, unsaved buffers have content or not.
https://github.com/zed-industries/zed/tree/alt-solution-for-%2333342
Release Notes:
- N/A
---------
Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>
vipex
and
Joseph T. Lyons
created
67c765a
keymap_ui: Dual-phase focus for keystroke input (#34312)
Click to expand commit body
Closes #ISSUE
An idea I and @MrSubidubi came up with, to improve UX around the
keystroke input.
Currently, there's a hard tradeoff with what to focus first in the edit
keybind modal, if we focus the keystroke input, it makes keybind
modification very easy, however, if you don't want to edit a keybind,
you must use the mouse to escape the keystroke input before editing
something else - breaking keyboard navigation.
The idea in this PR is to have a dual-phased focus system for the
keystroke input. There is an outer focus that has some sort of visual
indicator to communicate it is focused (currently a border). While the
outer focus region is focused, keystrokes are not intercepted. Then
there is a keybind (currently hardcoded to `enter`) to enter the inner
focus where keystrokes are intercepted, and which must be exited using
the mouse. When the inner focus region is focused, there is a visual
indicator for the fact it is "recording" (currently a hacked together
red pulsing recording icon)
<details><summary>Video</summary>
https://github.com/user-attachments/assets/490538d0-f092-4df1-a53a-a47d7efe157b
</details>
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Ben Kunkle
created
206cce6
keymap_ui: Support unbinding non-user defined keybindings (#34318)
Click to expand commit body
Closes #ISSUE
Makes it so that `KeymapFile::update_keybinding` treats removals of
bindings that weren't user-defined as creating a new binding to
`zed::NoAction`.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Now DAP logs show the label of each session which makes it much easier
to pick out the right one.
Also "initialization sequence" now shows up correctly when that view is
selected.
Release Notes:
- N/A
---------
Co-authored-by: Cole Miller <cole@zed.dev>
Julia Ryan
and
Cole Miller
created
625a4b9
Tinker with the reporting of telemetry events (#34239)
fbead09
go: Write `envFile` properties back to `env` config (#34300)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/32984
Note that while https://github.com/zed-industries/zed/pull/33666 did the
reading of the `envFile` just fine, the read values were never passed
along. This was mentioned by [this
comment](https://github.com/zed-industries/zed/pull/33666#issuecomment-3060785970)
and also confirmed by myself.
With the changes here, I successfully debugged a project of mine and all
the environment variables from my `.env` were present.
Release Notes:
- Fix Go debugger ignoring env vars from the envFile setting.
Lukas Spiss
created
0797f7b
keymap_ui: Show existing keystrokes as placeholders in edit modal (#34307)
Click to expand commit body
Closes #ISSUE
Previously, the keystroke input would be empty, even when editing an
existing binding. This meant you had to re-enter the bindings even if
you just wanted to edit the context. Now, the existing keystrokes are
rendered as a placeholder, are re-shown if newly entered keystrokes are
cleared, and will be returned from the `KeystrokeInput::keystrokes()`
method if no new keystrokes were entered.
Additionally fixed a bug in `KeymapFile::update_keybinding` where
semantically identical contexts would be treated as unequal due to
formatting differences.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Ben Kunkle
created
6f6c291
Display and jump to tool locations (#34304)
Click to expand commit body
Release Notes:
- N/A
Agus Zubiaga
created
0bd6582
Truncate multi-line debug value hints (#34305)
Click to expand commit body
Release Notes:
- Multi-line debug inline values are now truncated.
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Julia Ryan
and
Anthony Eid
created
90bf602
Reduce number of snapshots and notifies during editor scrolling (#34228)
Click to expand commit body
We not do not create new snapshots anymore when autoscrolling
horizontally and also do not notify any longer should the new scroll
position match the old one.
Release Notes:
- N/A
---------
Co-authored-by: Michael Sloan <mgsloan@gmail.com>
Finn Evers
and
Michael Sloan
created
cd024b8
Add licenses.md for Windows build (#34272)
Click to expand commit body
Release Notes:
- N/A
localcc
created
af71e15
editor: Fix scrolling stuttering at the top of multibuffers (#34295)
Click to expand commit body
Release Notes:
- Fixed an issue where scrolling would stutter at the top of
multibuffers.
Following feedback that "Take Ours" and "Take Theirs" was confusing,
leading to users not knowing what exactly happened with each of these
buttons. It's now "Use HEAD" and "Use Origin", which also match what is
written in Git markers, helping parse them out more easily. Future
improvement is to have the actual branch target name in the "Use Origin"
button.
Release Notes:
- git: Improved merge conflict buttons clarity by changing labels to
"Use HEAD" and "Use Origin".
Danilo Leal
created
7035136
Fix bad kerning in integrated terminal (#34292)
Click to expand commit body
Closes #16869
Release Notes:
- (preview only): Fix bad kerning in integrated terminal.
Closes #ISSUE
Release Notes:
- N/A
---------
Co-authored-by: Agus Zubiaga <agus@zed.dev>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Conrad Irwin
,
Agus Zubiaga
,
Anthony Eid
, and
Ben Brandt
created
496bf0e
keymap_ui: Ensure keymap UI opens in local workspace (#34291)
Click to expand commit body
Closes #ISSUE
Use `workspace.with_local_workspace` to ensure the keymap UI is opened
in a local workspace, even in remote. This was tested by removing the
feature flag handling code, as with the feature flag logic the action
does not appear which is likely a bug.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Ben Kunkle
created
c09f484
collab: Add ability to add tax ID during Stripe Checkout (#34246)
Click to expand commit body
### 1. **Added Tax ID Collection Types**
- Created a new `StripeTaxIdCollection` struct with an `enabled` field
- Added `tax_id_collection` field to `StripeCreateCheckoutSessionParams`
### 2. **Updated the Stripe Client Interface**
- Modified the real Stripe client to handle tax ID collection conversion
- Updated the fake Stripe client for testing purposes
- Added proper imports across all affected files
### 3. **Enabled Tax ID Collection in Checkout Sessions**
- Both `checkout_with_zed_pro` and `checkout_with_zed_pro_trial` methods
now enable tax ID collection
- The implementation correctly sets `tax_id_collection.enabled = true`
for all checkout sessions
### 4. **Key Implementation Details**
- Tax ID collection will be shown to new customers and existing
customers without tax IDs
- Collected tax IDs will be automatically saved to the customer's
`tax_ids` array in Stripe
- Business names will be saved to the customer's `name` property
- The existing `customer_update.name = auto` setting ensures
compatibility with tax ID collection
Release Notes:
- N/A
morgankrey
created
a58a75c
keymap_ui: Hide tooltips when context menu is shown (#34286)
Click to expand commit body
This PR ensures tooltips are dismissed/not shown once the context menu
is opened.
It also ensures the context menu is dismissed once the list is scrolled.
Release Notes:
- N/A
Finn Evers
created
d1a6c5d
keymap_ui: Hover tooltip for context (#34290)
Click to expand commit body
Closes #ISSUE
Ideally the tooltip would only appear if the context was overflowing
it's column, but for now, we just unconditionally show a tooltip so that
long contexts can be seen.
This PR also includes a change to the tooltip element, allowing for
tooltips with non-text contents which is used here for syntax
highlighting
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Co-authored-by: Anthony <anthony@zed.dev>
Ben Kunkle
and
Anthony
created
10028aa
Ensure *.json recognized as JSONC if checkout folder not `zed` (#34289)
Click to expand commit body
Follow-up to: https://github.com/zed-industries/zed/pull/33410
Release Notes:
- N/A
Peter Tripp
created
3b9bb52
keymap_ui: Only show conflicts between user bindings (#34284)
Click to expand commit body
Closes #ISSUE
This makes it so conflicts are only shown between user bindings. User
bindings that override bindings in the Vim, Base, and Default keymaps
are not identified as conflicts
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Co-authored-by: Anthony <anthony@zed.dev>
Ben Kunkle
and
Anthony
created
7eb739d
Add initial support for search by keystroke to keybinding editor (#34274)
Click to expand commit body
This PR adds preliminary support for searching keybindings by keystrokes
in the keybinding editor.
Release Notes:
- N/A
1538401
linux: Use `randr` as fallback for scale factor in X11 (#34265)
Click to expand commit body
Closes #14537
- Adds server-side scale factor detection via `randr` when client-side
detection fails using `xrdb/Xft.dpi`.
- Adds the `GPUI_X11_SCALE_FACTOR` flag to force a scale factor, which
can be a positive number for custom scaling or `randr` for server-side
scale factor detection.
Release Notes:
- Fixed an issue where the scale factor was not detected correctly on
X11 systems when `Xft.dpi` is not defined (mostly in cases involving
window managers).
Smit Barmase
created
8812e7c
windows: Fix an issue where dead keys that require holding `shift` didn’t work properly (#34264)
Click to expand commit body
Closes #34194
Release Notes:
- N/A
张小白
created
56d0ae6
Don't apply contrast adjustment to decorative chars (#34238)
Click to expand commit body
Closes #34234
Release Notes:
- Automatic contrast adjustment in terminal is no longer applied to
decorative characters used in block art.
Richard Feldman
created
d52f07b
lsp tool: Make "Restart All Servers" always visible (#34255)
Click to expand commit body
Next step is to have a "Restart Current Buffer Server(s)". 😬
Release Notes:
- N/A
Danilo Leal
created
089ce8f
agent: Allow clicking on the read file tool header to jump to the exact file location (#33161)
Click to expand commit body
Release Notes:
- Allow clicking on the header of the read file tool to jump to the
exact file location
When researching code or when the Agent analyzes context by reading
various project files, the read file tool is used. It usually includes
line numbers relevant to the current prompt or task. However, it’s often
frustrating that the read file header isn’t clickable to view the
corresponding code directly. This PR makes the header clickable,
allowing users to jump to the referenced file. If start and end lines
are specified, it will navigate directly to that exact location.
https://github.com/user-attachments/assets/b0125d0b-7166-43dd-924e-dc5585813b0b
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Max Frai
and
Danilo Leal
created
842ac98
git: Intercept signing prompt from GPG when committing (#34096)
Click to expand commit body
Closes #30111
- [x] basic implementation
- [x] implementation for remote projects
- [x] surface error output from GPG if signing fails
- [ ] ~~Windows~~
Release Notes:
- git: Passphrase prompts from GPG to unlock commit signing keys are now
shown in Zed.
Cole Miller
created
87362c6
Assign checksum seed in windows releases (#34252)
Click to expand commit body
This will allow windows releases to report panics and telemetry.
Release Notes:
- N/A
7915b9f
keymap_ui: Add ability to delete user created bindings (#34248)
Click to expand commit body
Closes #ISSUE
Adds an action and special handling in `KeymapFile::update_keybinding`
for removals. If the binding being removed is the last in a keymap
section, the keymap section will be removed entirely instead of left
empty.
Still to do is the ability to unbind/remove non-user created bindings
such as those in the default keymap by binding them to `NoAction`,
however, this will be done in a follow up PR.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
41085f8
settings_ui: Inform about keybind conflicts in modal (#34205)
Click to expand commit body
This PR updates the keybinding editor modal so that conflicts are
already shown in the modal itself. Notably, this does not add validation
on every keystroke, the update still has to be confirmed. However, if
only a warning is present, on the second confirm the keybind will
actually be updated.
The change also includes a slight update to the displayment of errors,
since we now differentiate between errors and warnings.
| Error | Warning |
| --- | --- |
| <img width="543" height="332" alt="warning_keybind"
src="https://github.com/user-attachments/assets/867319be-eeb9-40d7-bf32-fbd44aacf0b5"
/> | <img width="543" height="310" alt="error_keybind"
src="https://github.com/user-attachments/assets/858a6c7c-8c9a-4a90-95af-a5103125676f"
/> |
Release Notes:
- N/A
9d2b7c8
agent: Dismiss the agent panel notification if window is closed (#34230)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/32951
Release Notes:
- agent: Fixed an issue where the agent panel notification would linger
on even after you closed the window.
Danilo Leal
created
c6603e4
Stop extensions' servers and message loops before removing their files (#34208)
Click to expand commit body
Fixes an issue that caused Windows to fail when removing extension's
directories, as Zed had never stop any related processes.
Now:
* Zed shuts down and waits until the end when the language servers are
shut down
* Adds `impl Drop for WasmExtension` where does
`self.tx.close_channel();` to stop a receiver loop that holds the "lock"
on the extension's work dir.
The extension was dropped, but the channel was not closed for some
reason.
* Does more unregistration to ensure `Arc<WasmExtension>` with the `tx`
does not leak further
* Tidies up the related errors which had never reported a problematic
path before
Release Notes:
- N/A
---------
Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
Co-authored-by: Smit <smit@zed.dev>
d6bff27
settings_ui: Ensure selected keymap entry is properly updated (#34229)
Click to expand commit body
This change ensures that we more reliably deploy the context menu in the
keymap editor as well as highlight the selected row quicker.
Release Notes:
- N/A
Finn Evers
created
cfc9cfa
language_models: Refresh the list of models when the LLM token is refreshed (#34222)
Click to expand commit body
This PR makes it so we refresh the list of models whenever the LLM token
is refreshed.
This allows us to add or remove models based on the plan in the new
token.
Release Notes:
- Fixed model list not refreshing when subscribing to Zed Pro.
---------
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Marshall Bowers
and
Bennet Bo Fenner
created
e2e529b
Remove redundant `autoscroll_horizontally` during editor prepaint (#34218)
Click to expand commit body
* Experimentally `scroll_manager.anchor()` appears to be the same before
and after this 2nd call of `autoscroll_horizontally`
* Nothing these depend on seem to be mutated between the calls (and
since this is prepaint, stuff within editor also shouldn't be mutated)
Release Notes:
- N/A
Co-authored-by: Finn <finn@zed.dev>