Run doctests in CI and fix up existing doctests (#37851)
Follows on from https://github.com/zed-industries/zed/pull/37716#pullrequestreview-3195695110 by @SomeoneToIgnore After this the doctests will be run in CI to check that the examples are still accurate. Note that doctests aren't run by Nextest: you can run them locally with `cargo test --doc`. Summary: * Run tests from CI * Loosen an exact float comparison to match approximately (otherwise it fails) * Fixed one actual bug in the tests for `dilate` where the test code assumed that `dilate` mutates `self` rather than returning a new object * Add some `must_use` on some functions that seemed at risk of similar bugs, following the Rust stdlib style to add it where ignoring the result is almost certainly a bug. * Fix some cases where the doc examples seem to have gone out of date with the code * Add imports to doctests that need them * Add some dev-dependencies to make the tests build * Fix the `key_dispatch` module docstring, which was accidentally attached to objects within that module * Skip some doctest examples that seem like they need an async environment or that just looked hard to get running AI usage: I asked Claude to do some of the repetitive tests. I checked the output and fixed up some things that seemed to not be in the right spirit of the test, or too longwinded. I think we could reasonably run the tests on only Linux to save CI CPU-seconds and latency, but I haven't done that yet, partly because of how it's implemented in the action. Release Notes: - N/A
This commit is contained in:
@@ -43,7 +43,7 @@ use super::button_icon::ButtonIcon;
|
||||
///
|
||||
/// Button::new("button_id", "Click me!")
|
||||
/// .icon(IconName::Check)
|
||||
/// .selected(true)
|
||||
/// .toggle_state(true)
|
||||
/// .on_click(|event, window, cx| {
|
||||
/// // Handle click event
|
||||
/// });
|
||||
@@ -56,7 +56,7 @@ use super::button_icon::ButtonIcon;
|
||||
/// use ui::TintColor;
|
||||
///
|
||||
/// Button::new("button_id", "Click me!")
|
||||
/// .selected(true)
|
||||
/// .toggle_state(true)
|
||||
/// .selected_style(ButtonStyle::Tinted(TintColor::Accent))
|
||||
/// .on_click(|event, window, cx| {
|
||||
/// // Handle click event
|
||||
@@ -228,7 +228,7 @@ impl Toggleable for Button {
|
||||
/// use ui::prelude::*;
|
||||
///
|
||||
/// Button::new("button_id", "Click me!")
|
||||
/// .selected(true)
|
||||
/// .toggle_state(true)
|
||||
/// .on_click(|event, window, cx| {
|
||||
/// // Handle click event
|
||||
/// });
|
||||
@@ -251,7 +251,7 @@ impl SelectableButton for Button {
|
||||
/// use ui::TintColor;
|
||||
///
|
||||
/// Button::new("button_id", "Click me!")
|
||||
/// .selected(true)
|
||||
/// .toggle_state(true)
|
||||
/// .selected_style(ButtonStyle::Tinted(TintColor::Accent))
|
||||
/// .on_click(|event, window, cx| {
|
||||
/// // Handle click event
|
||||
@@ -317,7 +317,7 @@ impl FixedWidth for Button {
|
||||
/// use ui::prelude::*;
|
||||
///
|
||||
/// Button::new("button_id", "Click me!")
|
||||
/// .width(px(100.).into())
|
||||
/// .width(px(100.))
|
||||
/// .on_click(|event, window, cx| {
|
||||
/// // Handle click event
|
||||
/// });
|
||||
@@ -381,7 +381,7 @@ impl ButtonCommon for Button {
|
||||
/// use ui::Tooltip;
|
||||
///
|
||||
/// Button::new("button_id", "Click me!")
|
||||
/// .tooltip(Tooltip::text_f("This is a tooltip", cx))
|
||||
/// .tooltip(Tooltip::text("This is a tooltip"))
|
||||
/// .on_click(|event, window, cx| {
|
||||
/// // Handle click event
|
||||
/// });
|
||||
|
||||
Reference in New Issue
Block a user