Commit graph

4768 commits

Author SHA1 Message Date
Roland Strasser
468acca108 rustdoc: remove hover gap in file picker 2022-10-08 01:30:13 +02:00
Matthias Krüger
d6c05fb9f1
Rollup merge of #102747 - notriddle:notriddle/docblock-a-not-srclink, r=GuillaumeGomez
rustdoc: remove unused CSS `.docblock a:not(.srclink)`

This selector was added in c7312fbae4, because the list of impl items could be nested below `docblock`.

c7312fbae4/src/librustdoc/html/render.rs (L3841-L3845)

Now that rustdoc toggles have been switched to `<details>`, there shouldn't be any need to put things inside docblock containers just to give them disclosure toggles.
2022-10-07 07:28:11 +02:00
Matthias Krüger
a636398897
Rollup merge of #102744 - notriddle:notriddle/content-item-list, r=GuillaumeGomez
rustdoc: remove unused CSS `.content .item-list`

When these rules were added in 4fd061c426 (yeah, that's the very first commit of rustdoc_ng), `.item-list` was a `<ul>`, and this would override the default style for that tag.

In c1b1d6804b, it was changed to use a `<div>` tag, so these rules are both no-ops.
2022-10-07 07:28:10 +02:00
Michael Howell
28b26b7aa6 rustdoc: remove unused CSS .docblock a:not(.srclink)
This selector was added in c7312fbae4,
because the list of impl items could be nested below `docblock`.

c7312fbae4/src/librustdoc/html/render.rs (L3841-L3845)

Now that rustdoc toggles have been switched to `<details>`, there shouldn't
be any need to put things inside docblock containers just to give them
disclosure toggles.
2022-10-06 11:21:42 -07:00
Michael Howell
0997b28a89 rustdoc: remove unused HTML class="item-list"
Since 50f662e99e, there is no CSS or JS
targeting this class.
2022-10-06 10:55:33 -07:00
Michael Howell
50f662e99e rustdoc: remove unused CSS .content .item-list
When these rules were added in 4fd061c426
(yeah, that's the very first commit of rustdoc_ng), `.item-list` was a
`<ul>`, and this would override the default style for that tag.

In c1b1d6804b, it was changed to use a
`<div>` tag, so these rules are both no-ops.
2022-10-06 10:18:43 -07:00
Matthias Krüger
48964bdb87
Rollup merge of #102736 - GuillaumeGomez:search-input-color, r=notriddle
Migrate search input color to CSS variable

Part of https://github.com/rust-lang/rust/pull/98460.

No UI changes.

r? `@notriddle`
2022-10-06 16:29:45 +02:00
Guillaume Gomez
694f0a1e35 Migrate search input color to CSS variable 2022-10-06 13:01:07 +02:00
bors
6b6610b8bd Auto merge of #102707 - fmease:rustdoc-render-more-cross-crate-hrtbs-properly, r=GuillaumeGomez
rustdoc: render more cross-crate HRTBs properly

Follow-up to #102439.
Render the `for<>` parameter lists of cross-crate higher-rank trait bounds (in where-clauses and in `impl Trait`).

I've added a new field `bound_params` to `clean::WherePredicate::EqPredicate` (mirroring its sibling variant `BoundPredicate`). However, I had to box the existing fields since `EqPredicate` used to be the largest variant (128 bytes on 64-bit systems) and it would only have gotten bigger).
Not sure if you like that approach. As an alternative, I could pass the uncleaned `ty::Predicate` alongside the cleaned `WherePredicate` to the various re-sugaring methods (similar to what `clean::AutoTraitFinder::param_env_to_generics` does).

I haven't yet added the HTML & JSON rendering code for the newly added `bound_params` field since I am waiting for your opinion. Those two rendering code paths should actually be unreachable in practice given we re-sugar all(?) equality predicates to associated type bindings (and arbitrary equality predicates are not part of the Rust surface language at the time of this writing).

If you agree with storing `bound_params` in `EqPredicate`, I think I can use it to greatly simplify the `clean::auto_trait` module (by also using `simplify::merge_bounds`). Maybe I can do that in any case though.

`@rustbot` label T-rustdoc A-cross-crate-reexports
r? `@GuillaumeGomez`
2022-10-06 08:58:01 +00:00
Michael Howell
3cb03cb342 rustdoc: remove unused CSS class in-band
Since a7c25b2957 removed `in-band` from code
headers, the only remaining uses of the `in-band` class are:

02cd79afb8/src/librustdoc/html/render/write_shared.rs (L520-L521)

02cd79afb8/src/librustdoc/html/templates/print_item.html (L2-L3)

02cd79afb8/src/librustdoc/html/render/context.rs (L637-L638)

02cd79afb8/src/librustdoc/html/render/mod.rs (L368-L369)

02cd79afb8/src/librustdoc/html/render/mod.rs (L401-L402)

02cd79afb8/src/librustdoc/html/static/js/main.js (L525)

Since all of these uses are nested below `h1.fqn`, we can get rid of it,
and the support code that was used for when `in-band` was part of item
rendering.
2022-10-05 16:56:07 -07:00
León Orell Valerian Liehr
73c239e5eb
rustdoc: render more cross-crate hrtbs properly 2022-10-05 23:14:15 +02:00
Dylan DPC
4c644cdbf6
Rollup merge of #102699 - GuillaumeGomez:fix-hamburger-button-color, r=Dylan-DPC
Fix hamburger button color

Before:

![Screenshot from 2022-10-05 11-14-20](https://user-images.githubusercontent.com/3050060/194026621-e4df5750-92df-4194-a163-9787b45ace26.png)

After:

![Screenshot from 2022-10-05 11-14-15](https://user-images.githubusercontent.com/3050060/194026618-6a365623-5181-4174-b6af-66962e5ba6a5.png)

No need to backport it, beta doesn't seem affected.

r? `@notriddle`
2022-10-05 17:27:34 +05:30
Guillaume Gomez
48b2a5d0b4 Fix hamburger button color in mobile sidebar 2022-10-05 11:19:53 +02:00
Michael Howell
8f8125ecfb rustdoc: remove no-op CSS .code-header { display: block }
Since 76a3b609d0 converted code headers to
real headers, `display: block` is now the default.
2022-10-04 08:37:10 -07:00
Matthias Krüger
cdb114ea82
Rollup merge of #102624 - notriddle:notriddle/summary-before, r=GuillaumeGomez
rustdoc: remove font family CSS on `.rustdoc-toggle summary::before`

This rule became irrelevant since c58246efe4 made it so that the `summary::before` pseudo-element contains an SVG instead of text.
2022-10-04 06:14:11 +02:00
Guillaume Gomez
4ae58d602e Migrate search results theme style to CSS variables 2022-10-03 23:15:37 +02:00
Matthias Krüger
d32921340c
Rollup merge of #102620 - GuillaumeGomez:css-stab-migration, r=notriddle
Migrate `.stab` elements style to CSS variables

Part of https://github.com/rust-lang/rust/pull/98460.

There should be no UI changes.

r? `@notriddle`
2022-10-03 19:12:20 +02:00
Michael Howell
d33e113ba0 rustdoc: remove font family CSS on .rustdoc-toggle summary::before
This rule became irrelevant since c58246efe4
made it so that the `summary::before` pseudo-element contains an SVG instead
of text.
2022-10-03 09:29:26 -07:00
Guillaume Gomez
c0c7597eea Migrate stab elements style to CSS variables 2022-10-03 15:31:59 +02:00
Matthias Krüger
c3053309c5
Rollup merge of #102550 - notriddle:notriddle/impl, r=GuillaumeGomez
rustdoc: remove no-op CSS on `.impl, .method` etc

Preview: http://notriddle.com/notriddle-rustdoc-demos/impl/index.html

# `flex-basis: 100%`

When `.impl-items { flex-basis: 100% }` and `h3.impl, h3.method, h4.method, h3.type, h4.type, h4.associatedconstant` were added in 34bd2b845b, it seems like it was a mistake even then. According to MDN, [flex-basis] does nothing unless the box it's applied to is a flex *item*, a child of a flex container. However, when this was added, these elements were flex containers themselves.

[flex-basis]: https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis

# `position: relative`

This property was added to help with positioning the `[+]/[-]` toggle. It is no longer necessary, because `details.rustdoc-toggle` already has `position:relative` set on it.
2022-10-03 08:00:47 +02:00
Matthias Krüger
3d71ff48d2
Rollup merge of #102525 - notriddle:notriddle/array-link, r=GuillaumeGomez,jsha
rustdoc: remove orphaned link on array bracket

This is #98069, but for arrays instead.

For non-generics, this retains links to the array page, but instead of trying to link it all, it only links the length part, which distinguishes arrays from slices.

For generics, the entire thing becomes a link, just like slices.

| Type | Before | After |
|--|--|--|
| u32 | <code>pub fn alpha() -&gt; &amp;'static <a class="primitive" href="http://doc.rust-lang.org/nightly/core/primitive.array.html">[</a><a class="primitive" href="http://doc.rust-lang.org/nightly/core/primitive.u32.html">u32</a><a class="primitive" href="http://doc.rust-lang.org/nightly/core/primitive.array.html">; 1]</a></code> | <code>pub fn alpha() -&gt; &amp;'static [<a class="primitive" href="http://doc.rust-lang.org/nightly/core/primitive.u32.html">u32</a>; <a class="primitive" href="http://doc.rust-lang.org/nightly/core/primitive.array.html">1</a>]</code>
| generic | <code>pub fn beta&lt;T&gt;() -&gt; &amp;'static <a class="primitive" href="http://doc.rust-lang.org/nightly/core/primitive.array.html">[</a>T<a class="primitive" href="http://doc.rust-lang.org/nightly/core/primitive.array.html">; 1]</a></code> | <code>pub fn beta&lt;T&gt;() -&gt; &amp;'static <a class="primitive" href="http://doc.rust-lang.org/nightly/core/primitive.array.html">[T; 1]</a></code>
2022-10-02 03:16:39 +02:00
Michael Howell
d46e558a93 rustdoc: remove no-op CSS .impl { position: relative } etc
This property was added to help with positioning the `[+]/[-]` toggle.
It is no longer necessary, because `details.rustdoc-toggle` already has
`position:relative` set on it.
2022-10-01 10:42:13 -07:00
Michael Howell
835a102dd3 rustdoc: remove no-op CSS .impl { flex-basis: 100% } etc
When `.impl-items { flex-basis: 100% }` and `h3.impl, h3.method, h4.method,
h3.type, h4.type, h4.associatedconstant` were added in
34bd2b845b, it seems like it was a mistake even
then. According to MDN, [flex-basis] does nothing unless the box it's applied
to is a flex *item*, a child of a flex container. However, when this was
added, these elements were flex containers themselves.

[flex-basis]: https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis
2022-10-01 10:40:16 -07:00
Matthias Krüger
51e2f03af2
Rollup merge of #102533 - notriddle:notriddle/a-source, r=Dylan-DPC
rustdoc: remove unused CSS selector `a.source`

The link with this class attribute was removed in 4d16de01d0 (diff-3fe025bd3bd6b48044d0bd8d8c3122de5ecdb1dcd72a9dbe3c24430883595012L1281-R1324)
2022-10-01 16:45:05 +02:00
bors
744e397d88 Auto merge of #101986 - WaffleLapkin:move_lint_note_to_the_bottom, r=estebank
Move lint level source explanation to the bottom

So, uhhhhh

r? `@estebank`

## User-facing change

"note: `#[warn(...)]` on by default" and such are moved to the bottom of the diagnostic:
```diff
-   = note: `#[warn(unsupported_calling_conventions)]` on by default
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #87678 <https://github.com/rust-lang/rust/issues/87678>
+   = note: `#[warn(unsupported_calling_conventions)]` on by default
```

Why warning is enabled is the least important thing, so it shouldn't be the first note the user reads, IMO.

## Developer-facing change

`struct_span_lint` and similar methods have a different signature.

Before: `..., impl for<'a> FnOnce(LintDiagnosticBuilder<'a, ()>)`
After: `..., impl Into<DiagnosticMessage>, impl for<'a, 'b> FnOnce(&'b mut DiagnosticBuilder<'a, ()>) -> &'b mut DiagnosticBuilder<'a, ()>`

The reason for this is that `struct_span_lint` needs to edit the diagnostic _after_ `decorate` closure is called. This also makes lint code a little bit nicer in my opinion.

Another option is to use `impl for<'a> FnOnce(LintDiagnosticBuilder<'a, ()>) -> DiagnosticBuilder<'a, ()>` altough I don't _really_ see reasons to do `let lint = lint.build(message)` everywhere.

## Subtle problem

By moving the message outside of the closure (that may not be called if the lint is disabled) `format!(...)` is executed earlier, possibly formatting `Ty` which may call a query that trims paths that crashes the compiler if there were no warnings...

I don't think it's that big of a deal, considering that we move from `format!(...)` to `fluent` (which is lazy by-default) anyway, however this required adding a workaround which is unfortunate.

## P.S.

I'm sorry, I do not how to make this PR smaller/easier to review. Changes to the lint API affect SO MUCH 😢
2022-10-01 10:44:25 +00:00
Maybe Waffle
6ecacf76bc rustdoc: adopt to the new lint API 2022-10-01 10:03:06 +00:00
bors
277bb6653b Auto merge of #102237 - GuillaumeGomez:sidebar-links-color, r=notriddle
Migrate sidebar links color to CSS variables and unify themes with ayu

Part of https://github.com/rust-lang/rust/pull/98460.

This PR does two things:
 1. Migrate more theme CSS rules toward CSS variables.
 2. Remove `a.current` specific colors depending on the kind of the item behind the link. The `ayu` theme was already doing it this way and I think it makes much more sense like this.

You can test it [here](https://rustdoc.crud.net/imperio/sidebar-links-color/lib2/struct.Foo.html) by hovering other module's items in the sidebar (or check the selector `a.current`).

cc `@jsha`
r? `@notriddle`
2022-10-01 08:14:25 +00:00
Michael Howell
fcb4e0abfc rustdoc: remove unused CSS selector a.source
The link with this class attribute was removed in
4d16de01d0.
2022-09-30 22:17:04 -07:00
Matthias Krüger
2fadfe0284
Rollup merge of #102521 - notriddle:notriddle/impl-items-section, r=GuillaumeGomez
rustdoc: add missing margin to no-docblock methods

Fixes another regression caused by 8846c0853d, this time fixing the appearance of methods that have no docblock (we didn't notice this one because libstd docs *always* have docblocks).

See how it looks at https://doc.rust-lang.org/nightly/nightly-rustc/rustdoc/clean/types/enum.Type.html#implementations

<details>

# Before

![image](https://user-images.githubusercontent.com/1593513/193318777-2bc082fb-6579-4bd8-a0e3-d23a32b4820f.png)

# After

![image](https://user-images.githubusercontent.com/1593513/193318968-b6ccacad-940b-4ed3-a0ae-dcf2079c2bae.png)

</details>

See how it looks at https://doc.rust-lang.org/nightly/nightly-rustc/rustdoc/clean/types/trait.AttributesExt.html

<details>

# Before

![image](https://user-images.githubusercontent.com/1593513/193319636-7ff9c99e-0208-462c-99de-7672e92ce4d6.png)

# After

![image](https://user-images.githubusercontent.com/1593513/193322675-403bd165-7394-43e2-8ab4-d1f364666093.png)

</details>
2022-09-30 23:38:27 +02:00
Michael Howell
598a02c6ad rustdoc: remove orphaned link on array bracket
This is 682889fb06, but for arrays instead.

For non-generics, this retains links to the array page, but instead of
trying to link it all, it only links the length part, which distinguishes
arrays from slices.

For generics, the entire thing becomes a link, just like slices.
2022-09-30 14:38:05 -07:00
Michael Howell
f145f283f7 rustdoc: add missing margin to no-docblock trait items
Fixes another regression caused by 8846c0853d,
this time fixing the appearance of methods that have no docblock (we didn't
notice this one because libstd docs *always* have docblocks).

See how it looks at https://doc.rust-lang.org/nightly/nightly-rustc/rustdoc/clean/types/trait.AttributesExt.html
2022-09-30 10:45:19 -07:00
Matthias Krüger
5dd4584d2e
Rollup merge of #102505 - notriddle:sub-variant-h4, r=GuillaumeGomez
rustdoc: remove no-op CSS `h3.variant, .sub-variant h4 { border-bottom: none }`

This rule, added in 69df43b041 to override the default `h4` style, has been obsoleted when a65c98fefb changed it so that only the top docblock put `border-bottom` on `h4.`
2022-09-30 19:06:06 +02:00
Michael Howell
8728e17855 rustdoc: add missing margin to no-docblock methods
Fixes another regression caused by 8846c0853d,
this time fixing the appearance of methods that have no docblock (we didn't
notice this one because libstd docs *always* have docblocks).

See how it looks without the fix at https://doc.rust-lang.org/nightly/nightly-rustc/rustdoc/clean/types/enum.Type.html#implementations
2022-09-30 09:57:24 -07:00
Guillaume Gomez
98f05a0282 * Migrate sidebar links color to new CSS theme handling
* Remove specific color handling for ".current" items in the sidebar.
2022-09-30 13:29:39 +02:00
Matthias Krüger
e36c3c12cc
Rollup merge of #102491 - notriddle:notriddle/sidebar-opacity, r=GuillaumeGomez
rustdoc: remove no-op source sidebar `opacity`

These rules were added in dc2c972334 to work with CSS transitions. They're otherwise redundant, since the `visibility` property already hides everything.

dc2c972334/src/librustdoc/html/static/css/rustdoc.css (L350-L354)

The transition was remove with 237d62588d, but the now-redundant `opacity` property was not.
2022-09-30 10:22:38 +02:00
Matthias Krüger
c4a1876900
Rollup merge of #102481 - notriddle:notriddle/rust-example-rendered, r=GuillaumeGomez
rustdoc: remove unneeded CSS `.rust-example-rendered { position }`

The Run button isn't inside the `<pre>` any more. It's instead nested below the example wrapper.

The class name can't be removed from the DOM, because `main.js` uses it.
2022-09-30 10:22:38 +02:00
Michael Howell
19b297c6e1 rustdoc: remove no-op CSS h3.variant, .sub-variant h4 { border-bottom: none }
This rule, added in 69df43b041 to override the
default `h4` style, has been obsoleted when
a65c98fefb changed it so that only the top
docblock put `border-bottom` on `h4.`
2022-09-30 00:00:54 -07:00
Michael Howell
6d02a4dc33 rustdoc: remove no-op source sidebar opacity
These rules were added in dc2c972334 to work
with CSS transitions. They're otherwise redundant, since the `visibility`
property already hides everything.

dc2c972334/src/librustdoc/html/static/css/rustdoc.css (L350-L354)

The transition was remove with 237d62588d, but
the now-redundant `opacity` property was not.
2022-09-29 15:33:02 -07:00
Michael Howell
8a73397a62
Rollup merge of #102447 - notriddle:notriddle/method-toggle, r=jsha
rustdoc: add method spacing to trait methods

More cleanup for 8846c0853d, this time in trait layouts when things are collapsed.

This PR makes two changes to the appearance of trait pages:

* It adds the `method-toggle` class to method toggles on traits, making the DOM more consistent with type pages (which already have this class).

  ## Before

  ![image](https://user-images.githubusercontent.com/1593513/192914353-ed17e1eb-df1d-480b-9998-3b5e8283b0ee.png)

  ## After

  ![image](https://user-images.githubusercontent.com/1593513/192914570-bdd0f2e1-5254-4e2e-9576-a797b82b3b3b.png)

* It adds a bottom margin to docblocks nested directly in the implementors list, giving it a similar appearance to if it was nested within a toggle.

  ## Before

  ![image](https://user-images.githubusercontent.com/1593513/192914503-1c3f39d5-690f-44ec-8f11-385302477d04.png)

  ## After

  ![image](https://user-images.githubusercontent.com/1593513/192914702-cbce4b3b-5cc6-49dc-b7f8-73be9e76791c.png)
2022-09-29 10:15:19 -07:00
Michael Howell
e5fffbeeb4
Rollup merge of #102442 - notriddle:notriddle/header-weight, r=GuillaumeGomez
rustdoc: remove bad CSS font-weight on `.impl`, `.method`, etc

This line was added in c494a06064, because at the time, the headers had these classes on them. Now, the headers are children of the `<section>` with the class on it.

This commit also adds a test case, to make sure the srclink font weight does not regress again.
2022-09-29 10:15:19 -07:00
Michael Howell
565d3a8c89
Rollup merge of #102437 - notriddle:notriddle/margin-top-h2, r=jsha
rustdoc: cut margin-top from first header in docblock

Fixes a regression caused by 8846c0853d, where a header's top margin used to be collapsed, but isn't any more.

## Before

![image](https://user-images.githubusercontent.com/1593513/192893092-8e158bf7-ae18-41ef-8f11-6f34c724d345.png)

## After

![image](https://user-images.githubusercontent.com/1593513/192893139-d6ee06bf-9c0b-4194-bd5d-636312c89367.png)
2022-09-29 10:15:18 -07:00
Michael Howell
52a71698fe rustdoc: remove unneeded CSS .rust-example-rendered { position }
The Run button isn't inside the `<pre>` any more. It's instead nested below
the example wrapper.

The class name can't be removed from the DOM, because `main.js` uses it.
2022-09-29 10:08:12 -07:00
Dylan DPC
5f18c2bd10
Rollup merge of #102436 - notriddle:notriddle/normalize-form, r=GuillaumeGomez
rustdoc: clean up "normalize.css 8" input override CSS

These rules were copied from normalize.css 3, and are mostly redundant.

* `optgroup` isn't used in rustdoc at all
* `textarea` is only used for the "copy" button, so it's not visible
* The remaining buttons and inputs mostly have styles set anyway.
* We should never be setting `color` without also setting the background to something. Otherwise, you get white-on-gray text. That seems to be [the reason] why `normalize.css` changed this.

[the reason]: https://github.com/necolas/normalize.css/pull/502
2022-09-29 18:13:21 +05:30
Michael Howell
0b9b4b7068 rustdoc: add method spacing to trait methods
More cleanup for 8846c0853d, this time in trait
layouts when things are collapsed.
2022-09-28 21:11:40 -07:00
Michael Howell
3f21f07e72 rustdoc: remove bad CSS font-weight on .impl, .method, etc
This line was added in c494a06064, because at
the time, the headers had these classes on them. Now, the headers are
children of the `<section>` with the class on it.

This commit also adds a test case, to make sure the srclink font weight does
not regress again.
2022-09-28 16:18:12 -07:00
Michael Howell
f55ea418c3 rustdoc: clean up "normalize.css 8" input override CSS
These rules were copied from normalize.css 3, and are mostly redundant.

* `optgroup` isn't used in rustdoc at all
* `textarea` is only used for the "copy" button, so it's not visible
* The remaining buttons and inputs mostly have styles set anyway.
* We should never be setting `color` without also setting the
  background to something. Otherwise, you get white-on-gray
  text. That seems to be [the reason] why `normalize.css` changed this.

[the reason]: https://github.com/necolas/normalize.css/pull/502
2022-09-28 15:39:27 -07:00
bors
b30c88623c Auto merge of #102384 - camelid:extrainfo, r=GuillaumeGomez
rustdoc: Remove `clean::TraitWithExtraInfo` and queryify `is_notable_trait`

cc `@notriddle` `@GuillaumeGomez`
2022-09-28 22:15:28 +00:00
Michael Howell
b707eff5cc rustdoc: cut margin-top from first header in docblock
Fixes a regression caused by 8846c0853d, where
a header's top margin used to be collapsed, but isn't any more.
2022-09-28 14:33:56 -07:00
bors
6201eabde8 Auto merge of #102302 - nnethercote:more-lexer-improvements, r=matklad
More lexer improvements

A follow-up to #99884.

r? `@matklad`
2022-09-28 08:14:04 +00:00
Yuki Okushi
ce15514df9
Rollup merge of #102380 - notriddle:notriddle/rustdoc-source-sidebar, r=camelid
rustdoc: remove redundant mobile `.source > .sidebar` CSS

When the source sidebar and standard sidebar had most of their code merged in 07e3f998b1, the properties `z-index: 11`, `margin: 0`, and `position: fixed` were already being set on the `.sidebar` class, so no need to repeat them.

57ee5cf5a9/src/librustdoc/html/static/css/rustdoc.css (L1742-L1754)
2022-09-28 13:07:20 +09:00