Commit Graph

105 Commits

Author SHA1 Message Date
klensy
678059f7d0 fix simple clippy lints 2022-05-24 12:24:41 -04:00
Jacob Pratt
6970246886 Remove crate visibility modifier in libs, tests 2022-05-21 00:32:47 -04:00
Guillaume Gomez
72496d88d3 Move some DOM generation into the HTML settings file directly 2022-05-18 11:40:15 +02:00
Guillaume Gomez
84615e868b Add missing CSS file for settings page 2022-05-11 11:27:00 +02:00
Guillaume Gomez
9625ed8be7 Move settings into full JS 2022-04-30 13:12:41 +02:00
Guillaume Gomez
b1e6211c5c Rename def_id into item_id when the type is ItemId for readability 2022-04-16 14:28:09 +02:00
Will Crichton
d1416d528a Add scrape examples help page 2022-03-27 18:11:57 -07:00
est31
565f644edf librustdoc: adopt let else in more places 2022-03-04 10:33:29 +01:00
Guillaume Gomez
a849857bda Prevent generation of infinite redirections 2022-02-22 16:18:18 +01:00
Guillaume Gomez
bc4b0a774c Fix macro reexports duplicates in the sidebar 2022-02-14 21:43:12 +01:00
Jacob Hoffman-Andrews
6a5f8b1aef Simplify and unify rustdoc sidebar styles
This switches to just use size, weight, and spacing to distinguish
headings in the sidebar. We no longer use boxes, horizontal bars, or
centering to distinguish headings. This makes it much easier to
understand the hierarchy of headings, and reduces visual noise.

I also refactored how the mobile topbar works. Previously, we tried to
shift around elements from the sidebar to make the topbar. Now, the
topbar gets its own elements, which can be styled on their own. This
makes styling and reasoning about those elements simpler.

Because the heading font sizes are bigger, increase the sidebar width
slightly.

As a very minor change, removed version from the "All types" page. It's
now only on the crate page.
2022-01-18 10:43:14 -08:00
Nicholas Nethercote
10b1c9aa8b rustdoc: avoid many Symbol to String conversions.
Particularly when constructing file paths and fully qualified paths.
This avoids a lot of allocations, speeding things up on almost all
examples.
2022-01-14 11:57:18 -08:00
bors
e916815d21 Auto merge of #92526 - djc:rustdoc-askama, r=jsha
Migrate rustdoc from Tera to Askama

See #84419.

Should probably get a benchmarking run to verify if it has the intended effect on rustdoc performance.

cc `@jsha` `@jyn514.`
2022-01-13 00:29:34 +00:00
Matthias Krüger
bc0a165240 Rollup merge of #92742 - GuillaumeGomez:missing-suffix-sidebar-items, r=notriddle
Add missing suffix for sidebar-items script path

Fixes https://github.com/rust-lang/docs.rs/issues/1590.

r? ```@syphar```
2022-01-12 07:12:15 +01:00
Guillaume Gomez
881b427fa3 Add missing suffix for sidebar-items script path 2022-01-10 21:01:09 +01:00
Dirkjan Ochtman
ef96d573bf Remove configuration which became unused in 8abb4bb698 2022-01-10 18:40:57 +01:00
Dirkjan Ochtman
93a16cb7e2 Migrate rustdoc from Tera to Askama
See #84419.
2022-01-10 18:40:54 +01:00
Jacob Hoffman-Andrews
962c0a4ee5 Make source links look cleaner
Change from syntaxy-looking [src] to the plain word "source".
2022-01-08 09:49:41 -05:00
Noah Lev
2b801dcdd3 Move ExternalLocation to clean::types
It was previously defined in `render::search_index` but wasn't used at
all there. `clean::types` seems like a better fit since that's where
`ExternalCrate` is defined.
2021-12-27 18:57:07 -08:00
Noah Lev
60a1abe4c5 Rename rustdoc::html::render::cache to search_index
The old name wasn't very clear, while the new one makes it clear that
this is the code responsible for creating the search index.
2021-12-27 18:42:13 -08:00
Matthias Krüger
051d91a5ce Rollup merge of #92146 - willcrichton:example-analyzer, r=jyn514
Don't emit shared files when scraping examples from dependencies in Rustdoc

