This PR fixes the palette/picker colors for themes imported from VS
Code.
- We now use the `dropdown.background` to set the background color for
elevated surfaces
- We now pull in `list.activeSelectionBackground` to use as the color
for selected ghost elements
Release Notes:
- N/A
This PR changes the color we use for the toolbar background from the VS
Code theme to `breadcrumb.background`.
If this value isn't set then we fall back to the `editor.background`.
Release Notes:
- N/A
This PR refines the imported themes further:
- Empty strings for color values in the VS Code theme are now ignored
- Pull Git status colors from VS Code themes
- Add `constant` colors as a fallback for `number` tokens
Release Notes:
- N/A
This PR adds support for adding a specific set of mappings from Zed
syntax tokens to VS Code scopes for a particular theme family.
We can use this as a fallback when we aren't otherwise able to rely on
the mappings in the theme importer, as sometimes it isn't possible to
make a specific enough matcher that works across all of the themes.
Release Notes:
- N/A
This PR improves the approach we use to match syntax tokens between Zed
and VS Code in the `theme_importer`.
We now use the list of scopes assigned to each Zed syntax token to rank
the possible candidates in the VS Code and then pick the candidate with
the highest rank.
So far this has proved to provide better colors across the board, but
we'll continue to refine the matching over time.
Release Notes:
- N/A
This PR fixes an issues where the hex colors in the generated themes
were not correct.
We're using the [`palette`](https://crates.io/crates/palette) crate to
perform the conversions, as this gives us accurate hex codes that match
the VS Code source themes.
Release Notes:
- N/A
This PR extracts a new `Tab` component from the tabs implementation in
the workspace.
This will allow us to reuse this component anywhere that we need to use
tabs.
Like our other newer components, the `Tab` component has a relatively
open API.
It accepts `children` (or `child`) as well as a `start_slot` and
`end_slot` to position content in the slots on either end of the
content. These slots also respect the `TabCloseSide` and will switch
positions based on this value.
<img width="763" alt="Screenshot 2023-12-07 at 12 19 42 PM"
src="https://github.com/zed-industries/zed/assets/1486634/78e4db6a-f807-431e-8777-f52f2631e6ed">
Release Notes:
- N/A
This PR performs some light cleanup of how we open the recent projects
picker, to bring it more in-line with our other picker code.
Release Notes:
- N/A
This PR ports the `recent_projects` crate to Zed2 (`recent_projects2`).
Absent from this PR is wiring up the "Recent Projects" item in the title
bar. We'll come back to that soon.
Release Notes:
- N/A
This PR removes the loading of the Vim keymap temporarily.
This cuts down on the noise from all of the Vim-related action warnings.
We can resume loading the Vim keymap once we're ready to add Vim
support.
Release Notes:
- N/A
This PR fixes an issue where tooltips weren't being shown on selected
buttons.
We now always show tooltips on buttons that have one.
Release Notes:
- N/A
This PR fixes the layout for terminal tabs.
We need to use an `h_stack` here to get the icon and the label to
position themselves next to each other instead of one on top of the
other.
Release Notes:
- N/A
This PR fixes an issues where the toolbar would not appear for the
center pane when Zed2 initially loads.
We resolved this by adding a call to initialize the center pane when the
workspace is initialized
Due to changes in the way subscriptions work we can on longer observe an
event that is emitted in the same event cycle in which the subscription
is created.
Because of this we need to explicitly initialize the center pane, as it
won't get performed by the subscription.
Release Notes:
- N/A
---------
Co-authored-by: Antonio <antonio@zed.dev>
This PR fixes an issue where the specified color for a
`HighlightedLabel` was not respected as the default color for
non-highlighted text.
Release Notes:
- N/A
- Work on default light theme
- Update tab bar and tabs
- Port quick_action_bar crate to zed2
- Add `Indicator` component
- Add `v_stack` & `h_stack` to ui::prelude::*
Release Notes:
- N/A
This PR fixes an issues where the text—both placeholder and
user-entered—would not show up in the editor in the theme selector.
It seems to be the min width on the wrapper element that fixes this.
Release Notes:
- N/A
This PR fixes an issue where an element with a cursor style set would
not update the cursor when hovering over it.
Previously the cursor style would only appear by interacting with the
element in some way, for instance, by clicking on the element or by
having a `.hover` with some other style being applied.
Release Notes:
- N/A
This PR adds support for copying diagnostics messages to the clipboard.
This was already working, but we were missing implementations
clipboard-related methods in the `TestPlatform` that were causing the
tests to fail when the copying functionality was added.
Release Notes:
- N/A
This PR extends `Button` with support for an optional icon to be
displayed next to the label.
As part of this, the functionality for displaying an icon within a
button has been factored out into an internal `ButtonIcon` component.
`ButtonIcon` is now used by both `IconButton` and `Button` to
encapsulate the concerns of an icon that is rendered within a button.
Release Notes:
- N/A
This PR adds a new `selected_label` method to `Button`.
This can be used to set a different label that should be rendered when
the `Button` is selected.
Release Notes:
- N/A
This PR adds a new `selected_icon` method to `IconButton`.
This can be used to set a different icon that should be rendered when
the `IconButton` is selected.
Release Notes:
- N/A
This PR reworks the `ListHeader` component to be more open.
The `meta` method can now be used to append meta items of any element to
the `ListHeader`, and they will be rendered with the appropriate spacing
between them.
Release Notes:
- N/A
This PR implements the `Selectable` trait for the `ListItem` and
`ListHeader` components.
These components already had their own selectable behavior, but weren't
formally adhering to the interface defined by the trait.
Release Notes:
- N/A
This PR updates the (placeholder) breadcrumb to use the new `ButtonLike`
component.
Eventually this will need custom styling (e.g., syntax highlighting for
the symbol children), which is why we're using a `ButtonLike` as opposed
to a regular `Button`.
Release Notes:
- N/A
This PR fixes a bug where the selected state for the panel icons in the
status bar was not correctly reflecting whether the panel was open.
It was erroneously using the `is_open` state for the context menu.
Release Notes:
- N/A
This PR adds new `Button` and `IconButton` components built on top of
our new button abstractions.
Both of these buttons are built from the common `ButtonLike` base, and
implement the `ButtonCommon` (name TBD) trait in order to provide a
common interface.
There are still some visual tweaks that we'll need to make to the new
buttons, but those should be straightforward to make after we land this.
Release Notes:
- N/A
This PR makes the `toggle` method on the various list components accept
an `impl Into<Option<bool>>` instead of just an `Option<bool>`.
This allows a caller with just a `bool` avoid having to wrap the
`Option` themselves.
Release Notes:
- N/A
This PR reworks the `Disclosure` component.
The primary goal here was to remove the illegal state where a
`Disclosure` is rendered with a `Toggle::NotToggleable` state, as the
`Disclosure` shouldn't exist at all in this case.
Release Notes:
- N/A
This PR reorganizes the list components so that each of the sub
components lives in its own file.
### Motivation
I've seen a number of folks have trouble finding the `ListItem`
definition while pairing, so having it in its own file seems more
self-explanatory.
Release Notes:
- N/A
This PR fixes tooltips not showing on `IconButton`s.
The "fix" here is the same hack that we used to fix `on_click` handlers
for `ListItem`s, where we introduce another layer of wrapping with an
element with an ID set.
This PR also adds a story for the `IconButton` so this issue can be
tested/observed in isolation.
Release Notes:
- N/A
This PR updates the `ui2` crate to reference the `theme2` and
`settings2` crates without the `2` the way we do in our other crates.
Release Notes:
- N/A
This PR adds an inset variant to the `ListItem` component.
We're now using this inset variant for the `ListItem`s we render in
pickers.
Release Notes:
- N/A
This PR reworks the project panel to render its items using the
`ListItem` component.
There are a few hacks in here in order to get click handlers working for
the `ListItem`, but we'll want to get these fixed in GPUI.
Release Notes:
- N/A
This PR updates the `PickerDelegate` implementations to render their
matches using the `ListItem` component so that they can have a
consistent style.
At some point it might make sense to move the `ListItem` rendering up
into the `Picker` implementation itself, and just have the delegate
responsible for giving us the inner content of the `ListItem`.
Release Notes:
- N/A