To turn any struct into a composite element, you can implement a render
method with the following signature:
```rs
fn render<V: View>(&mut self, view: &mut V, cx: &mut ViewContext<V>) -> AnyElement<V>;
```
Then add #[derive(Element)] to the struct definition.
This will make it easier to introduce higher-level components that are
expressed in terms of other elements. Instead of calling functions that
return elements, we can now make any struct into an element fairly
easily. The advantage is that we can use method chaining to express
optional state on these components, and they blend in better with other
elements.
cc @mikayla-maki @osiewicz @iamnbutler
Release Notes:
- N/A
To turn any struct into a composite element, you can implement a render method
with the following signature:
fn render<V: View>(&mut self, view: &mut V, cx: &mut ViewContext<V>) -> AnyElement<V>;
Then add #[derive(Element)] to the struct definition.
This will make it easier to introduce higher-level components that are expressed in
terms of other elements.
Before this change code could not distinguish between a user providing a
count of 1 and no count at all.
Fixes: zed-industries/community#710
Release Notes:
- 1G now correctly goes to the first line in vim mode
([710](zed-industries/community#710))
This PR adds JSON Schema definitions into GPUI's styles and adds a tool
for generating typescript types from these schema definitions.
Release Notes:
- N/A
Release Notes:
- In vim mode you can now use count modifiers with arrow keys (`5<down>`
will go down 5 lines).
- In vim mode `ctrl+]` and `ctrl+o` now work to go to definition and
back
🚧 We have a couple more refinements to this to add 🚧
Release Notes:
You can now join lines with `ctrl-j` or `shift-J` in Vim normal mode.
🍐'd with @ConradIrwin
This is a part of the intensity driven theme rewrite.
It introduces the `toggle` and `interactive` helper functions to build
Toggle<T> and Interactive<T> styles for interactive elements in the
theme.
This PR also removes the `theme_testbench` crate and related actions.
Huge thanks to @osiewicz and @mikayla-maki for pushing this forward 🙏🏽
Release Notes:
- Updated the style of many interactive elements.
Improves latency for big inlay hints LSP responses for ~8k line files.
Before, the CPU usage sample for editing a single line inside
`edirot.rs` file in Zed contained serde inside the main thread traces:
<img width="1728" alt="Screenshot 2023-06-21 at 00 33 23"
src="https://github.com/zed-industries/zed/assets/2690773/d9789efe-8055-487f-bbe7-8beb49605bcb">
Release Notes:
- N/A