0ca0433
assistant2: Add keybinding to toggle `LanguageModelSelector` (#22122)
Click to expand commit body
This PR adds a keybinding to toggle the `LanguageModelSelector` in
Assistant2.
Release Notes:
- N/A
Marshall Bowers
created
d11deff
ui: Round hover styles for `ListItem`s with `outlined` set (#22120)
Click to expand commit body
This PR makes `ListItem`s with `outlined` set use the same rounding for
their hover state to ensure that the hover background doesn't bleed
outside of the outline.
Release Notes:
- N/A
Marshall Bowers
created
8e71e46
ui: Add `text_ellipsis` method to `Label`s (#22118)
Click to expand commit body
This PR adds a `text_ellipsis` method to `Label`s.
This can be used to truncate the text with an ellipsis without needing
to wrap the `Label` in another element.
Release Notes:
- N/A
Marshall Bowers
created
ac24f07
Use Popover and ListItem in code actions menu (#22112)
Click to expand commit body
This is good for code sharing but also sets up #22102 for making
assumptions about popover y padding.
Release Notes:
- N/A
Michael Sloan
created
ccf2a60
assistant2: Persist model selector changes (#22116)
Click to expand commit body
This PR makes the language model selector in the Assistant2 panel
persist the model changes to the settings.
Release Notes:
- N/A
Marshall Bowers
created
db2aa0b
Use a proper color for the folded buffer border selection
Kirill Bulatov
created
373854b
assistant2: Uniquely identify remove buttons on `ContextPill`s (#22115)
Click to expand commit body
This PR ensures that the remove buttons on the `ContextPill`s are
uniquely identified.
Release Notes:
- N/A
Marshall Bowers
created
eb74332
extensions_ui: Add Cython as a suggested extension (#22053)
Click to expand commit body
This suggest the [Cython
extension](https://github.com/lgeiger/zed-cython) for syntax
highlighting of Cython files.
Release Notes:
- Suggest Cython extension for syntax highlighting of `.pyx`, `.pxd` and
`.pxi` files
Lukas Geiger
created
1932c04
assistant2: Add ability to resize the panel (#22113)
Click to expand commit body
This PR adds the ability to resize the Assistant2 panel.
Release Notes:
- N/A
Marshall Bowers
created
97d9567
Show a brighter border around folded blocks with selections (#22114)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/22046
Properly [un]fold blocks based on the selections
<img width="1728" alt="image"
src="https://github.com/user-attachments/assets/73f319ee-3005-4a3b-95ee-4c6deb5cd0b8"
/>
Release Notes:
- N/A
Mostly minor tweaks to make it closer to the prototype. More to come.
| With message | Empty state |
|--------|--------|
| <img width="1420" alt="Screenshot 2024-12-16 at 18 59 40"
src="https://github.com/user-attachments/assets/5df791bf-577a-4f01-9045-80568604099f"
/> | <img width="1420" alt="Screenshot 2024-12-16 at 18 59 33"
src="https://github.com/user-attachments/assets/adbf1673-3040-4b2b-8d65-f8b38a83c1d0"
/> |
Release Notes:
- N/A
Danilo Leal
created
92fb38a
assistant2: Wire up context for terminal inline assist (#22108)
Click to expand commit body
This PR updates up the context picker for the terminal's inline assist.
Release Notes:
- N/A
Co-authored-by: Richard <richard@zed.dev>
Co-authored-by: Agus <agus@zed.dev>
Marshall Bowers
,
Richard
, and
Agus
created
84392fb
docs: Use preferred `languages` instead of deprecated `language` field (#22107)
Click to expand commit body
Ref
https://github.com/zed-industries/zed/issues/21994#issuecomment-2545988779,
`language` is already deprecated but was still suggested in the docs
here.
Release Notes:
- N/A
uncenter
created
91fdb5d
Return back the logic for indent guides check (#22095)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/22046
Release Notes:
- N/A
Co-authored-by: Bennet <bennet@zed.dev>
Kirill Bulatov
and
Bennet
created
8127dec
Extract logic around custom text highlights out of InlayChunks iterator (#22104)
Click to expand commit body
This is a pure refactor, extracted from
https://github.com/zed-industries/zed/tree/new-diff-map
Release Notes:
- N/A
Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Agus <agus@zed.dev>
Max Brunsfeld
,
Conrad
, and
Agus
created
4bf005e
assistant2: Wire up context picker with inline assist (#22106)
Click to expand commit body
This PR wire up the context picker with the inline assist.
UI is not finalized.
Release Notes:
- N/A
---------
Co-authored-by: Richard <richard@zed.dev>
Co-authored-by: Agus <agus@zed.dev>
Marshall Bowers
,
Richard
, and
Agus
created
082469e
docs: Use `rev` instead of `commit` for extension grammars (#22105)
Click to expand commit body
`rev` is the preferred key
uncenter
created
ec741d6
assistant2: Adjust thread history list item visuals (#21998)
Click to expand commit body
Most notably, adding the `outlined` property in the `ListItem`
component.
<img width="800" alt="Screenshot 2024-12-13 at 20 35 39"
src="https://github.com/user-attachments/assets/adac4463-66f9-4b5e-b1c0-93c34f068dc4"
/>
Release Notes:
- N/A
eff61ee
assistant2: Remove `WeakView<Workspace>` optionality for inline assist (#22099)
Click to expand commit body
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)
Click to expand commit body
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)
Click to expand commit body
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)
Click to expand commit body
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)
Click to expand commit body
Pretty sure this isn't meant to be kebab-case.
Release Notes:
- N/A
uncenter
created
2562b48
Refine interaction in foldable multibuffer header (#22084)
Click to expand commit body
- 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)
Click to expand commit body
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)
Click to expand commit body
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>
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)
Click to expand commit body
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)
Click to expand commit body
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)
d135ec2
completions: Restore tab behavior when both visible (#22069)
Click to expand commit body
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)
Click to expand commit body
`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)
Click to expand commit body
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)
Click to expand commit body
Release Notes:
- N/A
Michael Sloan
created
af50261
Allow folding buffers inside multi buffers (#22046)
Click to expand commit body
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)
Click to expand commit body
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)
Click to expand commit body
Release Notes:
- N/A
Michael Sloan
created
d459f01
Rename `GitRepository.path()` to `GitRepository.dot_git_dir()` (#22026)
9daa426
Fix terminal pane tabs arrangement and closing (#22013)
Click to expand commit body
* 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)
Click to expand commit body
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)
Click to expand commit body
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
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)
Click to expand commit body
`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.
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
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)
Click to expand commit body
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)
Click to expand commit body
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" }
]
}
]
```