| Age | Commit message (Collapse) | Author | Lines |
|
Calculate `span` info on-demand
- Add helper `attr_span` for common reused function
- Stop storing `Span`s on `Item` directly; calculate them on demand instead
- Special case modules, which have different spans depending on whether
you use inner or outer attributes
- Special case impls with fake IDs, which can have either dummy spans (for auto traits) or the DefId of the impl block (for blanket impls)
- Use a fake ID for primitives instead of the ID of the crate; this lets
`source()` know that it should use a dummy span instead of the span of
the crate.
This shrinks `Item` from 48 to 40 bytes.
Helps with https://github.com/rust-lang/rust/issues/76382.
|
|
- Remove `span` field, adding `Item::span()` instead
- Special-case `Impl` and `Module` items
- Use dummy spans for primitive items
|
|
The only bit failing was the module, so change that before removing the
`span` field.
|
|
Revert "rustdoc: Hide `#text` in doc-tests"
See discussion in #84502 - I'm worried that #84445 may cause a lot of breakages if this were to hit stable, so I think it's safer to revert and work on the known correct fix #84478.
|
|
Clean up DOM strings
Follow-up of #84320.
r? ``@jsha``
|
|
rustdoc: Get rid of `clean::TypeKind`
It does exactly the same thing as ItemType.
|
|
rustdoc: Remove unnecessary `is_crate` field from doctree::Module and clean::Module
It can be calculated on-demand even without a TyCtxt.
This also changed `json::conversions::from_item_kind` to take a whole item, which avoids
having to add more and more parameters.
Helps with https://github.com/rust-lang/rust/issues/76382.
r? ```@camelid```
|
|
|
|
This reverts commit af6c3201fc3d5ec2559836454ea4f43eec583fa2.
|
|
Remove unnecessary fields and parameters in rustdoc
r? `@GuillaumeGomez`
|
|
r=Manishearth,Nemo157,GuillaumeGomez
Use details tag for trait implementors.
Part of #83332 and following on from #83337 and #83355.
This removes one category of JS-generated toggles (implementors), and replaces them with a `<details>` tag. This simplifies the JS, and fixes some bugs where things that were supposed to be hidden by the toggle were not hidden. Compare https://hoffman-andrews.com/rust/details-implementors/std/io/trait.Read.html#impl-Read vs https://doc.rust-lang.org/nightly/std/io/trait.Read.html#implementors.
This introduces a `left: -23px` to put the toggle in the correct place, matching the current style for `.collapse-toggle`.
It's worth noting this introduces a slight behavior change: since the entire line is now a `<summary>`, any part of the line is clickable. So for instance, in `impl Read for File`, clicking `impl` or `for` will collapse / expand the docs. Clicking `Read` or `File` still links to the appropriate documentation as before.
|
|
|
|
clean::Module
It can be calculated on-demand even without a TyCtxt.
This also changed `from_item_kind` to take a whole item, which avoids
having to add more and more parameters.
|
|
Prevent control, shift and alt keys to make search input lose focus
Part of #84384.
r? ````@jsha````
|
|
rustdoc: Convert sub-variant toggle to HTML
Instead of creating a JS toggle, this injects details/summary for
sub-variants of enums. This also fixes the CSS so that the toggle button
does not jump when expanding/collapsing.
Takes inspiration from #83337 and should be considered part of #83332. Not quite sure if the `.sub-variant` selectors could be further simplified? AFAICS it is only used in that place, and that does not seem to allow any recursion.
|
|
|
|
rustdoc: Remove most fields from ExternalCrate
Once https://github.com/rust-lang/rust/issues/84304 is fixed, I can get rid of ExternCrate altogether in favor of CrateNum, but in the meantime, this shrinks ExternalCrate quite a lot.
This might hurt compile-times; if it does, I can add `primitive` and `keyword` queries. I expect this to improve compilemem.
Helps with https://github.com/rust-lang/rust/issues/76382.
r? GuillaumeGomez
|
|
rustdoc: Hide `#text` in doc-tests
Since `#![attr]` and `#[attr]` are the only valid syntax that start with `#`, we can just special case those two tokens.
Fixes https://github.com/rust-lang/rust/issues/83284.
|
|
|
|
|
|
|
|
|
|
|
|
It's always `tcx.crate_name(LOCAL_CRATE)`, it doesn't need to be passed
in separately.
|
|
|
|
Since `#![attr]` and `#[attr]` are the only valid syntax that start with `#`, we can just special case those two tokens.
|
|
|
|
Uses flex to fix formatting of h1 at any width
Fixes #84354.
|
|
|
|
|
|
|
|
|
|
This makes Rustdoc titles for items read like
"x in cratename::blah::foo - Rust". Title for modules and other
non-items are unchanged, and still read like
"doccratenameconst::blah::foo - Rust". This makes managing several open
Rustdoc tabs easier.
Closes #84371.
|
|
|
|
rustdoc: Simplify some document functions
* Remove `prefix` param of `document_short/full`, `render_markdown`, as its always an empty string.
* Remove `Option` wrapping of `document_short` `parent`, as its always `Some`.
|
|
rustdoc: Show nag box on IE11
Rustdoc doesn't work on IE11. It's been broken for months, it isn't supported by the [tiered browser support list], it's even more severely broken on other Rust websites, and IE11 doesn't support the `<details>` tag that we want to use.
In the interest of honesty, let's give an actual error message for anyone on IE11.
[tiered browser support list]: https://github.com/rust-lang/rfcs/blob/master/text/1985-tiered-browser-support.md
|
|
Add stability tags to ImportItem.
Fixes #83832.
|
|
This switches from JS-generated toggles to using the HTML <details> tag
for expanding and collapsing entries in the "Implementors" section.
|
|
* Remove `prefix` param of `document_short/full`, `render_markdown`, as its always an empty string.
* Remove `Option` wrapping of `document_short` `parent`, as its always `Some`.
|
|
|
|
Rustdoc doesn't work on IE11. It's been broken for months, it isn't supported
by the [tiered browser support list], it's even more severely broken on other
Rust websites, and IE11 doesn't support the `<details>` tag that we want
to use.
In the interest of honesty, let's give an actual error message for anyone
on IE11.
[tiered browser support list]: https://github.com/rust-lang/rfcs/blob/master/text/1985-tiered-browser-support.md
|
|
Remove unused footer section
I realized yesterday while working on docs.rs that rustdoc was generating a "footer"section that it doesn't use. No need to keep it then.
r? `@jyn514`
|
|
|
|
|
|
|
|
Instead of creating a JS toggle, this injects details/summary for
sub-variants of enums. This also fixes the CSS so that the toggle button
does not jump when expanding/collapsing.
|
|
rustdoc: Reduce visual weight of attributes.
Followup from #83337. As part of that PR, we stopped hiding attributes behind a toggle, because most things have just zero or one attributes. However, this made clear that the current rendering of attributes emphasizes them a lot, which distracts from function signatures. This PR changes their color of attributes to be the same as the toggles, and reduces their font weight.
This also removes `#[lang]` from the list of ALLOWED_ATTRIBUTES. This attribute is an implementation detail rather than part of the public-facing documentation.

Demo at https://hoffman-andrews.com/rust/de-emph-attr/std/string/struct.String.html#method.trim
|
|
The `[+]` in the upper right of a rustdoc page expands or collapses all
toggles on the page. That state is stored across page loads, but is used
inconsistently. This change explicitly stops storing or using the state.
|
|
rustdoc: get rid of CURRENT_DEPTH
Fixes #82742
|
|
|