记录 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)。