记录 rustdoc 看不到的项目
Documenting items rustdoc cannot see
我注意到编译器插件经常提供文档甚至不会提及的宏。它们以编程方式注册和创建,而不是以 rustdoc 识别的语法定义。自然不能出文档
我正在寻找解决该问题的方法,即为编译时包中不存在的宏生成文档的方法。
我注意到语法板条箱也可以从这样的事情中受益。 quote_item
,例如,完全没有记录。我什至找不到注册它的代码。
一种可能性是执行 the compiler does 的操作:创建一个空的 macro_rules!
宏并将文档附加到它。例如。如果一个板条箱定义了 foo
接受一个表达式,那么写类似
/// Documentation
#[macro_export]
macro_rules! foo {
($e: expr) => ({ /* syntax extension */ })
}
I notice the syntax crate could benefit from such a thing as well. quote_item, for instance, is completely undocumented. I can't even find the code that registers it.
您可以 search the Rust source for quote_item
, which is helpful for two reasons: it gives some examples, and also allows you to track down the definition. The latter is easier using Rust's DXR instance 它可以搜索带引号的东西(即可以找到字符串),并包含各种源代码导航技巧(如 jump-to-definition)。
我注意到编译器插件经常提供文档甚至不会提及的宏。它们以编程方式注册和创建,而不是以 rustdoc 识别的语法定义。自然不能出文档
我正在寻找解决该问题的方法,即为编译时包中不存在的宏生成文档的方法。
我注意到语法板条箱也可以从这样的事情中受益。 quote_item
,例如,完全没有记录。我什至找不到注册它的代码。
一种可能性是执行 the compiler does 的操作:创建一个空的 macro_rules!
宏并将文档附加到它。例如。如果一个板条箱定义了 foo
接受一个表达式,那么写类似
/// Documentation
#[macro_export]
macro_rules! foo {
($e: expr) => ({ /* syntax extension */ })
}
I notice the syntax crate could benefit from such a thing as well. quote_item, for instance, is completely undocumented. I can't even find the code that registers it.
您可以 search the Rust source for quote_item
, which is helpful for two reasons: it gives some examples, and also allows you to track down the definition. The latter is easier using Rust's DXR instance 它可以搜索带引号的东西(即可以找到字符串),并包含各种源代码导航技巧(如 jump-to-definition)。