| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
|
|
This reduces the size of Type.
|
|
|
|
|
|
|
|
make `clean::Item::span` return `Option` instead of dummy span
Fixes #100283
|
|
|
|
|
|
rustdoc: don't generate DOM element for operator
In our source page highlighting, we were generating `<span class="op">` tags for all "operators", including e.g. `<` `>` around generic parameters, `*`, `&`. This contributed significantly to DOM size, but we don't actually style `.op` except in the ayu theme.
Remove the styles for `.op` in ayu, and stop generating the `<span>`s.
This reduces DOM size of an example page[1] from 265,938 HTML elements to 242,165 elements, a 9% reduction.
r? ``@GuillaumeGomez``
Demo: (warning - slow!) https://rustdoc.crud.net/jsha/highlight-lighter/src/core/up/up/stdarch/crates/core_arch/src/x86/avx512f.rs.html
[1]:
https://doc.rust-lang.org/nightly/src/core/up/up/stdarch/crates/core_arch/src/x86/avx512f.rs.html
|
|
In our source page highlighting, we were generating `<span class="op">`
tags for all "operators", including e.g. `<` `>` around generic
parameters, `*`, `&`. This contributed significantly to DOM size, but
we don't actually style `.op` except in the ayu theme.
Remove the styles for `.op` in ayu, and stop generating the `<span>`s.
This reduces DOM size of an example page[1] from 265,938 HTML elements
to 242,165 elements, a 9% reduction.
[1]:
https://doc.rust-lang.org/nightly/src/core/up/up/stdarch/crates/core_arch/src/x86/avx512f.rs.html
|
|
GuillaumeGomez:improve_rustdoc_search_results_page_crates_selection, r=notriddle
Improve crate selection on rustdoc search results page
Take over of #98855 (screenshots and explanations are there).
You can test it [here](https://rustdoc.crud.net/imperio/improve_rustdoc_search_results_page_crates_selection/std/index.html?search=test).
cc ``@steffahn`` ``@jsha``
r? ``@notriddle``
|
|
rustdoc: simplify highlight.rs
Split render_with_highlighting, which took many optional parameters, into three functions for specific purposes, which each take a smaller number of mostly required parameters.
Remove some plumbing to pass through an "edition" parameter, which was used solely to avoid highlighting some 2021 Edition keywords in non-2021 code.
I've tested a build of std docs before and after, and this does not change the generated HTML at all.
Followup from https://github.com/rust-lang/rust/pull/91264#discussion_r901151101
r? ```@GuillaumeGomez```
|
|
Previously the item-info background colors were too bright for a dark
theme, making a bright rectangle that draws the attention.
|
|
|
|
Fix oversight duplicate property left in CSS (dark theme).
Improve wording in comment that mentions `appearance: none`
|
|
Resolves all of issue #93240
Reproduces a similar change as #99086, but with improvements
In particular, this PR inlcludes:
* redesigning the crate-search selector so the background color matches its surroundings
* decrease the font of the dropdown menu to a reaonable size
* add a hover effect
* make the color of the arrow theme-dependent, using a surrounding div, with :after pseudo-element
that can then be transformed using CSS filters to approximate the desired color
* fix the text "in" to match the title font
* remove the "for xyz" in the "Results for xyz in [All crates]" title when
searching for search term "xyz"; you can already see what you're searching for
as it's typed in the search bar!
* in line with #99086, handle super-long crate names appropriately without a long <select>
element escaping the screen area; the improvement is that we also keep the title
within a single line now; uses some flex layout shenanigans...
* the margins / paddings are adjusted so the selected label of the <select> fits within
the rest of that title nicely; also some inconsistency in the way that Firefox renders
a <select> with "appearance: none" (roughly 4px more padding left and right of the text
than e.g. Chrome) is worked around, and it now produces a result that looks (essentially)
identical to Chrome
* the color of the help menu and settings menu border in light theme is made to match with
the color of the corresponding buttons, like they do (match) in the ayu theme
* the casing of "All crates" changes to "all crates"
* the new tests from #99086 are temporarily disabled, until they can be adapted later
|
|
Rollup of 14 pull requests
Successful merges:
- #98775 (rustdoc: improve scroll locking in the rustdoc mobile sidebars)
- #99479 (rustdoc-json: Remove doc FIXME for Import::id and explain)
- #100040 (Error on broken pipe but do not backtrace or ICE)
- #100072 (linker-plugin-lto.md: Correct the name of example c file)
- #100098 (Some "this expression has a field"-related fixes)
- #100226 (Do not manually craft a span pointing inside a multibyte character.)
- #100240 (Fail gracefully when const pattern is not structural match.)
- #100256 (Add some high-level docs to `FnCtxt` and `ItemCtxt`)
- #100261 (Set tainted errors bit before emitting coerce suggestions.)
- #100275 (also update anyhow in codegen_cranelift)
- #100281 (Remove more Clean trait implementations)
- #100314 (Mention `unit-test` in MIR opt test README)
- #100319 (Remove more Clean trait implementations)
- #100323 ([rustdoc] Don't render impl blocks with doc comment if they only contain private items by default)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Split render_with_highlighting, which took many optional parameters, into three
functions for specific purposes, which each take a smaller number of mostly
required parameters.
Remove some plumbing to pass through an "edition" parameter, which was used
solely to avoid highlighting some 2021 Edition keywords in non-2021 code.
|
|
rustdoc: improve scroll locking in the rustdoc mobile sidebars
This PR prevents the main content area from scrolling while the mobile sidebar is open on documentation pages (porting the scroll locking behavior from the source sidebar to the regular sidebar), and also fixes some bad behavior where opening a "mobile" sidebar, and growing the viewport so that the "desktop" mode without scroll locking is activated, could potentially leave the page stuck.
This does not affect the behavior on larger screens. Only small ones, where the sidebar covers up the main content.
Split out from #98772
|
|
rustdoc: use a more compact encoding for implementors/trait.*.js
The exact amount that this reduces the size of an implementors file depends on whether most of the impls are synthetic or not. For `Send`, it reduces the file from 128K to 112K, while for `Clone` it went from 64K to 44K.
|
|
|
|
This means we don't gain as much as we did from using single-quotes, since
serde_json can only produce double-quoted strings, but it's still a win.
|
|
|
|
The exact amount that this reduces the size of an implementors file depends
on whether most of the impls are synthetic or not. For `Send`, it reduces
the file from 128K to 116K, while for `Clone` it went from 64K to 52K.
|
|
rustdoc: use a more compact encoding for source-files.js
This reduces the compiler-doc file from 40K to 36K, a 10% reduction in size.
|
|
Replace `* -> vec` with `-> vec` in docs
Fixes #100078.
Rustdoc's current syntax is `-> vec`.
|
|
Rustdoc's current syntax is `-> vec`.
|
|
This reduces the compiler-doc file from 40K to 36K, a 10% reduction in size.
|
|
Remove Clean trait for ast::Attribute and improve Attributes::from_ast
I prefer to keep this commit on its own for this PR because I'm changing a bit more things than expected originally: I split `Attributes::from_ast` into two because there is only one location making use of its second parameter.
Follow-up of https://github.com/rust-lang/rust/pull/99638.
r? `@notriddle`
|
|
Attributes::from_ast function by splitting it in two
|
|
r=notriddle
Fix item info pos and height
Fixes https://github.com/rust-lang/rust/issues/98266.
Fixes https://github.com/rust-lang/rust/issues/98343.
You can test it [here](https://rustdoc.crud.net/imperio/fix-item-info-pos-and-height/lib2/trait.Trait.html).
Here is a screenshot of the result:

r? `@jsha`
|
|
From 72 bytes to 12 bytes (on x86-64).
There are two parts to this:
- Changing various source code offsets from 64-bit to 32-bit. This is
not a problem because the rest of rustc also uses 32-bit source code
offsets. This means `Token` is no longer `Copy` but this causes no
problems.
- Removing the `RawStrError` from `LiteralKind`. Raw string literal
invalidity is now indicated by a `None` value within
`RawStr`/`RawByteStr`, and the new `validate_raw_str` function can be
used to re-lex an invalid raw string literal to get the `RawStrError`.
There is one very small change in behaviour. Previously, if a raw string
literal matched both the `InvalidStarter` and `TooManyHashes` cases,
the latter would override the former. This has now changed, because
`raw_double_quoted_string` now uses `?` and so returns immediately upon
detecting the `InvalidStarter` case. I think this is a slight
improvement to report the earlier-detected error, and it explains the
change in the `test_too_many_hashes` test.
The commit also removes a couple of comments that refer to #77629 and
say that the size of these types don't affect performance. These
comments are wrong, though the performance effect is small.
|
|
Cleanup html whitespace
I realized while looking at the raw HTML that we generated some unwanted white space characters. This PR cleans up the one coming directly from rustdoc. I'll check from `pulldown-cmark` for the remaining ones.
Some numbers now: the difference is small, it goes from `63009` to `62859`. But multiplied by the number of files, it becomes quite interesting overall.
r? `@notriddle`
|
|
This reduces ItemKind size from 224 bytes to 160 bytes.
|
|
|
|
r=notriddle
Fix settings slider on small width screens
Fixes #99794.
Screenshot of the fix:

cc `````@jsha`````
r? `````@notriddle`````
|
|
Fix headings colors
Fixes #99797.

cc `@jsha`
r? `@notriddle`
|
|
|
|
|
|
|
|
Add a clickable link to the layout section
The layout section (activated by `--show-type-layout`) is currently not linkable to (outside of chrome's link to text feature). This PR makes it linkable via `#layout`.
|
|
|
|
WaffleLapkin:rustdoc_implement_support_for_must_implement, r=GuillaumeGomez
rustdoc: Add support for `#[rustc_must_implement_one_of]`
This PR adds support for `#[rustc_must_implement_one_of]` attribute added in #92164. There is a desire to eventually use this attribute of `Read`, so making it show up in docs is a good thing.
I "stole" the styling from cfg notes, not sure what would be a proper styling. Currently it looks like this:

<details><summary>Code to reproduce</summary>
<p>
```rust
#![feature(rustc_attrs)]
#[rustc_must_implement_one_of(a, b)]
pub trait Trait {
fn req();
fn a(){ Self::b() }
fn b(){ Self::a() }
}
```
</p>
</details>
|
|
|
|
|
|
|
|
|
|
|