426f94b
git_ui: Update todos (#22100)
Click to expand commit body
`todo!()` -> `TODO` Release Notes: - N/A
Nate Butler created
426f94b
git_ui: Update todos (#22100)
`todo!()` -> `TODO` Release Notes: - N/A
Nate Butler created
eff61ee
assistant2: Remove `WeakView<Workspace>` optionality for inline assist (#22099)
This PR removes the optionality for the `WeakView<Workspace>` that we pass to the inline assist. This was always `Some` in practice, so it seems we don't need to have it be an `Option`. Release Notes: - N/A
Marshall Bowers created
caefdcd
assistant2: Factor out `ContextStrip` (#22096)
This PR factors a `ContextStrip` view out of the `MessageEditor` so that we can use it in other places. Release Notes: - N/A
Marshall Bowers created
ff2ad63
Allow splitting terminal items in the central pane group (#22088)
Follow-up of https://github.com/zed-industries/zed/pull/22004 Closes https://github.com/zed-industries/zed/issues/22078 Release Notes: - Fixed splitting terminal items in the center
Kirill Bulatov created
88f7942
assistant2: Add support for referencing other threads as context (#22092)
This PR adds the ability to reference other threads as context: <img width="1159" alt="Screenshot 2024-12-16 at 11 29 54 AM" src="https://github.com/user-attachments/assets/bb8a24ff-56d3-4406-ab8c-6657e65d8c70" /> <img width="1159" alt="Screenshot 2024-12-16 at 11 29 35 AM" src="https://github.com/user-attachments/assets/7a02ebda-a2f5-40e9-9dd4-1bb029cb1c43" /> Release Notes: - N/A
Marshall Bowers created
188c55c
docs: Fix context_servers key for example extension manifest (#22079)
Pretty sure this isn't meant to be kebab-case. Release Notes: - N/A
uncenter created
2562b48
Refine interaction in foldable multibuffer header (#22084)
- Ensuring that the fold button is big enough to avoid clicking on the header as a whole (and then moving to the actual file) - Adding tooltips to the fold button - Refining the container structure so that the tooltip for the folder button and the header click don't overlap - Adding keybindings to tooltips https://github.com/user-attachments/assets/82284b59-3025-4d6d-b916-ad4d1ecdb119 Release Notes: - N/A
Danilo Leal created
bc113e4
Move task centering code closer to user input (#22082)
Follow-up of https://github.com/zed-industries/zed/pull/22004 * Reuse center terminals for tasks, when requested * Extend task templates with `RevealTarget`, moving it from `TaskSpawnTarget` into the core library * Use `reveal_target` instead of `target` to avoid misinterpretations in the task template context * Do not expose `SpawnInTerminal` to user interface, avoid it implementing `Serialize` and `Deserialize` * Remove `NewCenterTask` action, extending `task::Spawn` interface instead * Do not require any extra unrelated parameters during task resolution, instead, use task overrides on the resolved tasks on the modal side * Add keybindings for opening the task modal in the `RevealTarget::Center` mode Release Notes: - N/A
Kirill Bulatov created
ea01207
Trigger completions even if inline completion is visible (#22077)
This is related to #22069 and #21858: before both of these PRs, we would only ever show inline completions OR completions, never both at the same time. Now we show both at the same, but we still had this piece of logic here, that prevented non-inline completions from showing up if there was already an inline completion. With this change, it's possible to get LSP completions without having to dismiss inline completions before. Release Notes: - Inline completions (Copilot, Supermaven, ...) don't stop other completions from showing up anymore. Both can now be visible at the same time. --------- Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball and Bennet created
ce727fb
workspace: Fix doc comments (#22063)
Happened to see that the doc comments here were not correct while implementing something else. Release Notes: - N/A
Helge Mahrt created
62b3ace
Project panel: Deselect entries on remaining blank space click + Remove hover color for selected entries (#22073)
Closes #22072 Clicking on the remaining space now allows a single click to deselect all selected items. Check the issue for a preview of the current state and how it works in VSCode. Bonus: I found the hover color on selected items to be distracting. When I have many entries selected and hover over them, it becomes hard to tell if a particular entry is selected while the mouse pointer is on it. This PR removes hover coloring for selected entries, mimicking how VSCode handles it. This PR: <img src="https://github.com/user-attachments/assets/9c4b20fc-df93-4868-b7fe-4045433e85b2" alt="zed" width="450px" /> Release Notes: - Clicking on empty space in the Project Panel now deselects all selected items.
tims created
38c0aa3
vim: Don't dismiss inline completion when switching to normal mode (#22075)
I'm not sure about this yet. On one hand: it's nice that the completion doesn't just disappear when I hit escape because I was typing and in the flow. On the other hand: no other inline completion provider keeps the suggestion when leaving insert mode. I'm going to merge this so we can get it into nightly and try it out for the next couple of days. cc @ConradIrwin Release Notes: - vim: Do not dismiss inline completions when leaving insert/replace mode with `<esc>`.
Thorsten Ball created
040d9ae
zeta: Prevent diff popover from going offscreen (#22070)
https://github.com/user-attachments/assets/4ce806f1-d790-41d0-9825-e68055281446 Release Notes: - N/A
Bennet Bo Fenner created
d135ec2
completions: Restore tab behavior when both visible (#22069)
This reverts part of #21858 by changing how `tab` works again: - If both, completions and inline completions, are visible, then `tab` accepts the completion and `shif-tab` the inline completion. - If only one of them is shown, then `tab` accepts it. I'm not a fan of this solution, but I think it's a short-term fix that avoids breaking people's `tab` muscle memory. Release Notes: - (These release notes invalidate the release notes contained in: https://github.com/zed-industries/zed/pull/21858) - Changed how inline completions (Copilot, Supermaven, ...) and normal completions (from language servers) interact. Zed will now also show inline completions when the completion menu is visible. The user can accept the inline completion with `<shift-tab>` and the active entry in the completion menu with `<tab>`.
Thorsten Ball created
a94afbc
Switch from Arc/RwLock to Rc/RefCell for CodeContextMenu (#22035)
`CodeContextMenu` is always accessed on one thread, so only `Rc`s and `Rc<RefCell<_>>` are needed. There should be tiny performance benefits from this. The main benefit of this is that when seeing code accessing a `RwLock` it would be reasonable to wonder whether it will block. The only potential downside is the potential for panics due to overlapping borrows of the RefCells. I think this is an acceptable risk because most errors of this nature will be local or will be caught by clippy via the check for holding a RefCell reference over an `await`. Release Notes: - N/A
Michael Sloan created
7b721ef
Stop mutating completion match state + reject fuzzy match text change (#22061)
This fixes #21837, where CompletionsMenu fuzzy match positions were desynchronized from completion label text. The solution is to not mutate `match_candidates` and instead offset the highlight positions in the rendering code. This solution requires that the fuzzy match text not change on completion resolution. This is a property we want anyway, since fuzzy match text changing means items unexpectedly changing position in the menu. What happened: * #21521 updated completion resolution to modify labels on resolution. - This interacted poorly with the code [here](https://github.com/zed-industries/zed/blob/341e65e12289c355cbea6e91daee5493bbac921f/crates/editor/src/code_context_menus.rs#L604), where the fuzzy match results are updated to include the full label, and the fuzzy match result positions are offset to be in the correct place. The fuzzy mach positions were now invalid because they were based on the old text. * #21705 caused completion resolution to occur more frequently. Before this only the selected item was being resolved. This caused the panic due to invalid positions to happen much more frequently. Closes #21837 Release Notes: - N/A
Michael Sloan created
18b6d14
docs: Suggest installing PHP to use PHP (#22058)
Peter Tripp created
53c9af3
Add and use CodeLabel::filter_text() (#22054)
Release Notes: - N/A
Michael Sloan created
af50261
Allow folding buffers inside multi buffers (#22046)
Closes https://github.com/zed-industries/zed/issues/4925 https://github.com/user-attachments/assets/e7b87375-893f-41ae-a2d9-d501499e40d1 Allows to fold any buffer inside multi buffers, either by clicking the chevron icon on the header, or by using `editor::Fold`/`editor::UnfoldLines`/`editor::ToggleFold`/`editor::FoldAll` and `editor::UnfoldAll` actions inside the multi buffer (those were noop there before). Every fold has a fake line inside it, so it's possible to navigate into that via the keyboard and unfold it with the corresponding editor action. The state is synchronized with the outline panel state: any fold inside multi buffer folds the corresponding file entry; any file entry fold inside the outline panel folds the corresponding buffer inside the multi buffer, any directory fold inside the outline panel folds the corresponding buffers inside the multi buffer for each nested file entry in the panel. Release Notes: - Added a possibility to fold buffers inside multi buffers --------- Co-authored-by: Antonio Scandurra <antonio@zed.dev> Co-authored-by: Max Brunsfeld <max@zed.dev> Co-authored-by: Cole Miller <cole@zed.dev>
Kirill Bulatov , Antonio Scandurra , Max Brunsfeld , and Cole Miller created
f64fced
Fix fuzzy string match invariant check (#22032)
Version in #21983 only handled out of range issues rather than utf-8 boundary issues (thanks to @s3bba for pointing this out) Release Notes: - N/A
Michael Sloan created
7e6233d
Remove an unnecessary clone in `get_permalink_to_line` (#22027)
Release Notes: - N/A
Michael Sloan created
d459f01
Rename `GitRepository.path()` to `GitRepository.dot_git_dir()` (#22026)
Release Notes: - N/A
Michael Sloan created
2597065
Improve StringMatchCandidate::new interface (#22011)
Release Notes: - N/A
Michael Sloan created
9daa426
Fix terminal pane tabs arrangement and closing (#22013)
* Fixes the inability to drag and drop terminal tabs to reorder them; fixed incorrect terminal tab move on drag and drop into existing pane (follow-up of https://github.com/zed-industries/zed/pull/21238) * Fixes save dialogue appearing when on closing terminal tabs with running tasks (follow-up of https://github.com/zed-industries/zed/pull/21374) Release Notes: - Fixed terminal pane tabs arrangement and closing
Kirill Bulatov created
6e1cc5d
Remove `Task::get_ready` method I added, which is unusable in practice (#22012)
Does seem like such a mechanism should be possible, but not yet sure how to define it. Release Notes: - N/A
Michael Sloan created
c5fe6ef
Hide the implementation of `Task` (#22009)
The `Option<T>` within `Ready` is confusing and using `None` for it can cause crashes. There was actually one instance of this! Release Notes: - N/A
Michael Sloan created
1ac6028
Fix the compilation (#22010)
https://github.com/zed-industries/zed/pull/21706 was merged after https://github.com/zed-industries/zed/pull/22004 and the CI missed that. Release Notes: - N/A
Kirill Bulatov created
cbc2265
Prefer project (worktree) tasks to language/global tasks in task::Spawn (#21706)
`Inventory::list_tasks()` in `project` crate now is ordered by task types. Worktree tasks comes first, language tasks second and global tasks last. That leads to `spawn_task_with_name()` from `task_ui` crate will find worktree task first, so it's possible to override global tasks at project level. * `Inventory::templates_from_settings()` splitted to `Inventory::global_templates_from_settings()` and `Inventory::worktree_templates_from_settings()`. * In tests function `list_tasks()` renamed to `list_tasks_sorted_by_last_used()`, because it call's `Inventory::used_and_current_resolved_tasks()`. Also added `list_tasks()` which calls `Inventory::list_tasks()`. Closes #20987 Release Notes: - Fix task::Spawn to search for task name in project tasks first.
IViktorov created
ff2d207
Add setting for hover delay (#22006)
This PR adds a new `hover_popover_delay` setting that allows the user to specify how long to wait before showing informational hover boxes. It defaults to the existing delay. Release Notes: - Added a setting to control the delay for informational hover boxes
Aaron Feickert created
cd5d8b4
settings: Add max tabs option (#18933)
Add a `max_tabs` option to the settings that ensure no more than this amount of tabs are open in a pane. If set to `null`, there is no limit. Closes #4784 Release Notes: - Added a `max_tabs` option to cap the maximum number of open tabs.
Ulysse Buonomo created
0be7cf8
Show `restart` transformation button after successful inline assist (#20439)
When using inline assist, after successfully generating a transformation it's not possible to generate a new transformation. Currently, you have to modify the prompt (i.e. add a `<SPACE>` and hit `<ENTER>`) to regenerate. So, I changed the restart button to be visible after a successful transformation. And in that case I map it to a different keyboard shortcut because `menu::Confirm` is mapped to accept the current suggestion. Now, I can invoke a series of transforms back to back until I get what I want! It might also be desired to keep the accept button visible after modifying the prompt (before submitting it). In that case we'll need to remap accept to an alternate key (perhaps the same alt-shift-enter I am using for restart. That wouldn't be too insane to remember. But maybe someone has a better idea. I don't care what the shortcut is, I just want the ability to regenerate without adding/deleting spaces. ## Before **Two choices** after a suggestions is presented. Also, a great example of why I would want to regenerate the suggestion, it left some tokens `<rewrite_this>`!  ## After **Three choices** after a suggestion is presented, the circular icon is for regenerate, just like you see if you modify the prompt text.  ## Release Notes: - Added Restart Button to Inline Assistant When Prompt Is Unchanged --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Wes Higbee and Danilo Leal created
4f96706
Add the ability for tasks to target the center pane (#22004)
Closes #20060
Closes #20720
Closes #19873
Closes #9445
Release Notes:
- Fixed a bug where tasks would be spawned with their working directory
set to a file in some cases
- Added the ability to spawn tasks in the center pane, when spawning
from a keybinding:
```json5
[
{
// Assuming you have a task labeled "echo hello"
"ctrl--": [
"task::Spawn",
{ "task_name": "echo hello", "target": "center" }
]
}
]
```
Mikayla Maki created
85c3aec
vim: Maintain block cursor for navigating/non-modifying operators (#21502)
The cursor shape now only changes to underline for operators that modify text (like: delete, change, yank) while maintaining block shape for navigation operators (like: find, till). This better matches Vim/Nvim's behavior where the cursor only changes shape when an operator that will modify text is pending. Release Notes: - vim: Improved cursor shape behavior to better match Vim
Brian Tan created
901dbed
assistant2: Refine context pickers (#21996)
This PR adds some visual refinements to the context pickers in Assistant2. <img width="1159" alt="Screenshot 2024-12-13 at 5 11 24 PM" src="https://github.com/user-attachments/assets/f85ce87f-6800-4fc2-8a10-8ec3232d30e9" /> <img width="1159" alt="Screenshot 2024-12-13 at 5 11 31 PM" src="https://github.com/user-attachments/assets/9b13c76d-cb7c-4441-a855-1ec4de685e0c" /> Release Notes: - N/A
Marshall Bowers created
99dc85e
Format code/fix broken CI build (#21997)
In #21981 the CI didn't run for whatever reason. I've merged based off of CI state alone and that led to CI breaking on main. Release Notes: - N/A
Piotr Osiewicz created
735849e
Improve Editor::DuplicateSelection (#21976)
Improves the new `Editor::DuplicateSelection` @CharlesChen0823 added in https://github.com/zed-industries/zed/pull/21154. - Merge `duplicate_selection` and `duplicate_line` into single function. - Add keyboard shortcuts to JetBrains and SublimeText keymaps. - If the selection is empty (e.g. just a cursor) make `Editor::DuplicateSelection` fallback to being the same as `Editor::DuplicateLineDown`. - Tested with multiple cursors and for multiple selections. | Editor | Action | macOS | Linux | | ----------- | ------------------- | ----------- | ------------ | | VSCode | Duplicate Selection | | | | JetBrains | Duplicate Selection | cmd-d | ctrl-d | | XCode | Duplicate | cmd-d | N/A | | SublimeText | duplicate_line | cmd-shift-d | ctrl-shift-d | This matches behavior of the `duplicate` functionality in all other major editors, with one exception: other editors change the selection so that the newly duplicated object, current Zed behavior leaves the original selection unchanged (TODO?)
Peter Tripp created
06edcd1
Fix running Python commands that include paths with spaces (#21981)
This PR fixes running Python commands that include paths with spaces by wrapping python commands and their arguments in quotation marks. I fixed this only in Python as I noticed this while trying to run `pytest` in Zed. Probably this is not the best approach as it doesn't fix other languages too, though I don't know enough about the codebase to fix it like that. I'm not even sure if it's actually feasible right now. I didn't add tests for this either as I couldn't really understand how to easily to that, I tried to look at other languages but couldn't find one that tests their `ContextProvider` directly. Release Notes: - Fix running Python commands that include paths with spaces --------- Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Silvano Cerza and Piotr Osiewicz created
e53c1a8
ci: GitHub Actions Runner Cleanup (#21993)
- Only run top issues on zed-industries/zed - Move Nightly ARM build to BuildJet
Peter Tripp created
421974f
Use consistent casing for provider name in telemetry (#21991)
Release Notes: - N/A
Joseph T. Lyons created
c57cc35
assistant2: Add ability to fetch URLs as context (#21988)
This PR adds the ability to fetch URLs as context in Assistant2. In the picker we use the search area as an input for the user to enter the URL they wish to fetch: <img width="1159" alt="Screenshot 2024-12-13 at 2 45 41 PM" src="https://github.com/user-attachments/assets/b3b20648-2c22-4509-b592-d0291d25b202" /> <img width="1159" alt="Screenshot 2024-12-13 at 2 45 47 PM" src="https://github.com/user-attachments/assets/7e6bab2d-2731-467f-9781-130c6e4ea5cf" /> Release Notes: - N/A
Marshall Bowers created
19d6e06
Toggle & Switch (#21979)
 - Adds the Switch component - Updates `Selected`, `Selectable` -> `ToggleState`, `Toggleable` - Adds `checkbox` and `switch` functions to align better with other elements in our layout system. We decided not to merge Switch and Checkbox. However, in a followup I'll introduce a Toggle or AnyToggle enum so we can update `CheckboxWithLabel` -> `ToggleWithLabel` as this component will work exactly the same with either a Checkbox or a Switch. Release Notes: - N/A
Nate Butler created
2f2e7f0
Revert "Resolve documentation for visible completions (#21705)" (#21985)
This reverts commit ab595b0d5575285f2351ff085c4a8862f2ddc1f2. Release Notes: - (preview only) Fixed a panic in completions
Conrad Irwin created
2b69905
Log invariant violations in fuzzy string match iterator (#21983)
Seeing frequent inscrutable panics here Release Notes: - N/A
Michael Sloan created
01e5ac0
Maintain inline completion order, simplifying how we track pending completions (#21977)
Release Notes: - N/A
Antonio Scandurra created
306f1c6
zeta: Increase context lines to 32 (#21968)
Release Notes: - N/A Co-authored-by: Antonio <antonio@zed.dev>
Thorsten Ball and Antonio created
2f722e6
Highlight whitespace-only inline completions with background (#21954)
Noticed that whitespace-only insertions are really hard to make out, so this changes it to make them visible by giving them a green background.  Release Notes: - N/A --------- Co-authored-by: Antonio <antonio@zed.dev>
Thorsten Ball and Antonio created
6838b62
python: Refine highlighting (#21389)
Fixes: * Types in binary unions as per [PEP 604](https://peps.python.org/pep-0604/) not highlighted; * `except*` keyword not highlighted; * Classes beginning with `_` not recognized as such, however `_` is a valid first character for private classes; additionally the regex for parsing constant/class names appeared inconsistent and incomplete so was adjusted; * Builtin types such as `float`, `dict`, etc not recognized as types; * **Update:** decorators with arguments not recognized as decorators; * **Update:** docstrings after type alias assignments not recognized as docstrings; * **Update:** `and/in/is/not/or/is not/not in` not capturable as keywords; * **Update:** decorators with "nesting" (@x.y.z) not recognized as decorators; Before:  After:  Release Notes: - N/A --------- Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Jaagup Averin and Piotr Osiewicz created
5318f52
Improve editor open URL command to open the selected portion of URL (#21825)
Closes #21718 Just like in Vim, if a URL is selected, it opens exactly that portion of the URL. Otherwise, if only the cursor is on a URL, it opens the entire URL. Zed currently does the latter. This PR also adds support for the former. https://github.com/user-attachments/assets/8bdd2952-ceec-487c-b27a-5cea4258eb03 Release Notes: - Updated the `editor: open url` to also handle the selected portion of a URL.
tims created
096bbfe
zeta: Adjust reviewing UI (#21932)
Most notably, adding a title bar-ish in the left column as so to add the "from most recent to oldest" info, which is supposed to make scanning the list of completions easier to do (at least it would've helped me figure out that was sorted that way when I was wondering about it!). <img width="800" alt="Screenshot 2024-12-12 at 16 24 36" src="https://github.com/user-attachments/assets/1acc9951-3df0-4cd2-96ff-94ed555ecae5" /> Release Notes: - N/A
Danilo Leal created
0b4495a
zeta: Adjust the "Jump To Edit" button visuals (#21933)
| One Dark | One Light | |--------|--------| | <img width="1495" alt="Screenshot 2024-12-12 at 16 27 12" src="https://github.com/user-attachments/assets/897ee786-a6f7-4d4e-8722-301ac13e6d8c" /> | <img width="1495" alt="Screenshot 2024-12-12 at 16 27 18" src="https://github.com/user-attachments/assets/a78aa5e4-f327-41da-bc9c-6e102bc67fe2" /> | | One Dark | One Light | |--------|--------| | <img width="1495" alt="Screenshot 2024-12-12 at 16 26 54" src="https://github.com/user-attachments/assets/0357468e-7b5f-4f92-bcdb-5f94e353d8b2" /> | <img width="1495" alt="Screenshot 2024-12-12 at 16 26 59" src="https://github.com/user-attachments/assets/20e0f47e-e20f-46a7-b053-8e528b0975d7" /> | Release Notes: - N/A
Danilo Leal created