Commit log

68e3d79 assistant2: Use `ContextKind` to match on `ContextPicker` entries (#22143)

Click to expand commit body
This PR updates the `ContextPicker` entries to match on the
`ContextKind` instead of using strings.

Release Notes:

- N/A

Marshall Bowers created

ed3e647 editor: Add horizontal scrollbar (#19495)

Click to expand commit body
![editor_scrollbars](https://github.com/user-attachments/assets/76c26776-8fe4-47f8-9c79-9add7d7d2151)

Closes #4427 

Release Notes:

- Added a horizontal scrollbar to the editor panel
- Added `axis` option to `scrollbar` in the Zed configuration, which can
forcefully disable either the horizontal or vertical scrollbar
- Added `horizontal_scroll_margin` equivalent to
`vertical_scroll_margin` in the Zed configuration

Rough Edges:

This feature seems mostly stable from my testing. I've been using a
development build for about a week with no issues. Any feedback would be
appreciated. There are a few things to note as well:

1. Scrolling to the lower right occasionally causes scrollbar clipping
on my end, but it isn't consistent and it isn't major. Some more testing
would definitely be a good idea. [FIXED]
2. Documentation may need to be modified
3. I added an `AxisPair` type to the `editor` crate to manage values
that have a horizontal and vertical variant. I'm not sure if that's the
optimal way to do it, but I didn't see a good alternative. The `Point`
type would technically work, but it may cause confusion.

---------

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>

Carlos Kieliszewski and Piotr Osiewicz created

6fa5a17 assistant2: Only add context if it is non-empty (#22141)

Click to expand commit body
This PR fixes an issue where we were attaching empty message content
even if there was no context.

Release Notes:

- N/A

Marshall Bowers created

a6b717b assistant2: Add spacing between historical thread entries (#22140)

Click to expand commit body
This PR adds spacing between entries in the historical threads view:

<img width="1371" alt="Screenshot 2024-12-17 at 10 51 26 AM"
src="https://github.com/user-attachments/assets/f66d69e9-eb59-4c76-b3b5-c4d60190c3cc"
/>

Release Notes:

- N/A

Marshall Bowers created

228c89a Show inline documentation in menu even if documentation is disabled (#22137)

Click to expand commit body
This makes inline completions show up in the completion menu even if the
user has set `"show_completion_documentation": false` in their settings,
because there is no other way to show the Zeta completion.

Follow-up to #22093

Release Notes:

- N/A

Co-authored-by: Danilo <danilo@zed.dev>

Thorsten Ball and Danilo created

3978937 Add stray visual refinements (#22125)

Click to expand commit body
In different parts of the app, but all of them can be seen in the
screenshot below:

<img width="800" alt="Screenshot 2024-12-16 at 21 31 51"
src="https://github.com/user-attachments/assets/79c0ad5e-4e4c-469d-93a1-fd4e707d4aaa"
/>

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Danilo Leal created

95334cb Show inline completions inside the completion menu if both are available (#22093)

Click to expand commit body
Screenshot:

![screenshot-2024-12-17-11 53
41@2x](https://github.com/user-attachments/assets/bace3d20-7175-4833-9326-7b859166c0e8)

Demo:


https://github.com/user-attachments/assets/70197042-4785-4e45-80fd-29d12e68333f



(Note for Joseph/Peter: this supersedes
https://github.com/zed-industries/zed/pull/22069)

Release Notes:
- Changed inline completions to show up inside the normal completions in
case LSP and inline-completions are available. In that case, the inline
completion will be the first entry in the menu and can be selected with
`<tab>`.

---------

Co-authored-by: Bennet <bennet@zed.dev>
Co-authored-by: Danilo <danilo@zed.dev>

Thorsten Ball , Bennet , and Danilo created

cc56ed7 Focus terminal when creating one after activating the terminal panel (#22133)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/22082

Release Notes:

- N/A

Kirill Bulatov created

4878b9b docs: Fix shortcut for select a smaller syntax node (#22135)

Click to expand commit body
Release Notes:

- N/A

lihsai0 created

e1bc48c Workspace move editor actions (#21760)

Click to expand commit body
Closes #20205

Release Notes:

- Added `MoveItemToPane` and `MoveItemToPaneInDirection` actions

---------

Co-authored-by: Kirill Bulatov <kirill@zed.dev>

Ignat S. and Kirill Bulatov created

9082a00 Revert "vim: Don't dismiss inline completion when switching to normal mode (#22075)" (#22131)

Click to expand commit body
This reverts commit 38c0aa303e8c58238bceea9ee719ef2716158e81 from
#22075.

Release Notes:

- N/A

Thorsten Ball created

ebf6804 Misc improvements to `Bounds` in gpui geometry

Click to expand commit body
* Makes `dilate` and `inset` return.

* Implements `Add<Point<T>>` and `Sub<Point<T>>`.

* Makes some trait constraints more precise.

mgsloan@gmail.com created

a062c0f Improve code context menu layout position esp visual stability (#22102)

Click to expand commit body
* Now decides whether the menu is above or below the target position
before rendering it. This causes its position to no longer vary
depending on the length of completions

* When the text area is height constrained (< 12) lines, now chooses the
side which has the most space. Before it would always display above if
height constrained below.

* Misc code cleanups

Release Notes:

- Improved completions menu layout to be more stable and use available
space better.

Michael Sloan created

fc5a810 Add Corner to geometry and make names of corner methods consistent (#22119)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

3052fc2 Use the same `InlineAssist` action between both `assistant` and `assistant2` (#22126)

Click to expand commit body
This PR makes it so `assistant` and `assistant2` both use the same
action for inline assist (`zed_actions::InlineAssist`).

This makes it so the keybindings to deploy the inline assist seamlessly
swap based on the feature flag without needing to rebind them.

One minor caveat: if you're using `assistant2` the action name in the
command palette will be `assistant: inline assist`.

Release Notes:

- N/A

Marshall Bowers created

80431e5 assistant2: Add keybinding to toggle `ContextPicker` (#22124)

Click to expand commit body
This PR adds an action and associated keybinding
(<kbd>Cmd+Shift+A</kbd>) to toggle the context picker.

This allows for adding context via the keyboard.

Release Notes:

- N/A

Marshall Bowers created

2808793 assistant2: Add text_ellipsis to the `PastThread` label (#22117)

Click to expand commit body
To treat the case for whenever the assistant panel gets small.

<img width="360" alt="Screenshot 2024-12-16 at 20 12 34"
src="https://github.com/user-attachments/assets/5426a5b9-9baf-41e3-a2c6-2f997378c994"
/>

Release Notes:

- N/A

Danilo Leal created

5558b04 Misc geometry cleanup (#22123)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

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

Kirill Bulatov created

53c8b48 assistant2: Add stray visual adjustments (#22111)

Click to expand commit body
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

Danilo Leal created

426f94b git_ui: Update todos (#22100)

Click to expand commit body
`todo!()` -> `TODO`

Release Notes:

- N/A

Nate Butler created

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>

Thorsten Ball and Bennet created

ce727fb workspace: Fix doc comments (#22063)

Click to expand commit body
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)

Click to expand commit body
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)

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