Commit graph

10024 commits

Author SHA1 Message Date
Matthias Krüger
f8dfddb98c
Rollup merge of #103268 - notriddle:notriddle/nav-sub-font-size, r=GuillaumeGomez
rustdoc: remove no-op CSS `nav.sub { font-size: 1rem }`

This rule originated as a `font-size: 16px`, when body had `font-size: 13px` set in 4fd061c426.

It remained even when body's font size was bumped up to 16px, 4d5f4ff5e9, making the rule a no-op, and was carried forward when it was converted to 1rem in cc18120425.
2022-10-20 07:58:57 +02:00
Matthias Krüger
e5514b9377
Rollup merge of #103251 - GuillaumeGomez:item-decl-highlighting, r=notriddle
Fix item declaration highlighting

Fixes https://github.com/rust-lang/rust/issues/103050.

As mentioned in the issue, https://github.com/rust-lang/rust/pull/102924 introduced this regression. This PR partially reverts it and adds a regression test.

r? `@notriddle`
2022-10-20 07:58:56 +02:00
Michael Howell
0dd329f687 rustdoc: remove no-op CSS nav.sub { font-size: 1rem }
This rule originated as a `font-size: 16px`, when body had `font-size: 13px`
set in 4fd061c426.

It remained even when body's font size was bumped up to 16px,
4d5f4ff5e9, making the rule a no-op, and was
carried forward when it was converted to 1rem in
cc18120425.
2022-10-19 13:57:39 -07:00
Matthias Krüger
952c15622a
Rollup merge of #103257 - notriddle:notriddle/setting-line, r=GuillaumeGomez
rustdoc: move `setting-line` color CSS to settings.css
2022-10-19 21:38:42 +02:00
Matthias Krüger
433f736b86
Rollup merge of #103211 - notriddle:notriddle/dot-location, r=GuillaumeGomez
rustdoc: remove class name `location` from sidebar sibling nav

Preview: https://notriddle.com/notriddle-rustdoc-demos/sidebar-location/std/vec/struct.Vec.html

This change tweaks the CSS to apply most of its styles to `.sidebar h2`, cleaning up a few redundant rules from `.mobile-topbar .location` and restoring useful navigation aids in mobile mode.

## Before

