This PR fixes an issue with the toolbar width introduced in #3666.
The lack of a flex container was making the toolbar contents not take up
the full width, and thus not positions items correctly along its main
axis.
Release Notes:
- N/A
This PR reworks the rendering of the collab panel to use `gpui::list`,
so that we don't render any items that are not visible on the screen.
In the process we also fixed some bugs in the channel list:
- Fixed the context menu for channels not deploying when activated via
keyboard
- Fixed drag and drop for channels
- Made it so when navigating the collab panel via keyboard the list only
scrolls enough to reveal the next item when navigating to an item that
is currently off-screen
Release Notes:
- N/A
Also add the ability to unnest a channel by dragging it to the "Channels"
header. This is currently not working due to a collab server issue.
Co-authored-by: Max <max@zed.dev>
[[PR Description]]
- Adds some Story components to reduce the amount of code needed to lay
out stories
- Added the ability to open a story in Zed using a link (see text story)
- Added sections with descriptions and usage.
Release Notes:
- N/A
In zed1, cmd-f either opened the search buffer, or focused into it if it
was open already. Search query got updated, if any selection was made on
the moment of cmd-f call.
The PR restores that behavior and also
* fixes a bug when opened diagnostics error always got pasted
* comments out the panic on multibuffer separator click
* removes extra stdout & stderr debug logging
Release Notes:
- N/A
In the 3 charts below, "window draw" has 3 major subroutines. Request
layout, where we walk over the tree and have everything talk to the
layout engine initially. Compute layout, where we have the layout engine
actually do the layout, and then paint, where we use the computed bounds
to populate the scene.
![image_720](https://github.com/zed-industries/zed/assets/1789/d2225389-865f-4c8a-9452-9f611da64dcf)
Things are moving quickly so before/after comparisons are tough. In the
graph above, green bars are from a commit actually pre-dates a merge of
master which increased the complexity of layout. The red bars represent
the state of the world after this PR. Note how we improve the
performance of `paint`.
Improvements:
- Not moving `self` in `Element::paint`. This was moving from the heap
to the stack and imposing a big cost. This is the biggest win in this
PR.
- We got some minor wins by making the stacking order a bigger smallvec
of u8 instead of u32.
- A big win that doesn't show up in this chart is avoiding a double
render of the editor when autoscrolling by never pushing notification
effects or marking the window dirty when notifying during a window draw.
Release Notes:
- N/A