4445679
Fix a typo in the task example (#23148)
Click to expand commit body
Release Notes: - N/A
Kirill Bulatov created
4445679
Fix a typo in the task example (#23148)
Release Notes: - N/A
Kirill Bulatov created
a3e7444
Git panel polish (#23144)
- Clicking checkbox in the header stages or unstages all changes - Adds tooltips to header checkbox - Addis the ability for checkboxes to have tooltips - Ensure an entry in the list is always selected - Hide revert all button for now Release Notes: - N/A
Nate Butler created
d13d099
git: Restore basic jump-to-file functionality (#23140)
This just opens the file for the selected `GitListEntry` right now; we'll add back integration with the project diff view later. Release Notes: - N/A --------- Co-authored-by: Nate <nate@zed.dev>
Cole Miller and Nate created
de5f023
assistant2: Cancel generation button (#23137)
Turns the "esc to cancel" label into a button so it can be dispatched via click or keyboard. The keybinding isn't hardcoded anymore.  Release Notes: - N/A
Agus Zubiaga created
4febc7e
assistant2: Cancel pending completion when an error occurs (#23143)
This PR makes it so the pending completion is cleared when an error occurs. This makes it so `Thread::is_streaming()` will return `false` in the error case (and thus hide the streaming indicator in the UI). Release Notes: - N/A
Marshall Bowers created
c33eb01
Change tooltip to 'Edit Prediction' (#23139)
Release Notes: - N/A
Thorsten Ball created
1ddf754
zeta: Rework displaying paths in completion rating modal (#23129)
Two issues i ran into while looking at the completion rating modal - Single-file worktrees file names are not displayed at all - Hard to see the filename when the path is long (lots of directories) This PR fixes this by displaying the filename on the left, followed by the full path (including the worktree name), similar to how we do it in the file finder/assistant panel /file command | Before | After | |--------|--------| | <img width="1067" alt="Screenshot 2025-01-14 at 16 09 05" src="https://github.com/user-attachments/assets/628fde18-da9a-4d98-8ddf-ed0ab0cd8d35" /> | <img width="1161" alt="Screenshot 2025-01-14 at 16 17 52" src="https://github.com/user-attachments/assets/80c6a4e1-065d-4b0a-b9c0-5f3391af4557" /> | Release Notes: - N/A
Bennet Bo Fenner created
91b36c3
environments: Don't load shell environments in non-local worktrees (#23138)
This fixes an error message that has shown up for me when joining collab projects: "Unable to load shell environment in /<path on another machine/" Release Notes: - Fixed error message about shell environment failing to load when joining projects in collaboration.
Thorsten Ball created
39ac6e4
assistant2: Navigate context strip with keyboard (#23128)
Context pills are now focusable and intractable via the keyboard. - <kbd>←</kbd> and <kbd>→</kbd> move the focus to the previous or next item (wrapping if necessary) - <kbd>↓</kbd> and <kbd>↑</kbd> move the focus vertically - If the cursor is in the first/last row of the assistant/inline editor, they will move the focus to the strip - Inside the strip, they will move the focus to the pill horizontally overlapping the most - If already in the first/last row of the strip, they will move to the first/last pill (like in editors) - If the first/last pill is focused, they will move the focus back to the editor - <kbd>⌫</kbd> removes the focused pill (unless it's the suggested one) - <kbd>⏎</kbd> accepts the suggested pill if focused https://github.com/user-attachments/assets/040bc71c-a3ae-4961-9886-2d5c3d290a73 Release Notes: - N/A
Agus Zubiaga created
78fd5b5
git_ui: Add Git Panel settings (#23132)
This PR adds settings for the Git Panel.
The new settings include:
| Setting | Description | Default |
|---------|-------------|---------|
| `git_panel.button` | Toggle visibility of the Git Panel button in the
status bar | `true` |
| `git_panel.dock` | Choose where to dock the Git Panel | `"left"` |
| `git_panel.default_width` | Set the default width of the Git Panel in
pixels | `360` |
| `git_panel.status_style` | Select how Git status is displayed |
`"icon"` |
| `git_panel.scrollbar.show` | Configure scrollbar behavior | Inherits
from editor settings |
Example usage:
```json
"git_panel": {
"button": true,
"dock": "left",
"default_width": 360,
"status_style": "icon",
"scrollbar": {
"show": "auto"
}
}
```
Release Notes:
- N/A
Nate Butler created
a677096
zeta: Various product fixes before Preview release (#23125)
Various fixes for Zeta and one fix that's visible to non-Zeta-using users of inline completions. Release Notes: - Changed inline completions (Copilot, Supermaven, ...) to not show up in empty buffers. --------- Co-authored-by: Antonio <antonio@zed.dev> Co-authored-by: Antonio Scandurra <me@as-cii.com> Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball , Antonio , Antonio Scandurra , and Bennet created
1b3b825
lsp: Parse LSP messages on background thread - again (#23122)
This is a follow-up to #12640. While profiling latency of working with a project with 8192 diagnostics I've noticed that while we're parsing the LSP messages into a generic message struct on a background thread, we can still block the main thread as the conversion between that generic message struct and the actual LSP message (for use by callback) is still happening on the main thread. This PR significantly constrains what a message callback can use, so that it can be executed on any thread; we also send off message conversion to the background thread. In practice new callback constraints were already satisfied by all call sites, so no code outside of the lsp crate had to be adjusted. This has improved throughput of my 8192-benchmark from 40s to send out all diagnostics after saving to ~20s. Now main thread is spending most of the time updating our diagnostics sets, which can probably be improved too. Closes #ISSUE Release Notes: - Improved app responsiveness with huge # of diagnostics.
Piotr Osiewicz created
8e65ec1
Disable Prettier for C projects by default (#23119)
Follow-up of https://github.com/zed-industries/zed/pull/23112 Same reasoning applies. Release Notes: - Changed default formatter for C to be the primary language server, not Prettier. Format-on-save is still disabled by default for C, but if one uses the editor: format command now, it will default to the language server. clangd can format C files, whereas prettier cannot.
Kirill Bulatov created
fcadd3e
cpp: Enable language server as formatter by default (#23112)
As @hferreiro points out in [this comment](https://github.com/zed-industries/zed/pull/18752#issuecomment-2589340565): C++ and prettier don't work well together, so let's make the default formatter for C++ the primary language server. We get that by disabling prettier. Release Notes: - Changed default formatter for C++ to be the primary language server, not Prettier. Format-on-save is still disabled by default for C++, but if one uses the `editor: format` command now, it will default to the language server. `clangd` can format C++ files, whereas prettier cannot.
Thorsten Ball created
a13e64e
Keymap json schema generation improvements intended to be in #23098 (#23114)
Intended to include these in #23098, but seems they didn't push before merge. Probably didn't use `--force-with-lease`
Michael Sloan created
26be440
vim: Add Subword Textobject (#22387)
Closes #22761 [Vim: subword text object? #22280](https://github.com/zed-industries/zed/discussions/22280) Release Notes: - Added Vim SubWord TextObject --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
0x2CA and Conrad Irwin created
03c99e3
vim: Fix vim delete to line (#23053)
Closes #23024 Release Notes: - Fixed Vim `dxG` delete to line --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
0x2CA and Conrad Irwin created
93f117b
Improve registration for Assistant code action providers (#23099)
This PR is a follow-up to https://github.com/zed-industries/zed/pull/22911 to further improve the registration of code action providers for the Assistant in order to prevent duplicates. The `CodeActionProvider` trait now has an `id` method that is used to return a unique ID for a code action provider. We use this to prevent registering duplicates of the same provider. The registration of the code action providers for Assistant1 and Assistant2 have also been reworked. Previously we were not call the registration function—and thus setting up the subscriptions—until we resolved the feature flags. However, this could lead to the registration happening too late for existing workspace items. We now perform the registration right away and then remove the undesired code action providers once the feature flags have been resolved. Release Notes: - N/A
Marshall Bowers created
830f45e
assistant2: Add floating indicator when a response is streaming (#23096)
This PR adds a separate indicator at the bottom of the thread that shows when a response is being streamed (as well as how to cancel it): <img width="1309" alt="Screenshot 2025-01-13 at 4 19 07 PM" src="https://github.com/user-attachments/assets/b64f785b-d522-458d-b915-3f604890597f" /> Release Notes: - N/A
Marshall Bowers created
ae103fd
Fix confusing keymap json errors and hovers for nonexistent actions (#23098)
Release Notes: - N/A
Michael Sloan created
c599ba6
assistant2: Only show the streaming indicator on the last Assistant message (#23090)
This PR is a follow-up to #23078 to ensure that the streaming indicator only shows up on the last Assistant message. Release Notes: - N/A
Marshall Bowers created
867c069
editor: Adjust offset of the opened jump target in the multibuffer (#23091)
This PR fixes an issue with jumping from multi_buffer to a file; namely, the scroll offset of the opened buffer used to match the position within the multibuffer, but it broke a while back. This is because we were opening a buffer without providing the data about the origin scroll offset. Closes #ISSUE Release Notes: - Fixed a bug where the relative position of an excerpt within the multibuffer was not accounted for while jumping to the buffer, causing the clicked line to drastically change position on screen.
Piotr Osiewicz created
ac2d3ee
Remove commented-out code (#23089)
This PR removes some commented-out code from the codebase. Release Notes: - N/A
Marshall Bowers created
4054d4a
assistant2: Fix inline context picker and handle dismiss (#23081)
The new `ContextMenu`-based `ContextPicker` requires initialization when opened, but we were only doing this for the `ContextStrip` picker, not the inline one. Additionally, because we have a wrapper element around ContextMenu, we need to propagate the `DismissEvent` so that it properly closes when Escape is pressed. Release Notes: - N/A
Agus Zubiaga created
7c2c409
Show configuration in language server debug logs (#23084)
Release Notes: - Added configuration sent on initialization to the `Server Info` section of the language server logs.
Michael Sloan created
d4e91c1
Add support for namespace changes in action deprecations (#23086)
cc @cole-miller Release Notes: - N/A
Michael Sloan created
b633f62
Add test that JSON schema generation works + actions build from no input (#23049)
Release Notes: - N/A
Michael Sloan created
85b727c
Remove inaccurate comments (#23056)
These comments are inaccurate. Even if `convert_case` provided a way to customize which boundaries were used (which is now does, it 0.7.1), they would be removed from the string and replaced with the new boundary character (`-`, `_`, ...), and we'd lose the ability to reconstruct the text the way the author formatted it. This is not a hack, this is the way we have to do it. Release Notes: - N/A
Joseph T. Lyons created
bd3c7d6
git: Fully implement "all staged" checkbox (#23079)
Also includes some improvements to the "stage/unstage all" actions and buttons. Release Notes: - N/A
Cole Miller created
2179be1
assistant2: Add an indicator when a response is streaming in (#23078)
This PR adds an indicator to the Assistant message to indicate that it is still streaming: <img width="1310" alt="Screenshot 2025-01-13 at 2 10 33 PM" src="https://github.com/user-attachments/assets/635ee60d-b5ea-40ac-952a-b7bfa7e04fcc" /> Release Notes: - N/A
Marshall Bowers created
2f76295
Take a reference in LSP notify (#23077)
In current code this doesn't have benefit. In preparation for avoiding a clone of workspace configuration. Having the interface this way may make opportunities for efficiency clearer in the future Release Notes: - N/A
Michael Sloan created
c1c767a
assistant2: Make `Esc` cancel current completion (#23076)
This PR makes it so pressing `Esc` in Assistant2 will cancel the current completion. Release Notes: - N/A
Marshall Bowers created
b59a9f1
Document why rust-analyzer doesn't show action name in action docs (#23072)
rust-analyzer does not support derive_macro expansion in attributes - https://github.com/rust-lang/rust-analyzer/issues/8092. This could be worked around via a proc_macro, but I think it'd be best to just require docs for every action. Release Notes: - N/A
Michael Sloan created
102e708
git: Git Panel UI, continued (#22960)
TODO: - [ ] Investigate incorrect hit target for `stage all` button - [ ] Add top level context menu - [ ] Add entry context menus - [x] Show paths in list view - [ ] For now, `enter` can just open the file - [ ] 🐞: Hover deadzone in list caused by scrollbar - [x] 🐞: Incorrect status/nothing shown when multiple worktrees are added --- This PR continues work on the feature flagged git panel. Changes: - Defines and wires up git panel actions & keybindings - Re-scopes some actions from `git_ui` -> `git`. - General git actions (StageAll, CommitChanges, ...) are scoped to `git`. - Git panel specific actions (Close, FocusCommitEditor, ...) are scoped to `git_panel. - Staging actions & UI are now connected to git! - Unify more reusable git status into the GitState global over being tied to the panel directly. - Uses the new git status codepaths instead of filtering all workspace entries Release Notes: - N/A --------- Co-authored-by: Cole Miller <53574922+cole-miller@users.noreply.github.com> Co-authored-by: Cole Miller <cole@zed.dev>
Nate Butler , Cole Miller , and Cole Miller created
1c6dd03
Add Diagnostics key context (#23043)
Closes #17337
Release Notes:
- Add `Diagnostics` key context
- Enables users to specify key bindings for that pane
```json
{
"context": "Diagnostics",
"bindings": {
"alt-q": "diagnostics::ToggleWarnings"
}
}
```
everdrone created
955248f
copilot_chat: Rename `o1-preview` model to `o1` (#23038)
https://github.blog/news-insights/openais-o1-model-available-in-copilot-chat-and-github-models/ Release Notes: - Renamed Github Copilot Chat "o1-preview" model to "o1". --------- Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
SkywardSyntax and Marshall Bowers created
7ed834b
terminal: Fix unresponsive buttons on load until center pane is clicked + Auto-focus docked terminal on load if no other item is focused (#23039)
Closes #23006 This PR should have been split into two, but since the changes are related, I merged them into one. 1. On load, the title bar actions and bottom bar toggles are unresponsive until the center pane is clicked. This happens because the terminal captures focus (even if it's closed) long after the workspace sets focus to itself during loading. The issue was in the `focus_view` call used in the `new` method of `TerminalPanel`. Since new terminal views can be created behind the scenes (i.e., without the terminal being visible to the user), we shouldn't handle focus for the terminal in this case. Removing `focus_view` from the `new` method has no impact on the existing terminal focusing logic. I've tested scenarios such as creating new terminals, splitting terminals, zooming, etc., and everything works as expected. 2. Currently, on load, docked terminals do not automatically focus when they are only visible item to the user. This PR implements it. Before/After: 1. When only the dock terminal is visible on load. Terminal is focused. <img src="https://github.com/user-attachments/assets/af8848aa-ccb5-4a3b-b2c6-486e8d588f09" alt="image" height="280px" /> <img src="https://github.com/user-attachments/assets/8f76ca2e-de29-4cc0-979b-749b50a00bbd" alt="image" height="280px" /> 2. When other items are visible along with the dock terminal on load. Editor is focused. <img src="https://github.com/user-attachments/assets/d3248272-a75d-4763-9e99-defb8a369b68" alt="image" height="280px" /> <img src="https://github.com/user-attachments/assets/fba5184e-1ab2-406c-9669-b141aaf1c32f" alt="image" height="280px" /> 3. Multiple tabs along with split panes. Last terminal is focused. <img src="https://github.com/user-attachments/assets/7a10c3cf-8bb3-4b88-aacc-732b678bee19" alt="image" height="270px" /> <img src="https://github.com/user-attachments/assets/4d16e98f-9d7a-45f6-8701-d6652e411d3b" alt="image" height="270px" /> Future: When a docked terminal is in a zoomed state and Zed is loaded, we should prioritize focusing on the terminal over the active item (e.g., an editor) behind it. This hasn't been implemented in this PR because the zoomed state during the load function is stale. The correct state is received later via the workspace. I'm still investigating where exactly this should be handled, so this will be a separate PR. cc: @SomeoneToIgnore Release Notes: - Fixed unresponsive buttons on load until the center pane is clicked. - Added auto-focus for the docked terminal on load when no other item is focused.
tims created
13405ed
Add emacs keybindings for mark emulation (#22904)
These keybindings extend the already selected text. This allows closer emacs emulation where subsequent movement commands extend / shrink the current selection instead of dismissing it. This is a follow up on - #21927 Release Notes: - Added emacs movement keybindings that extend/shrink the current selection --------- Co-authored-by: Peter Tripp <peter@zed.dev>
Ozan and Peter Tripp created
c26553d
Add more metrics for Fireworks Completion Requested (#23062)
Release Notes: - N/A Co-authored-by: Thorsten <thorsten@zed.dev>
Antonio Scandurra and Thorsten created
f2ab00c
Improve prompt caching for edit prediction (#23061)
This is achieved by halving the number of events instead of popping the front. Release Notes: - N/A Co-authored-by: Thorsten <thorsten@zed.dev>
Antonio Scandurra and Thorsten created
e084848
Clarify logic for `Autoscroll::newest()` and `Autoscroll::fit()` (#23048)
Release Notes: - N/A
Michael Sloan created
6aba395
Improve keymap json schema (#23044)
Also: * Adds `impl_internal_actions!` for deriving the `Action` trait without registering. * Removes some deserializers that immediately fail in favor of `#[serde(skip)]` on fields where they were used. This also omits them from the schema. Release Notes: - Keymap settings file now has more JSON schema information to inform `json-language-server` completions and info, particularly for actions that take input.
Michael Sloan created
4c50201
For informational LSP queries log errors instead of notifying in UI (#23040)
I added these notifies in #23011, but in practive have found them to be overly disruptive. It would definitely be good to do something better than logging here, but having a sticky error notification is worse. I think it is still good to notify on mutation failures, so left those in In particular with rust-analyzer, "Go to definition" and "Find references" frequently fail with "Content modified" quite a while after sending the request. Since users are probably used to these operations being finicky it doesn't seem useful to have a prominent display of errors for them.
Michael Sloan created
fb65044
Reuse vtsls logic for completion details display (#23030)
Part of https://github.com/zed-industries/zed/issues/22833, https://github.com/zed-industries/zed/issues/22267, https://github.com/zed-industries/zed/issues/22503 Before:   After:  Copies https://github.com/zed-industries/zed/pull/15087 change into `typescript-language-server`-related label details rendering code. Release Notes: - Improved typescript-language-server's completion details rendering
Kirill Bulatov created
b6b8740
Do not try to activate the terminal panel twice (#23029)
Closes https://github.com/zed-industries/zed/issues/23023 Fixes terminal pane button opening two terminals on click. The culprit is in https://github.com/zed-industries/zed/blob/61115bd04792d87a540558753cd01a6368baba2a/crates/workspace/src/workspace.rs#L2412-L2417 * We cannot get any panel by index from the Dock, only an active one * Both `dock.activate_panel(panel_index, cx);` and `dock.set_open(true, cx);` do `active_panel.panel.set_active(true, cx);` So, follow other pane's impls that have `active: bool` property for this case, e.g. https://github.com/zed-industries/zed/blob/3ec52d8451dd1178c4d036da3a71c827df422f4b/crates/assistant/src/inline_assistant.rs#L2687 Release Notes: - Fixed terminal pane button opening two terminals on click
Kirill Bulatov created
61115bd
Fix a completions panic when no fuzzy matches + inline completion (#23019)
My mistake in #22977, in the case where the inline completion was not selected it set the index to 1 assuming there would be following match entries.
Michael Sloan created
5785266
Improve doc comments about keybinding order (#23014)
Release Notes: - N/A
Michael Sloan created
daaa250
Include display text for LSP commands in errors (#23012)
https://github.com/zed-industries/zed/pull/23011 adds display of errors in the UI so it's now more important to contextualize these. Release Notes: - N/A
Michael Sloan created
de2e197
Inline `perform_rename_impl` as its only used in one spot (#23013)
Also removes a redundant use of `to_point_utf16`. Release Notes: - N/A
Michael Sloan created
65c38f2
Notify user about LSP errors from editor actions (#23011)
Closes #22976 Release Notes: * Improved visibility of errors from language servers by reporting them in the UI when the user invokes an LSP action.
Michael Sloan created