Returned highlights were okay, but the test was trying to normalize the output by sorting the highlights by color. The ordering is different between gpui1 Color and gpui2 Hsla.
These tests failed due to an indefinite hang in buffer.condition in the following code:
\`\`\`rust
let buffer = cx
.add_model(|cx| Buffer::new(0, cx.model_id() as u64, text).with_language(language, cx));
buffer.condition(cx, |buf, _| !buf.is_parsing()).await;
`\`\`
In both gpui1 and gpui2 \`.with_language\` spawns a task that notifies the context once it's done. The \`condition\` waits for notifications to be raised. The gist of the problem was that in gpui2, the spawned task was scheduled straight away, so we never really saw the notification with \`condition\`, causing us to wait indefinitely. This is probably a difference in test between schedulers in gpui1 and gpui2, but I kind of sidestepped the issue by spawning a condition before firing off a parsing task with \`set_language\`.
* Fix crash when jumping to definition
* Enabling resolution of completions
* Make links in interactive text clickable
* Enable code paths that use `select_anchors`
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 commit adds a depth map to the frame so we can find the "top most"
opaque layer by stacking order for a given point.
This lets us determine whether the element being hovered was part of the
given layer in the previous frame, which fixes the hover issue.
Still to do:
* [ ] Fix up mouse events too (I tried this, but it's not working yet,
and I want to understand why)
Release Notes:
- N/A