This PR fixes #91605. The issue is that `Context::init` gets called when scraping dependencies. By default, just calling `init` calls into `write_shared` and `build_index` which register the scraped crate into a list that later gets used for the Rustdoc sidebar. The fix is to ensure that `write_shared` is not called when scraping.

r? `@jyn514`
2021-12-23 00:28:55 +01:00
bors
41c3017c82 Auto merge of #92099 - matthiaskrgr:rollup-4gwv67m, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #91141 (Revert "Temporarily rename int_roundings functions to avoid conflicts")
 - #91984 (Remove `in_band_lifetimes` from `rustc_middle`)
 - #92028 (Sync portable-simd to fix libcore build for AVX-512 enabled targets)
 - #92042 (Enable `#[thread_local]` for all windows-msvc targets)
 - #92071 (Update example code for Vec::splice to change the length)
 - #92077 (rustdoc: Remove unused `collapsed` field)
 - #92081 (rustdoc: Remove unnecessary `need_backline` function)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2021-12-19 12:36:56 +00:00
Joshua Nelson
dea1c68614 Remove collapsed field
`render/context` always runs after `run_global_context`, so it was always set to `true`.

This is a holdover from when rustdoc allowed configuring passes, but the `collapse-docs` pass was
removed ages ago, and the ability to configure passes is about to be removed.
2021-12-18 10:47:54 -06:00
Nicholas Nethercote
056d48a2c9 Remove unnecessary sigils around Symbol::as_str() calls. 2021-12-15 17:32:14 +11:00
Nicholas Nethercote
8cddcd39ba Remove SymbolStr.
By changing `as_str()` to take `&self` instead of `self`, we can just
return `&str`. We're still lying about lifetimes, but it's a smaller lie
than before, where `SymbolStr` contained a (fake) `&'static str`!
2021-12-15 13:30:26 +11:00
Will Crichton
b7de7973b2 Don't emit shared files when scraping dependencies 2021-12-11 10:13:16 -08:00
Jacob Hoffman-Andrews
3649b90b33 Simplify rendering of stylesheet links into HTML
We carry around a list of stylesheets that can carry two different types
of thing:

 1. Internal stylesheets specific to a page type (only for settings)
 2. Themes

In this change I move the link generation for settings.css into
settings(), so Context.style_files is reserved just for themes.

We had two places where we extracted a base theme name from a list of
StylePaths. I consolidated that code to be a method on StylePath.

I moved generation of link tags for stylesheets into the page.html
template. With that change, I made the template responsible for special
handling of light.css (making it the default theme) and of the other
themes (marking them disabled). That allowed getting rid of the
`disabled` field on StylePath.
2021-11-24 19:41:47 -08:00
Noah Lev
6215f7c85f Clean up now that visitors only need &clean::Crate 2021-10-31 20:59:22 -07:00
bors
38b01d9065 Auto merge of #90391 - camelid:crate-size, r=jyn514
rustdoc: Compute some fields of `clean::Crate` on-demand to reduce size

`clean::Crate` is frequently moved by-value -- for example, in `DocFolder`
implementations -- so reducing its size should improve performance.

This PR reduces the size of `clean::Crate` from 168 bytes to 104 bytes.

r? `@jyn514`
2021-10-31 05:52:42 +00:00
Guillaume Gomez
73494404e9 Rollup merge of #90183 - GuillaumeGomez:recurse-deref, r=jyn514
Show all Deref implementations recursively

Fixes #87783.

This is a re-implementation of #80653, so taking the original PR comment:

This changes `rustdoc` to recursively follow `Deref` targets so that methods from all levels are added to the rendered output. This implementation displays the methods from all levels in the expanded state with separate sections for each level.

