diff options
| author | bors <bors@rust-lang.org> | 2024-08-12 19:14:50 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-08-12 19:14:50 +0000 |
| commit | e07078482bcc4ebd5fb1bcba4fd0880999e4a694 (patch) | |
| tree | 652b1907e509e259d4e0f9cb95e4f2c042ac7ed9 | |
| parent | 19847526230ab219229d22a7c4813feb967644ec (diff) | |
| parent | d7f1252ddf7ae02667ac9de295171596c7075640 (diff) | |
| download | rust-e07078482bcc4ebd5fb1bcba4fd0880999e4a694.tar.gz rust-e07078482bcc4ebd5fb1bcba4fd0880999e4a694.zip | |
Auto merge of #13261 - antonilol:fix-doc-code-blocks, r=xFrednet
fix code blocks in doc comments inconsistently using 3 or 4 spaces of indentation
The metadata collector script was treating the space lines all start with as indentation. This caused code block's triple backticks to get a space in front of it, like this:
```
```rust
^ this space
```
Code after that that is indented with 4 spaces will only have 3 of those rendered.
Example (taken from [here](https://rust-lang.github.io/rust-clippy/master/index.html#/missing_panics_doc)):
```rust
...
pub fn divide_by(x: i32, y: i32) -> i32 {
if y == 0 { // 3 spaces
panic!("Cannot divide by 0") // 7 spaces
...
```
Also added 'compile_fail' alongside the other rustdoc directives (second code block [here](https://rust-lang.github.io/rust-clippy/master/index.html#/macro_metavars_in_unsafe) had no highlighting), fixed a doc comment using 'rs' instead of 'rust' and removed some spaces causing an extra missing space of indentation (see second code block [here](https://rust-lang.github.io/rust-clippy/master/index.html#/map_err_ignore)).
changelog: none
| -rw-r--r-- | clippy_lints/src/doc/mod.rs | 2 | ||||
| -rw-r--r-- | clippy_lints/src/methods/mod.rs | 6 | ||||
| -rw-r--r-- | clippy_lints/src/utils/internal_lints/metadata_collector.rs | 6 |
3 files changed, 8 insertions, 6 deletions
diff --git a/clippy_lints/src/doc/mod.rs b/clippy_lints/src/doc/mod.rs index d7b3a7c74f3..762d5595e14 100644 --- a/clippy_lints/src/doc/mod.rs +++ b/clippy_lints/src/doc/mod.rs @@ -309,7 +309,7 @@ declare_clippy_lint! { /// ### Known problems /// Inner doc comments can only appear before items, so there are certain cases where the suggestion /// made by this lint is not valid code. For example: - /// ```rs + /// ```rust /// fn foo() {} /// ///! /// fn bar() {} diff --git a/clippy_lints/src/methods/mod.rs b/clippy_lints/src/methods/mod.rs index 1d7b10fe8f0..d7126990edb 100644 --- a/clippy_lints/src/methods/mod.rs +++ b/clippy_lints/src/methods/mod.rs @@ -2702,10 +2702,10 @@ declare_clippy_lint! { /// } /// }) /// } - /// ``` + /// ``` /// - /// After: - /// ```rust + /// After: + /// ```rust /// use std::{fmt, num::ParseIntError}; /// /// #[derive(Debug)] diff --git a/clippy_lints/src/utils/internal_lints/metadata_collector.rs b/clippy_lints/src/utils/internal_lints/metadata_collector.rs index 57f45aa3e48..c73ec262637 100644 --- a/clippy_lints/src/utils/internal_lints/metadata_collector.rs +++ b/clippy_lints/src/utils/internal_lints/metadata_collector.rs @@ -687,10 +687,12 @@ fn cleanup_docs(docs_collection: &Vec<String>) -> String { .trim() .split(',') // remove rustdoc directives - .find(|&s| !matches!(s, "" | "ignore" | "no_run" | "should_panic")) + .find(|&s| !matches!(s, "" | "ignore" | "no_run" | "should_panic" | "compile_fail")) // if no language is present, fill in "rust" .unwrap_or("rust"); - let len_diff = line.len() - line.trim_start().len(); + let len_diff = line + .strip_prefix(' ') + .map_or(0, |line| line.len() - line.trim_start().len()); if len_diff != 0 { // We put back the indentation. docs.push_str(&line[..len_diff]); |
