Auto merge of #7887 - xFrednet:7172-hiding-hidden-lines-online, r=flip1995
Remove hidden code lines in Clippy's lint list This PR removes code lines from Clippy's lint list, which would also be hidden, when generating docs with rustdoc. "A picture is worth a thousand words"... and here are even two pictures: **Before:**  **After:**  --- changelog: none r? `@camsteffen` (Since you implemented the code block filtering 🙃 )
This commit is contained in:
commit
0d07ec127f
1 changed files with 12 additions and 1 deletions
|
|
@ -512,12 +512,21 @@ fn extract_attr_docs(cx: &LateContext<'_>, item: &Item<'_>) -> Option<String> {
|
|||
let mut lines = attrs.iter().filter_map(ast::Attribute::doc_str);
|
||||
let mut docs = String::from(&*lines.next()?.as_str());
|
||||
let mut in_code_block = false;
|
||||
let mut is_code_block_rust = false;
|
||||
for line in lines {
|
||||
docs.push('\n');
|
||||
let line = line.as_str();
|
||||
let line = &*line;
|
||||
|
||||
// Rustdoc hides code lines starting with `# ` and this removes them from Clippy's lint list :)
|
||||
if is_code_block_rust && line.trim_start().starts_with("# ") {
|
||||
continue;
|
||||
}
|
||||
|
||||
// The line should be represented in the lint list, even if it's just an empty line
|
||||
docs.push('\n');
|
||||
if let Some(info) = line.trim_start().strip_prefix("```") {
|
||||
in_code_block = !in_code_block;
|
||||
is_code_block_rust = false;
|
||||
if in_code_block {
|
||||
let lang = info
|
||||
.trim()
|
||||
|
|
@ -528,6 +537,8 @@ fn extract_attr_docs(cx: &LateContext<'_>, item: &Item<'_>) -> Option<String> {
|
|||
.unwrap_or("rust");
|
||||
docs.push_str("```");
|
||||
docs.push_str(lang);
|
||||
|
||||
is_code_block_rust = lang == "rust";
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue