DaniPopes
b410f3f7ae
Fix typos in librustdoc
2023-04-10 21:02:29 +02:00
Michael Howell
c325fda0bf
rustdoc: migrate item_union to an Askama template
2023-04-05 07:49:30 -07:00
Michael Howell
19f9f658d6
rustdoc: migrate document functions to return a Display
2023-04-03 17:17:39 -07:00
Michael Howell
94faa5c739
rustdoc: convert render_attributes_in_pre to return a Display
2023-04-03 15:42:01 -07:00
Michael Howell
fc5de13d31
rustdoc: convert print_tuple_struct_fields to return a Display
2023-04-03 15:31:07 -07:00
Matthias Krüger
8ef3bf29fe
a couple clippy::complexity fixes
...
map_identity
filter_next
option_as_ref_deref
unnecessary_find_map
redundant_slicing
unnecessary_unwrap
bool_comparison
derivable_impls
manual_flatten
needless_borrowed_reference
2023-04-01 23:16:33 +02:00
Ezra Shaw
e0ec9c0b9c
rustdoc: tweak some variants omitted
...
Don't display `// some variants omitted` if enum is marked
`#[non_exhaustive]`
2023-03-26 18:05:42 +13:00
bors
d012d2f96e
Auto merge of #109399 - petrochenkov:rendersort, r=GuillaumeGomez
...
rustdoc: Optimize impl sorting during rendering
This should fix the perf regression on [bitmaps-3.1.0](https://github.com/rust-lang/rustc-perf/tree/master/collector/compile-benchmarks/bitmaps-3.1.0 ) from https://github.com/rust-lang/rust/pull/107765 .
The bitmaps crate has a lot of impls:
```rust
impl Bits for BitsImpl<1> { ... }
impl Bits for BitsImpl<2> { ... }
// ...
impl Bits for BitsImpl<1023> { ... }
impl Bits for BitsImpl<1024> { ... }
```
and the logic in `fn print_item` sorts them in natural order.
Before https://github.com/rust-lang/rust/pull/107765 the impls came in source order, which happened to be already sorted in the necessary way.
So the comparison function was called fewer times.
After https://github.com/rust-lang/rust/pull/107765 the impls came in "stable" order (based on def path hash).
So the comparison function was called more times to sort them.
The comparison function was terribly inefficient, so it caused a large perf regression.
This PR attempts to make it more efficient by using cached keys during sorting.
2023-03-24 23:41:53 +00:00
Matthias Krüger
0392e2996e
Rollup merge of #108954 - notriddle:notriddle/notable-trait-generic, r=camelid
...
rustdoc: handle generics better when matching notable traits
This commit makes the `clean::Type::is_same` non-commutative (renaming it `is_doc_subtype_of`), so that a generic `impl` matches a concrete return, but a generic return does not match a concrete `impl`. It makes slice and vector Write for `u8` not match on every generic return value.
Fixes #100322
Fixes #55082
Preview:
* https://notriddle.com/rustdoc-demo-html-3/notable-trait-generic/std/vec/struct.Vec.html#method.new
* https://notriddle.com/rustdoc-demo-html-3/notable-trait-generic/std/vec/struct.Vec.html#method.from-12
* https://notriddle.com/rustdoc-demo-html-3/notable-trait-generic/std/iter/trait.Iterator.html#method.intersperse_with
* https://notriddle.com/rustdoc-demo-html-3/notable-trait-generic/std/string/struct.String.html#method.as_bytes
2023-03-22 22:44:39 +01:00
Vadim Petrochenkov
4d55affc12
rustdoc: Optimize impl sorting during rendering
2023-03-20 19:43:00 +04:00
klensy
433d243c6e
extra_info_tags don't return string, use display_fn
2023-03-17 18:52:36 +03:00
klensy
1f01433607
clean up few alloc
2023-03-16 20:38:33 +03:00
Matthias Krüger
aa881f16ec
Rollup merge of #108875 - notriddle:notriddle/return-trait, r=GuillaumeGomez
...
rustdoc: fix type search for `Option` combinators
2023-03-16 08:57:05 +01:00
Michael Howell
86179c4549
rustdoc: rename Type::is_same to is_doc_subtype_of
2023-03-12 17:45:15 -07:00
Matthias Krüger
25794194fa
Rollup merge of #108784 - clubby789:askama-sidebar, r=jsha,GuillaumeGomez
...
rustdoc: Migrate sidebar rendering to Askama
cc #108757
Renders the sidebar for documentation using an Askama template
2023-03-11 12:55:43 +01:00
Matthias Krüger
949c553100
Rollup merge of #108757 - clubby789:askama-move, r=notriddle,jsha,GuillaumeGomez
...
rustdoc: Migrate `document_item_info` to Askama
https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/rustdoc.20allocations.20are.20slow
Hoping to piece-by-piece migrate things to template. Had a few failed attempts at more complex parts of the code, so this is just a start.
2023-03-11 12:55:42 +01:00
Matthias Krüger
8596751f3b
Rollup merge of #107629 - pitaj:rustdoc-search-deprecated, r=jsha
...
rustdoc: sort deprecated items lower in search
closes #98759
### Screenshots
`i32::MAX` show sup above `std::i32::MAX` and `core::i32::MAX`

If just searching for `min`, the deprecated results show up far below other things:

one page later

~~And, as you can see, the "Deprecation planned" message shows up in the search results. The same is true for fully-deprecated items like `mem::uninitialized`:
~~
Edit: the deprecation message change was removed from this PR. Only the sorting is changed.
2023-03-11 12:55:41 +01:00
clubby789
2f166d1a15
Render doc sidebar using Askama
2023-03-10 20:21:45 +00:00
clubby789
bb37b600b3
Migrate document_item_info to templates
2023-03-10 20:18:38 +00:00
Peter Jaszkowiak
d2e4b59e60
rustdoc: sort deprecated items lower in search
...
serialize `q` (`itemPaths`) sparsely
overall 4% reduction in search index size
2023-03-10 12:20:38 -07:00
Michael Howell
ee6b228b6a
rustdoc: handle generics better when matching notable traits
...
This commit makes the `clean::Type::is_same` non-commutative, so
that a generic `impl` matches a concrete return, but a generic return
does not match a concrete `impl`. It makes slice and vector Write
for `u8` not match on every generic return value.
2023-03-09 14:18:12 -07:00
Matthias Krüger
5b3f84d8af
Rollup merge of #108929 - eltociear:patch-20, r=GuillaumeGomez
...
Fix typo in span_map.rs
correspondance -> correspondence
2023-03-09 12:11:55 +01:00
Matthias Krüger
83791f9de7
Rollup merge of #106915 - notriddle:notriddle/load-only-one-theme, r=GuillaumeGomez,jsha
...
Only load one CSS theme by default
This is a tweaked version of #103971 that uses `document.write` to create the stylesheet link at startup, avoiding a FOUC during page navigation. It also rebases the PR, making it work with the new hashed filenames.
Fixes #82614
Preview: http://notriddle.com/notriddle-rustdoc-demos/load-only-one-theme-v2/std/index.html
2023-03-09 12:11:52 +01:00
Ikko Eltociear Ashimine
18667722e2
Fix typo in span_map.rs
...
correspondance -> correspondence
2023-03-09 14:47:42 +09:00
Matthias Krüger
6c91ce27c3
Rollup merge of #108686 - notriddle:notriddle/jank-all, r=jsha
...
rustdoc: include link on all.html location header
This avoids a subtle layout shift when switching from the crate page to all items.
## Before
| index.html | all.html |
|------------|----------|
|  |  |
## After
| index.html | all.html |
|------------|----------|
|  |  |
2023-03-08 21:24:50 +01:00
Michael Howell
f916681d8d
Only load one CSS theme by default
...
To avoid generating a FOUC at startup, this commit uses `document.write` to
load the stylesheet initially.
Co-Authored-By: Guillaume Gomez <guillaume1.gomez@gmail.com>
2023-03-08 12:49:34 -07:00
Michael Howell
44813e038c
rustdoc: fix type search when more than one where clause applies
2023-03-07 11:37:04 -07:00
Michael Howell
a6446c53fe
rustdoc: fix type search index for fn<T>() -> &T where T: Trait
2023-03-07 11:20:49 -07:00
Matthias Krüger
99fad38b19
Rollup merge of #108734 - clubby789:rustdoc-layout-uninhabited, r=GuillaumeGomez
...
rustdoc: Note in a type's layout/size if it is uninhabited
Closes #87008

2023-03-04 20:48:19 +01:00
Michael Howell
af664be423
rustdoc: include link on all.html location header
...
This avoids a subtle layout shift when switching from the crate page
to all items.
2023-03-04 11:54:28 -07:00
Michael Howell
9d27028391
rustdoc: function signature search with traits in where clause
2023-03-04 09:05:57 -07:00
clubby789
7520155e4e
rustdoc: Note in a type's layout/size if it is uninhabited
2023-03-04 12:07:29 +00:00
Dylan DPC
4165de40f8
Rollup merge of #107783 - notriddle:notriddle/item-table-ul, r=GuillaumeGomez
...
rustdoc: simplify DOM for `.item-table`
This switches from using `<div>` to the more semantic `<ul>`, and using class names that rhyme with the classes the search results table uses.
2023-02-19 13:03:41 +05:30
Kyle Matsuda
c183110cc2
remove bound_type_of query; make type_of return EarlyBinder; change type_of in metadata
2023-02-16 17:05:56 -07:00
Kyle Matsuda
d822b97a27
change usages of type_of to bound_type_of
2023-02-16 17:01:52 -07:00
Matthias Krüger
09ab35b574
Rollup merge of #108076 - GuillaumeGomez:more-let-chain, r=notriddle
...
rustdoc: Use more let chain
Got the idea after yesterday's review.
r? `@notriddle`
2023-02-15 21:30:59 +01:00
Guillaume Gomez
86fd5a1b44
Use more let chain
2023-02-15 12:00:03 +01:00
Dylan DPC
9800dbe883
Rollup merge of #107163 - mikebenfield:parameters-pr, r=TaKO8Ki
...
Remove some superfluous type parameters from layout.rs.
Specifically remove V, which can always be VariantIdx, and F, which can always be Layout.
2023-02-15 12:24:54 +05:30
Michael Howell
a7b69ddea9
rustdoc: use a string with one-character codes for search index types
...
$ wc -c search-index.old.js search-index.new.js
3940530 search-index.old.js
3843222 search-index.new.js
((3940530-3843222)/3940530)*100 = 2.47%
$ wc -c search-index.old.js.gz search-index.new.js.gz
380251 search-index.old.js.gz
379434 search-index.new.js.gz
((380251-379434)/380251)*100 = 0.214%
2023-02-13 14:27:00 -07:00
Matthias Krüger
3054759fa8
Rollup merge of #107340 - notriddle:notriddle/simplify-doctest-tooltip, r=GuillaumeGomez
...
rustdoc: merge doctest tooltip with notable traits tooltip
Fixes https://discord.com/channels/442252698964721669/443150878111694848/1066420140167680000
<details><summary>a user report where the tooltip arrow overlaps the text</summary>

</details>
Fixes #91100
Preview: <https://notriddle.com/notriddle-rustdoc-demos/simplify-doctest-tooltip/std/vec/struct.Vec.html#indexing >
Screenshot:

2023-02-13 11:34:56 +01:00
Matthias Krüger
9b503325b4
Rollup merge of #107934 - notriddle:notriddle/intra-doc-link-meta-description, r=camelid,GuillaumeGomez
...
rustdoc: account for intra-doc links in `<meta name="description">`
Similar to #86451 , but for the SEO descriptions instead of the search descriptions.
2023-02-12 22:29:48 +01:00
Michael Howell
72b3f46b43
rustdoc: account for intra-doc links in <meta name="description">
2023-02-11 16:10:28 -07:00
Matthias Krüger
240d5e0f68
Rollup merge of #107864 - notriddle:notriddle/rustdoc-write-stutter, r=GuillaumeGomez
...
rustdoc: clean up `write!` calls with less stuttering
2023-02-11 17:18:43 +01:00
Dylan DPC
9af90ffa3c
Rollup merge of #107490 - notriddle:notriddle/rm-sidebar-tooltip, r=GuillaumeGomez
...
rustdoc: remove inconsistently-present sidebar tooltips
Discussed in https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/Inconsistent.20sidebar.20tooltips/near/323565625
2023-02-11 11:15:55 +05:30
Matthias Krüger
d4d1c93730
Rollup merge of #107852 - notriddle:notriddle/rm-tab, r=GuillaumeGomez
...
rustdoc: remove unused fn parameter `tab`
2023-02-10 06:09:58 +01:00
Michael Howell
1a98305b9d
rustdoc: clean up write! calls with less stuttering
2023-02-09 18:13:02 -07:00
Dylan DPC
188dd72b5f
Rollup merge of #107655 - notriddle:notriddle/small-url-encode, r=GuillaumeGomez
...
rustdoc: use the same URL escape rules for fragments as for examples
Carries over improvements from #107284
2023-02-09 23:18:34 +05:30
Michael Howell
792b8464e7
rustdoc: remove unused fn parameter tab
2023-02-09 10:42:42 -07:00
Michael Howell
894c98652c
rustdoc: simplify DOM for .item-table
...
This switches from using `<div>` to the more semantic `<ul>`, and
using class names that rhyme with the classes the search results
table uses.
2023-02-07 19:00:42 -07:00
Roland Strasser
71a147df1f
rustdoc: trait bound formatting
...
rustdoc: fix item-spacer
rustdoc: use proper comment style
rustdoc: change formatting where clauses for traits
rustdoc: remove semicolon from provided methods
update provided methods formatting
2023-02-04 19:10:04 +01:00