about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-07-23 11:51:53 +0000
committerbors <bors@rust-lang.org>2024-07-23 11:51:53 +0000
commitbd1224d8aa1cc90ff8c5a2ba3f90785ec97845f5 (patch)
tree1faeafa2a4b2b5e8918022620b4e7f043e224ebd
parentdf1baedfdeb415346daff5e0b28aed9a15da6c0f (diff)
parent04693a4eca38f8f1fe419b2118c815830ff32a14 (diff)
downloadrust-bd1224d8aa1cc90ff8c5a2ba3f90785ec97845f5.tar.gz
rust-bd1224d8aa1cc90ff8c5a2ba3f90785ec97845f5.zip
Auto merge of #13148 - xFrednet:lintcheck-link-correction-again, r=Alexendoo
Lintcheck: Support underscores replacement in URL crate names

The generated URLs use `{krate}` for the crate name. This works well for the first part of the docs.rs domain, but the second part is actually the root module, which requires a replacement of all dashes with underscores. This PR adds `{krate_}` for the root module name.

Diff:

```diff
 Removed `clippy::needless_borrows_for_generic_args` in `rustls-pemfile` at
-https://docs.rs/rustls-pemfile/2.1.2/src/rustls-pemfile/pemfile.rs.html#194
+https://docs.rs/rustls-pemfile/2.1.2/src/rustls_pemfile/pemfile.rs.html#194
```

> Example before: https://github.com/xFrednet/rust-clippy/actions/runs/10054236377?pr=4
> Example after: https://github.com/xFrednet/rust-clippy/actions/runs/10054878594?pr=4

---

changelog: none

r? `@Alexendoo`
-rw-r--r--lintcheck/src/input.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/lintcheck/src/input.rs b/lintcheck/src/input.rs
index 7a0cf26ca32..3b263674aa8 100644
--- a/lintcheck/src/input.rs
+++ b/lintcheck/src/input.rs
@@ -10,7 +10,7 @@ use walkdir::{DirEntry, WalkDir};
 
 use crate::{Crate, LINTCHECK_DOWNLOADS, LINTCHECK_SOURCES};
 
-const DEFAULT_DOCS_LINK: &str = "https://docs.rs/{krate}/{version}/src/{krate}/{file}.html#{line}";
+const DEFAULT_DOCS_LINK: &str = "https://docs.rs/{krate}/{version}/src/{krate_}/{file}.html#{line}";
 const DEFAULT_GITHUB_LINK: &str = "{url}/blob/{hash}/src/{file}#L{line}";
 const DEFAULT_PATH_LINK: &str = "{path}/src/{file}:{line}";
 
@@ -39,6 +39,7 @@ struct TomlCrate {
     options: Option<Vec<String>>,
     /// Magic values:
     /// * `{krate}` will be replaced by `self.name`
+    /// * `{krate_}` will be replaced by `self.name` with all `-` replaced by `_`
     /// * `{version}` will be replaced by `self.version`
     /// * `{url}` will be replaced with `self.git_url`
     /// * `{hash}` will be replaced with `self.git_hash`
@@ -55,6 +56,7 @@ impl TomlCrate {
     fn file_link(&self, default: &str) -> String {
         let mut link = self.online_link.clone().unwrap_or_else(|| default.to_string());
         link = link.replace("{krate}", &self.name);
+        link = link.replace("{krate_}", &self.name.replace('-', "_"));
 
         if let Some(version) = &self.version {
             link = link.replace("{version}", version);