diff --git a/crates/gpui/src/action.rs b/crates/gpui/src/action.rs index 44e6ec17ff..cf0ad7e598 100644 --- a/crates/gpui/src/action.rs +++ b/crates/gpui/src/action.rs @@ -182,7 +182,9 @@ impl ActionRegistry { macro_rules! actions { ($namespace:path, [ $($name:ident),* $(,)? ]) => { $( - /// The `$name` action see [`gpui::actions!`] + #[doc = "The `"] + #[doc = stringify!($name)] + #[doc = "` action, see [`gpui::actions!`]"] #[derive(::std::cmp::PartialEq, ::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug, gpui::private::serde_derive::Deserialize)] #[serde(crate = "gpui::private::serde")] pub struct $name; diff --git a/crates/gpui_macros/src/register_action.rs b/crates/gpui_macros/src/register_action.rs index 2772ec9634..7ec1d6dd4b 100644 --- a/crates/gpui_macros/src/register_action.rs +++ b/crates/gpui_macros/src/register_action.rs @@ -22,19 +22,27 @@ pub(crate) fn register_action(type_name: &Ident) -> proc_macro2::TokenStream { ); quote! { - #[doc(hidden)] - #[gpui::private::linkme::distributed_slice(gpui::__GPUI_ACTIONS)] - #[linkme(crate = gpui::private::linkme)] - static #static_slice_name: gpui::MacroActionBuilder = #action_builder_fn_name; - - /// This is an auto generated function, do not use. - #[doc(hidden)] - fn #action_builder_fn_name() -> gpui::ActionData { - gpui::ActionData { - name: <#type_name as gpui::Action>::debug_name(), - type_id: ::std::any::TypeId::of::<#type_name>(), - build: <#type_name as gpui::Action>::build, + impl #type_name { + /// This is an auto generated function, do not use. + #[automatically_derived] + #[doc(hidden)] + fn __autogenerated() { + /// This is an auto generated function, do not use. + #[doc(hidden)] + fn #action_builder_fn_name() -> gpui::ActionData { + gpui::ActionData { + name: <#type_name as gpui::Action>::debug_name(), + type_id: ::std::any::TypeId::of::<#type_name>(), + build: <#type_name as gpui::Action>::build, + } + } + #[doc(hidden)] + #[gpui::private::linkme::distributed_slice(gpui::__GPUI_ACTIONS)] + #[linkme(crate = gpui::private::linkme)] + static #static_slice_name: gpui::MacroActionBuilder = #action_builder_fn_name; } } + + } }