![image](https://user-images.githubusercontent.com/279572/103482863-46723b00-4ddb-11eb-972b-c463351a425c.png)

cc `@camelid`
r? `@jyn514`
2021-10-30 20:30:26 +02:00
Noah Lev
ebe9a11f71 rustdoc: Remove Crate.name and instead compute it on-demand
It is not as large as `Crate.src` was, but it's still 8 bytes, and
`clean::Crate` is moved by-value a lot.
2021-10-30 11:16:24 -07:00
Noah Lev
85f8ae8ec4 rustdoc: Remove Crate.src and instead compute it on-demand
It is only used in one place; `src` was about a third of `Crate`'s total
size; `Crate` is frequently moved by-value; and `src` can be easily
computed on-demand.
2021-10-30 11:16:00 -07:00
Joshua Nelson
b6851ba3c9 Remove unnecessary macro_uses in rustdoc 2021-10-30 02:22:38 +00:00
Guillaume Gomez
3398877858 Remove the Rc wrapping of deref_id_map 2021-10-29 14:25:15 +02:00
Guillaume Gomez
8a473ca346 Recursively document Deref 2021-10-29 14:14:46 +02:00
Guillaume Gomez
4614ca4541 Fix clippy lints in librustdoc 2021-10-25 11:30:09 +02:00
Matthias Krüger
dcf9242795 Rollup merge of #85833 - willcrichton:example-analyzer, r=jyn514
Scrape code examples from examples/ directory for Rustdoc

Adds support for the functionality described in https://github.com/rust-lang/rfcs/pull/3123

Matching changes to Cargo are here: https://github.com/rust-lang/cargo/pull/9525

Live demo here: https://willcrichton.net/example-analyzer/warp/trait.Filter.html#method.and
2021-10-23 14:58:39 +02:00
Jacob Hoffman-Andrews
586a9cea75 Move template initialization into its own file. 2021-10-08 23:28:42 -07:00
Jacob Hoffman-Andrews
7a938005e1 Add template for print_item
Add print_item.html and the code in print_item.rs to use it.
2021-10-08 23:02:12 -07:00
Will Crichton
e22e858687 Move more scrape-examples logic from JS to rust
Fix failing test

Add missing backslash

Fix padding issue with horizontal scrollbar
2021-10-08 11:14:01 -07:00
Will Crichton
55731bbc7d Fix lint error, change scrape-examples.js minify call 2021-10-06 19:45:26 -07:00
Will Crichton
25323ec306 Move JS into a standalone file 2021-10-06 19:45:26 -07:00
Will Crichton
829b1a9dd9 Incorporate jyn's feedback
* Move call location logic from function constructor to rendering
* Fix issue with macro spans in scraping examples
* Clean up example loading logic

Documentation / newtype for DecorationInfo

Fix line number display

Serialize edition of call site, other small cleanup
2021-10-06 19:45:23 -07:00
Will Crichton
18edcf86d2 Reduce blur size, fix example width bug, add better error handling for I/O issues
Remove repository url

Fix formatting

Fix file_span in print_src

Formatting
2021-10-06 19:44:51 -07:00
Will Crichton
b6338e7792 Generate example source files with corresponding links
Add display name

Fix remaining merge conflicts

Only embed code for items containing examples
2021-10-06 19:44:50 -07:00
Will Crichton
4b3f82ad03 Add updated support for example-analyzer
Move rendering of examples into

Finalize design

Cleanup, rename found -> scraped

Softer yellow

Clean up dead code

Document scrape_examples

More simplification and documentation

Remove extra css

Test
2021-10-06 19:44:47 -07:00
bors
d1d8145dff Auto merge of #88219 - jyn514:parallel-io, r=GuillaumeGomez
rustdoc: reduce number of copies when using parallel IO

This is Windows-only for now; I was getting really bad slowdowns from this on linux for some reason.

Helps with https://github.com/rust-lang/rust/issues/82741. Follow-up to https://github.com/rust-lang/rust/pull/60971.
2021-09-16 13:47:55 +00:00
Harald van Dijk
cd75af25e0 Change more x64 size checks to not apply to x32.
Commit 95e096d6 changed a bunch of size checks already, but more have
been added, so this fixes the new ones the same way: the various size
checks that are conditional on target_arch = "x86_64" were not intended
to apply to x86_64-unknown-linux-gnux32, so add
target_pointer_width = "64" to the conditions.
2021-09-05 16:42:36 +01:00
Joshua Nelson
5651192460 Remove unnecessary copies when using parallel IO
Previously, rustdoc was making lots of copies of temporary owned values.
Now, it uses the owned value wherever possible.
2021-08-26 17:06:52 +00:00
Joshua Nelson
90ac1ab26a Move Cache from Context to SharedContext 2021-08-22 03:38:04 +00:00