- Returning `IntoElement` because it's more universal than `Element` and
allows us to easily return components.
- Using `impl IntoElement` in `RenderOnce` for consistency, which
requires `Component` to allocate an `AnyElement`. We use a bump
allocated arena anyway for these, and my benchmark doesn't show an
impact.

In this histogram, frames-0 is this PR, frames-1 is main.
Release Notes:
- N/A
We were shifting all the positions while keeping the original
string, which caused problems later when combining highlighted
ranges with matched indices.
Rather than relying on the focused element, instead explicitly pass the
focus handle for the query editor when determining the prev/next
bindings. Only compute these values once.
Release Notes:
- N/A
[[PR Description]]
TODO:
- [x] Style fold marker
- [x] Editor - Code action icon too large, should use muted color,
should have tooltip
- [ ] Style inline assistant
- Prompt text gets cut off veritcally
- [x] Line height on inline assist editor isn't tall enough
- Nate: This is my fault due to the line height (relative: 1) we are
setting on non-buffer editors. I'll look into this.
- [ ] Style diagnostic hover (right now it's an opaque box on some
themes)
- Nate: This needs status tints, we are working on it
- [ ] Hovering over a symbol shows a dialogue that appears underneath
the scroll-bar
Release Notes:
- N/A
This PR implements the `VisibleOnHover` trait for `IconButton`s.
I noticed that in a lot of places we were wrapping an `IconButton` in an
extra `div` just so we could call `visible_on_hover` on it. By
implementing the trait on `IconButton` directly it allows us to avoid
the interstitial `div` entirely.
Release Notes:
- N/A
This PR adds a `.visible_on_hover` helper method that can be used to
make an element only visible on hover.
I noticed we were repeating this similar stanza in a bunch of different
spots:
```rs
some_element
.invisible()
.group_hover("", |style| style.visible())
```
so it seemed like a nice thing to factor out into a reusable utility.
Release Notes:
- N/A
This PR fixes an issue where we would sometimes have extra blank lines
in the completions menu.
This was due to some items including documentation labels that were
empty strings.
Release Notes:
- N/A
Wrap width is already assigned from within draw. It can be called multiple
times as taffy iteratively computes the layout.
Co-authored-by: Nathan <nathan@zed.dev>