dcdd740
wip
Junkui Zhang created
dcdd740
wip
Junkui Zhang created
52c1813
apply #23576
Junkui Zhang created
2319cd8
apply #19772
Junkui Zhang created
f500417
Language independent hotkeys (#34053)
Addresses #10972 Closes #24950 Closes #24499 Adds _key_en_ to _Keystroke_ that is derived from key's scan code. This is more lightweight approach than #32529 Currently has been tested on x11 and windows. Mac code hasn't been implemented yet. Release Notes: - linux: When typing non-ASCII keys on Linux we will now also match keybindings against the QWERTY-equivalent layout. This should allow most of Zed's builtin shortcuts to work out of the box on most keyboard layouts. **Breaking change**: If you had been using `keysym` names in your keyboard shortcut file (`ctrl-cyrillic_yeru`, etc.) you should now use the QWERTY-equivalent characters instead. --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Sergei Surovtsev and Conrad Irwin created
51df8a1
project_panel: Do not render a single sticky entry when scrolled all the way to the top (#34389)
Fixes root entry not expanding/collapsing on nightly. Regressed in https://github.com/zed-industries/zed/pull/34367. Release Notes: - N/A
Smit Barmase created
85d1254
linux: Add `file_finder::Toggle` key binding (#34380)
This fixes a bug on linux where repeated presses of p while holding down the ctrl modifier navigates through options in reverse. Closes #34379 The main issue is the default biding of ctrl-p on linux is menu::SelectPrevious hence in context "context": "FileFinder || (FileFinder > Picker > Editor)" it would navigate in reverse Release Notes: - Fixed `file_finder::Toggle` on Linux not scrolling forward
Somtoo Chukwurah created
0af7d32
keymap_ui: Dismiss context menu less frequently (#34387)
This PR fixes an issue where the context menu in the keymap UI would be immediately dismissed after being opened when using a trackpad on MacOS. Right clicking on MacOS almost always fires a scroll event with a delta of 0 pixels right after (which is not the case when using a mouse). The fired scroll event caused the context menu to be removed on the next frame. This change ensures the menu is only removed when a vertical scroll is actually happening. Release Notes: - N/A
Finn Evers created
d0a2257
fix
Junkui Zhang created
af20097
fix all
Junkui Zhang created
eec406b
wip
Junkui Zhang created
83ea328
apply #20812
Junkui Zhang created
f2c847a
apply #15782
Junkui Zhang created
5d03296
wip
Junkui Zhang created
b4771bc
wip
Junkui Zhang created
6819205
init
Junkui Zhang created
1cadff9
project_panel: Fix sticky items horizontal scroll and hover propagation (#34367)
Release Notes: - Fixed horizontal scrolling not working for sticky items in the Project Panel. - Fixed issue where hovering over the last sticky item in the Project Panel showed a hovered state on the entry behind it. - Improved behavior when clicking a sticky item in the Project Panel so it scrolls just enough for the item to no longer be sticky.
Smit Barmase created
8f6b9f0
debugger: Allow users to shutdown debug sessions while they're booting (#34362)
This solves problems where users couldn't shut down sessions while locators or build tasks are running. I renamed `debugger::Session::Mode` enum to `SessionState` to be more clear when it's referenced in other crates. I also embedded the boot task that is created in `SessionState::Building` variant. This allows sessions to shut down all created threads in their boot process in a clean and idiomatic way. Finally, I added a method on terminal that allows killing the active task. Release Notes: - Debugger: Allow shutting down debug sessions while they're booting up
Anthony Eid created
970a106
git: Handle shift-click to stage a range of entries in the panel (#34296)
Release Notes: - git: shift-click can now be used to stage a range of entries in the git panel.
Cole Miller created
833bc69
debugger: Fix correctly determine replace range for debug console completions (#33959)
Follow-up #33868 This PR fixes a few issues with determining the completion range for client‑ and variable‑list completions. 1. Non‑word completions We previously supported only word characters and _, using their combined length to compute the start offset. In PHP, however, an expression can contain `$`, `-`, `>`, `[`, `]`, `(`, and `)`. Because these characters weren’t treated as word characters, the start offset stopped at them, even when the preceding character was part of a word. 2. Trailing characters inside the search text When autocompletion occurred in the middle of the search text, we didn’t account for trailing characters. As a result, the start offset was off by the number of characters after the cursor. For example, replacing res with result in print(res) produced `print(rresult)` because the trailing `)` wasn’t subtracted from the start offset. The following completions are correctly covered now: - **Before** `$aut` -> `$aut$author` **After** `$aut` -> `$author` - **Before** `$author->na` -> `$author->na$author->name` **After** `$author->na` -> `$author->name` - **Before** `$author->books[` -> `$author->books[$author->books[0]` **After** `$author->books[` -> `$author->books[0]` - **Before** `print(res)` -> `print(rresult)` **After** `print(res)` -> `print(result)` **Before** https://github.com/user-attachments/assets/b530cf31-8d4d-45e6-9650-18574f14314c https://github.com/user-attachments/assets/52475b7b-2bf2-4749-98ec-0dc933fcc364 **After** https://github.com/user-attachments/assets/c065701b-31c9-4e0a-b584-d1daffe3a38c https://github.com/user-attachments/assets/455ebb3e-632e-4a57-aea8-d214d2992c06 Release Notes: - Debugger: Fixed autocompletion not always replacing the correct search text
Remco Smits created
a8cc927
debugger: Improve appearance of session list for JavaScript debugging (#34322)
This PR updates the debugger panel's session list to be more useful in some cases that are commonly hit when using the JavaScript adapter. We make two adjustments, which only apply to JavaScript sessions: - For a child session that's the only child of a root session, we collapse it with its parent. This imitates what VS Code does in the "call stack" view for JavaScript sessions. - When a session has exactly one thread, we label the session with that thread's name, instead of the session label provided by the DAP. VS Code also makes this adjustment, which surfaces more useful information when working with browser sessions. Closes #33072 Release Notes: - debugger: Improved the appearance of JavaScript sessions in the debug panel's session list. --------- Co-authored-by: Julia <julia@zed.dev> Co-authored-by: Remco Smits <djsmits12@gmail.com>
Cole Miller , Julia , and Remco Smits created
13ddd5e
Return back the guards when goto targets are queried for (#34340)
Closes https://github.com/zed-industries/zed/issues/34310 Follow-up of https://github.com/zed-industries/zed/pull/29359 Release Notes: - Fixed goto definition not working in remote projects in certain conditions
Kirill Bulatov created
1b6e212
debugger: Fix endless restarts when connecting to TCP adapters over SSH (#34328)
Closes #34323 Closes #34313 The previous PR #33932 introduced a way to "close" the `pending_requests` buffer of the `TransportDelegate`, preventing any more requests from being added. This prevents pending requests from accumulating without ever being drained during the shutdown sequence; without it, some of our tests hang at this point (due to using a single-threaded executor). The bug occurred because we were closing `pending_requests` whenever we detected the server side of the transport shut down, and this closed state stuck around and interfered with the retry logic for SSH+TCP adapter connections. This PR fixes the bug by only closing `pending_requests` on session shutdown, and adds a regression test covering the SSH retry logic. Release Notes: - debugger: Fixed a bug causing SSH connections to some adapters (Python, Go, JavaScript) to fail and restart endlessly.
Cole Miller created
46834d3
Refine status bar design (#34324)
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)
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)
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)
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)
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)
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)
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 ...
Ben Kunkle created
c3edc2c
DAP log view improvements (#34311)
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)
Release Notes: - N/A --------- Co-authored-by: Katie Geer <katie@zed.dev>
Mikayla Maki and Katie Geer created
fbead09
go: Write `envFile` properties back to `env` config (#34300)
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)
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)
Release Notes: - N/A
Agus Zubiaga created
0bd6582
Truncate multi-line debug value hints (#34305)
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)
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)
Release Notes: - N/A
localcc created
af71e15
editor: Fix scrolling stuttering at the top of multibuffers (#34295)
Release Notes: - Fixed an issue where scrolling would stutter at the top of multibuffers.
Finn Evers created
d0e01db
Improve thread message history (#34299)
- Keep history across threads - Reset position when edited Release Notes: - N/A --------- Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Agus Zubiaga and Ben Brandt created
d65855c
git: Change merge conflict button labels (#34297)
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)
Closes #16869 Release Notes: - (preview only): Fix bad kerning in integrated terminal.
Alisina Bahadori created
993e0f5
ACP follow (#34235)
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)
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)
### 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)
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)
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)
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)
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)
This PR adds preliminary support for searching keybindings by keystrokes in the keybinding editor. Release Notes: - N/A
Anthony Eid created
b4cbea5
Fix icon size on Windows (#34277)
Closes #34122 Release Notes: - N/A
localcc created