![location-before](https://user-images.githubusercontent.com/1593513/196521014-d8730830-c3a2-4ed7-9266-05454cd31e05.png)

## After

![location-after](https://user-images.githubusercontent.com/1593513/196521020-75ec1fa5-b3dc-4c5d-97b6-afccb5fbe00a.png)
2022-10-19 21:38:39 +02:00
Michael Howell
db570586a5 rustdoc: move setting-line color CSS to settings.css 2022-10-19 09:24:09 -07:00
Guillaume Gomez
a1d4ebe496 Fix regression in item-decl highlighting 2022-10-19 17:14:50 +02:00
bors
415d8fcc3e Auto merge of #103213 - matthiaskrgr:rollup-diloxg3, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #101889 (doc: rewrite doc for uint::{carrying_add,borrowing_sub})
 - #102507 (More slice::partition_point examples)
 - #103164 (rustdoc: remove CSS ``@media` (min-width: 701px)`)
 - #103189 (Clean up code-color and headers-color rustdoc GUI tests)
 - #103203 (Retrieve LLVM version from llvm-filecheck binary if it is not set yet)
 - #103204 (Add some more autolabels)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-10-19 02:53:24 +00:00
Nicholas Nethercote
ca2561a07b Avoid cloning RenderOptions.
By moving `RenderOptions` out of `Option`, because the two structs' uses
are almost entirely separate.

The only complication is that `unstable_features` is needed in both
structs, but it's a tiny `Copy` type so its duplication seems fine.
2022-10-19 08:09:40 +11:00
Nicholas Nethercote
38988e62bc Use interface::run_compiler for markdown::render.
It turns out `markdown::render` is more complex than it first appears,
because it can invoke `doctest::make_test`, which requires session
globals and a thread pool.

So this commit changes it to use `interface::run_compiler`. Three of the
four paths in `main_args` now use `interface::run_compiler`.
2022-10-19 08:09:40 +11:00
Nicholas Nethercote
2a62c92b25 Merge main_options into main_args.
There is no longer any need for them to be separate.
2022-10-19 07:23:14 +11:00
Nicholas Nethercote
021d1fbd00 Clean up rustdoc startup.
rustc's startup has several layers, including:
- `interface::run_compiler` passes a closure, `f`, to
  `run_in_thread_pool_with_globals`, which creates a thread pool, sets
  up session globals, and passes `f` to `create_compiler_and_run`.
- `create_compiler_and_run` creates a `Session`, a `Compiler`, sets the
  source map, and calls `f`.

rustdoc is a bit different.
- `main_args` calls `main_options` via
  `run_in_thread_pool_with_globals`, which (again) creates a thread pool
  (hardcoded to a single thread!) and sets up session globals.
- `main_options` has four different paths.
  - The second one calls `interface::run_compiler`, which redoes the
    `run_in_thread_pool_with_globals`! This is bad.
  - The fourth one calls `interface::create_compiler_and_run`, which is
    reasonable.
  - The first and third ones don't do anything of note involving the
    above functions, except for some symbol interning which requires
    session globals.

In other words, rustdoc calls into `rustc_interface` at three different
levels. It's a bit confused, and feels like code where functionality has
been added by different people at different times without fully
understanding how the globally accessible stuff is set up.

This commit tidies things up. It removes the
`run_in_thread_pool_with_globals` call in `main_args`, and adjust the
four paths in `main_options` as follows.
- `markdown::test` calls `test::test_main`, which provides its own
  parallelism and so doesn't need a thread pool. It had one small use of
  symbol interning, which required session globals, but the commit
  removes this.
- `doctest::run` already calls `interface::run_compiler`, so it doesn't
  need further adjustment.
- `markdown::render` is simple but needs session globals for interning
  (which can't easily be removed), so it's now wrapped in
  `create_session_globals_then`.
- The fourth path now uses `interface::run_compiler`, which is
  equivalent to the old `run_in_thread_pool_with_globals` +
  `create_compiler_and_run` pairing.
2022-10-19 07:23:14 +11:00
Matthias Krüger
2ae06ca329
Rollup merge of #103164 - notriddle:notriddle/media-min-width, r=GuillaumeGomez
rustdoc: remove CSS `@media (min-width: 701px)`

The two rules within it can and should be done without the separate media query:

  * There ain't no rule saying a viewport can't be `700.5px` wide, since hardware pixels can be finer than CSS pixels.

    <details><summary>Screenshot</summary>

    ![image](https://user-images.githubusercontent.com/1593513/196283804-e946fbe3-d914-4819-ba2d-b4a6a07f190a.png)

    </details>

  * The rule for the first example-wrap child should probably apply on mobile.

    <details><summary>Screenshots</summary>

    ## Before

    ![rustdoc-before](https://user-images.githubusercontent.com/1593513/196282813-88b861c7-7b05-4de5-a421-914396f86a04.png)

    ## After

    ![rustdoc-after](https://user-images.githubusercontent.com/1593513/196282842-e57760c2-72d5-4dad-94f5-1d7175043326.png)

    </details>

  * The rule for the source sidebar is overriden by the mobile rule setting `max-width: 100vw`, so it can be merged with the rest of the styles.
2022-10-18 21:18:47 +02:00
Michael Howell
a01b88575e rustdoc: remove class name location from sidebar sibling nav
This change tweaks the CSS to apply most of its styles to `.sidebar h2`,
cleaning up a few redundant rules from `.mobile-topbar .location` and
restoring useful navigation aids in mobile mode.
2022-10-18 12:01:53 -07:00
bors
a03ca01f47 Auto merge of #102992 - nnethercote:rm-RunCompiler-emitter, r=bjorn3
Remove `RunCompiler::emitter`.

It's no longer used.

r? `@bjorn3`
2022-10-18 05:06:04 +00:00
Michael Howell
d4e4b08b9b rustdoc: change mobile breakpoint to match CSS
Since it's possible to have a 700.5px viewport width, the JS needs to not
switch to mobile mode in such a setup.
2022-10-17 19:26:15 -07:00
Michael Howell
bbac29c095 rustdoc: remove CSS @media (min-width: 701px)
The two rules within it can and should be done without the separate
media query:

  * There ain't no rule saying a viewport can't be `700.5px` wide, since
    hardware pixels can be finer than CSS pixels.

  * The rule for the first example-wrap child should probably apply
    on mobile.

  * The rule for the source sidebar is overriden by the mobile rule
    setting `max-width: 100vw`, so it can be merged with the rest
    of the styles.
2022-10-17 19:09:26 -07:00
Nicholas Nethercote
641f8249f9 Remove RunCompiler::emitter.
It's no longer used.
2022-10-18 08:48:58 +11:00
Matthias Krüger
8a467c3215
Rollup merge of #103162 - notriddle:notriddle/crate-search, r=GuillaumeGomez
rustdoc: remove redundant CSS `#crate-search { border-radius }`

This is the same border-radius that's always set on that ID:

a9d1cafa87/src/librustdoc/html/static/css/rustdoc.css (L825-L836)
2022-10-17 23:09:08 +02:00
Matthias Krüger
1e7b6ece88
Rollup merge of #103161 - notriddle:notriddle/copy-path-settings-help-button, r=GuillaumeGomez
rustdoc: remove redundant CSS on `#copy-path`

The border and background were removed in 5d004c1e20, but not all the CSS was.
2022-10-17 23:09:07 +02:00
Matthias Krüger
0a19575591
Rollup merge of #103160 - notriddle:notriddle/js-mobile-scroll, r=GuillaumeGomez
rustdoc: factor JS mobile scroll lock into its own function

https://github.com/rust-lang/rust/pull/98775#issuecomment-1172728308
2022-10-17 23:09:07 +02:00
Michael Howell
642bb0d54f rustdoc: remove redundant CSS #crate-search { border-radius }
This is the same border-radius that's always set on that ID:

a9d1cafa87/src/librustdoc/html/static/css/rustdoc.css (L825-L836)
2022-10-17 12:16:40 -07:00
Michael Howell
3aa3b8be4e rustdoc: remove redundant CSS on #copy-path
The border and background were removed in
5d004c1e20, but not all the CSS was.
2022-10-17 11:59:01 -07:00
Michael Howell
3932b2c21d rustdoc: factor JS mobile scroll lock into its own function
https://github.com/rust-lang/rust/pull/98775#issuecomment-1172728308
2022-10-17 11:44:02 -07:00
Matthias Krüger
e1d72a485a
Rollup merge of #103091 - notriddle:notriddle/sidebar-title, r=GuillaumeGomez
rustdoc: remove unused HTML class `sidebar-title`

Since 6a5f8b1aef, this class is no longer styled.
2022-10-17 17:15:51 +02:00
Matthias Krüger
81ea72b38e
Rollup merge of #103129 - notriddle:notriddle/sub-logo-container, r=GuillaumeGomez
rustdoc: remove unused `.sub-logo-container` DOM on non-source pages
2022-10-17 13:11:07 +02:00
Michael Howell
bcf4cfe790 rustdoc: clean up .sub-logo-container CSS
* Since it's used exclusively on source pages, no need to explicitly
  select.

* No need to hide it when the sidebar is open, since it fills the whole
  page.
2022-10-16 17:57:26 -07:00
Michael Howell
b979697992 rustdoc: remove unused .sub-logo-container DOM on non-source pages 2022-10-16 17:57:26 -07:00
bors
a501e6699e Auto merge of #103125 - matthiaskrgr:rollup-82xttcl, r=matthiaskrgr
Rollup of 5 pull requests

Successful merges:

 - #103087 (Documentation BTreeMap::append's behavior for already existing keys)
 - #103089 (Mark derived StructuralEq as automatically derived.)
 - #103102 (Clarify the possible return values of `len_utf16`)
 - #103109 (PhantomData: inline a macro that is used only once)
 - #103120 (rustdoc: Do not expect `doc(primitive)` modules to always exist)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-10-16 23:15:20 +00:00
Matthias Krüger
db30a25781
Rollup merge of #103120 - petrochenkov:docice, r=GuillaumeGomez
rustdoc: Do not expect `doc(primitive)` modules to always exist

The second commit fixes one more ICE by processing impls in crates loaded through the "load all `--extern`s" hack.

Fixes https://github.com/rust-lang/rust/issues/96288
Fixes https://github.com/rust-lang/rust/issues/103028
2022-10-16 22:36:07 +02:00
bors
b8b5caee04 Auto merge of #102026 - Bryanskiy:resolve_update, r=petrochenkov
Populate effective visibilities in 'rustc_resolve'

Next part of RFC https://github.com/rust-lang/rust/issues/48054.
previous: https://github.com/rust-lang/rust/pull/101713

`@rustbot` author
r? `@petrochenkov`
2022-10-16 20:34:38 +00:00
Bryanskiy
496ccd982c Populate effective visibilities in 'rustc_resolve' 2022-10-16 21:47:14 +03:00
Vadim Petrochenkov
dd7411d848 rustdoc: Process extern impls in all loaded crates
including those loaded through hacks.
2022-10-16 21:55:55 +04:00
Vadim Petrochenkov
c65f3db2d9 rustdoc: Do not expect doc(primitive) modules to always exist 2022-10-16 20:44:50 +04:00
Matthias Krüger
0bd24c5dc5
Rollup merge of #103060 - notriddle:notridddle/help-page, r=GuillaumeGomez
rustdoc: make the help button a link to a page

This allows you to open the help section in a new browser tab, which is a pretty reasonable thing to want for a documentation page.

Preview: http://notriddle.com/notriddle-rustdoc-demos/help-page/std/index.html
2022-10-16 17:51:31 +02:00
Michael Howell
834448163d rustdoc: make help button a no-op when on help page 2022-10-15 21:45:59 -07:00
Michael Howell
6f59981a7a rustdoc: fix Ctrl-Click on help and settings links 2022-10-15 11:45:27 -07:00
Michael Howell
ae4ad9adb6 rustdoc: make the help button a link to a page
This allows you to open the help section in a new browser tab, which is a
pretty reasonable thing to want for a documentation page.
2022-10-15 11:38:42 -07:00
Michael Howell
e9b2922804 rustdoc: remove unused HTML class sidebar-title
Since 6a5f8b1aef, this class is no
longer styled.
2022-10-15 11:24:49 -07:00
Guillaume Gomez
e14d2efba3 Fix display of settings page 2022-10-15 15:59:00 +02:00
nils
3c0062641d
Add some tidy-alphabetical 2022-10-14 21:18:03 +02:00
Dylan DPC
587b9c1a97
Rollup merge of #103025 - notriddle:notriddle/search-container-star, r=GuillaumeGomez
rustdoc: remove unused CSS `.search-container > *`

The two items it was really intended to target were the buttons, and those both need to have the style set directly on them anyway because the buttons are both child elements of wrappers.

6b3ede3f7b/src/librustdoc/html/static/css/rustdoc.css (L1406-L1411)
2022-10-14 16:19:16 +05:30
Dylan DPC
77064b7f0a
Rollup merge of #103018 - Rageking8:more-dupe-word-typos, r=TaKO8Ki
More dupe word typos

I only picked those changes (from the regex search) that I am pretty certain doesn't change meaning and is just a typo fix. Do correct me if any fix is undesirable and I can revert those. Thanks.
2022-10-14 16:19:15 +05:30
Dylan DPC
20e1268d25
Rollup merge of #102914 - GuillaumeGomez:migrate-css-highlight-without-change, r=notriddle
Migrate css highlight without change

This is a "previous" version of https://github.com/rust-lang/rust/pull/102663: only migrating to CSS variables, no changes. It's a bit more verbose because rules are not coherent between themes.

r? ``@notriddle``
2022-10-14 16:19:13 +05:30
Rageking8
7122abaddf more dupe word typos 2022-10-14 12:57:56 +08:00
Matthias Krüger
9692d98e4f
Rollup merge of #103006 - WaffleLapkin:rustdoc_dont, r=compiler-errors
rustdoc: don't ICE on `TyKind::Typeof`

Fixes #102986

I'm not sure why rustdoc started seeing `TyKind::Typeof` all of a sudden (the code being editted was last touched 3 months ago), probably something to do with error recovery? idk.
2022-10-14 00:45:17 +02:00
Michael Howell
513f699eac rustdoc: remove unused CSS .search-container > *
The two items it was really intended to target were the buttons, and those
both need to have the style set directly on them anyway because the buttons
are both child elements of wrappers.
2022-10-13 14:53:57 -07:00
Maybe Waffle
3df9afcae7 rustdoc: don't ICE on TyKind::Typeof 2022-10-13 07:33:34 +00:00
Yuki Okushi
e8029368d3
Rollup merge of #102980 - notriddle:notriddle/content, r=GuillaumeGomez
rustdoc: merge separate `.item-info` CSS

Rough timeline:

* The longer `.content .item-info` selector originated in 110e7270ab. No reason seems to be given in the PR why it needed the `.content` part, but it was probably added because of <110e7270ab/src/librustdoc/html/static/rustdoc.css (L476-L478)>. That selector with the margin-bottom was removed when CSS containment was added in 8846c0853d.
* `.stability` was renamed `.item-info` in caf6c5790a.
* The selector without the `.content` was added in d48a39a5e2.
2022-10-13 09:41:28 +09:00
Michael Howell
f8da2295de rustdoc: merge separate .item-info CSS
Rough timeline:

* The longer `.content .item-info` selector originated in
  110e7270ab. No reason seems to be given in
  the PR why it needed the `.content` part, but it was probably added because
  of <110e7270ab/src/librustdoc/html/static/rustdoc.css (L476-L478)>.
  That selector with the margin-bottom was removed when CSS containment
  was added in 8846c0853d.
* `.stability` was renamed `.item-info` in
  caf6c5790a.
* The selector without the `.content` was added in
  d48a39a5e2.
2022-10-12 11:24:23 -07:00