Rollup merge of #59452 - GuillaumeGomez:speedup-rustdoc, r=QuietMisdreavus
Speed up rustdoc run a bit r? @QuietMisdreavus
This commit is contained in:
commit
e655b91b7a
|
@ -1520,7 +1520,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
|
||||
[[package]]
|
||||
name = "minifier"
|
||||
version = "0.0.28"
|
||||
version = "0.0.29"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"macro-utils 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -3039,7 +3039,7 @@ dependencies = [
|
|||
name = "rustdoc"
|
||||
version = "0.0.0"
|
||||
dependencies = [
|
||||
"minifier 0.0.28 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"minifier 0.0.29 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"pulldown-cmark 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -4149,7 +4149,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
"checksum memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0a3eb002f0535929f1199681417029ebea04aadc0c7a4224b46be99c7f5d6a16"
|
||||
"checksum memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2ffa2c986de11a9df78620c01eeaaf27d94d3ff02bf81bfcca953102dd0c6ff"
|
||||
"checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3"
|
||||
"checksum minifier 0.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "3a2898502751dcc9d66b6fff57f3cf63cc91605e83e1a33515396f5027f8e4ca"
|
||||
"checksum minifier 0.0.29 (registry+https://github.com/rust-lang/crates.io-index)" = "1f4950cb2617b1933e2da0446e864dfe0d6a22c22ff72297996c46e6a63b210b"
|
||||
"checksum miniz-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "0300eafb20369952951699b68243ab4334f4b10a88f411c221d444b36c40e649"
|
||||
"checksum miniz_oxide 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ad30a47319c16cde58d0314f5d98202a80c9083b5f61178457403dfb14e509c"
|
||||
"checksum miniz_oxide_c_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "28edaef377517fd9fe3e085c37d892ce7acd1fbeab9239c5a36eec352d8a8b7e"
|
||||
|
|
|
@ -10,6 +10,6 @@ path = "lib.rs"
|
|||
|
||||
[dependencies]
|
||||
pulldown-cmark = { version = "0.1.2", default-features = false }
|
||||
minifier = "0.0.28"
|
||||
minifier = "0.0.29"
|
||||
tempfile = "3"
|
||||
parking_lot = "0.7"
|
||||
|
|
|
@ -965,7 +965,11 @@ themePicker.onblur = handleThemeButtonsBlur;
|
|||
if for_search_index && line.starts_with("var R") {
|
||||
variables.push(line.clone());
|
||||
// We need to check if the crate name has been put into a variable as well.
|
||||
let tokens = js::simple_minify(&line).apply(js::clean_tokens);
|
||||
let tokens: js::Tokens<'_> = js::simple_minify(&line)
|
||||
.into_iter()
|
||||
.filter(js::clean_token)
|
||||
.collect::<Vec<_>>()
|
||||
.into();
|
||||
let mut pos = 0;
|
||||
while pos < tokens.len() {
|
||||
if let Some((var_pos, Some(value_pos))) =
|
||||
|
@ -1288,46 +1292,51 @@ fn write_minify_replacer<W: Write>(
|
|||
contents: &str,
|
||||
enable_minification: bool,
|
||||
) -> io::Result<()> {
|
||||
use minifier::js::{Keyword, ReservedChar, Token};
|
||||
use minifier::js::{simple_minify, Keyword, ReservedChar, Token, Tokens};
|
||||
|
||||
if enable_minification {
|
||||
writeln!(dst, "{}",
|
||||
minifier::js::simple_minify(contents)
|
||||
.apply(|f| {
|
||||
// We keep backlines.
|
||||
minifier::js::clean_tokens_except(f, |c| {
|
||||
c.get_char() != Some(ReservedChar::Backline)
|
||||
})
|
||||
})
|
||||
.apply(|f| {
|
||||
minifier::js::replace_token_with(f, |t| {
|
||||
match *t {
|
||||
Token::Keyword(Keyword::Null) => Some(Token::Other("N")),
|
||||
Token::String(s) => {
|
||||
let s = &s[1..s.len() -1]; // The quotes are included
|
||||
if s.is_empty() {
|
||||
Some(Token::Other("E"))
|
||||
} else if s == "t" {
|
||||
Some(Token::Other("T"))
|
||||
} else if s == "u" {
|
||||
Some(Token::Other("U"))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
_ => None,
|
||||
}
|
||||
})
|
||||
})
|
||||
.apply(|f| {
|
||||
// We add a backline after the newly created variables.
|
||||
minifier::js::aggregate_strings_into_array_with_separation(
|
||||
f,
|
||||
"R",
|
||||
Token::Char(ReservedChar::Backline),
|
||||
)
|
||||
})
|
||||
.to_string())
|
||||
{
|
||||
let tokens: Tokens<'_> = simple_minify(contents)
|
||||
.into_iter()
|
||||
.filter(|f| {
|
||||
// We keep backlines.
|
||||
minifier::js::clean_token_except(f, &|c: &Token<'_>| {
|
||||
c.get_char() != Some(ReservedChar::Backline)
|
||||
})
|
||||
})
|
||||
.map(|f| {
|
||||
minifier::js::replace_token_with(f, &|t: &Token<'_>| {
|
||||
match *t {
|
||||
Token::Keyword(Keyword::Null) => Some(Token::Other("N")),
|
||||
Token::String(s) => {
|
||||
let s = &s[1..s.len() -1]; // The quotes are included
|
||||
if s.is_empty() {
|
||||
Some(Token::Other("E"))
|
||||
} else if s == "t" {
|
||||
Some(Token::Other("T"))
|
||||
} else if s == "u" {
|
||||
Some(Token::Other("U"))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
_ => None,
|
||||
}
|
||||
})
|
||||
})
|
||||
.collect::<Vec<_>>()
|
||||
.into();
|
||||
tokens.apply(|f| {
|
||||
// We add a backline after the newly created variables.
|
||||
minifier::js::aggregate_strings_into_array_with_separation(
|
||||
f,
|
||||
"R",
|
||||
Token::Char(ReservedChar::Backline),
|
||||
)
|
||||
})
|
||||
.to_string()
|
||||
})
|
||||
} else {
|
||||
writeln!(dst, "{}", contents)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue