1
Fork 0
Commit graph

1295 commits

Author SHA1 Message Date
Manish Goregaokar
efad203144
Rollup merge of #74196 - GuillaumeGomez:auto-collapse-implementors, r=Manishearth
Add option to collapse automatically implementors

Fixes #73403

It adds an option (enabled by default) which collapses all implementors impl blocks.

r? @kinnison
cc @rust-lang/rustdoc
2020-07-15 11:01:16 -07:00
Guillaume Gomez
39d99ea6e6 Improve settings wording 2020-07-15 17:40:20 +02:00
Manish Goregaokar
03f565cdbf
Rollup merge of #71237 - Cldfire:rustdoc-ayu-theme, r=GuilliaumeGomez
Add Ayu theme to rustdoc

This is a port of a theme I maintain (https://github.com/Cldfire/ayu-rs) to the native rustdoc theme system. [Ayu](https://github.com/dempfi/ayu) (dark) is a richly-colored dark theme that many people enjoy using across a wide variety of environments.

Corresponds to the Ayu theme in [mdBook](https://github.com/rust-lang/mdBook).

Some screenshots:

![image](https://user-images.githubusercontent.com/13814214/79547087-6c935780-8061-11ea-8a33-38e9472e9fec.png)

![image](https://user-images.githubusercontent.com/13814214/79547150-8339ae80-8061-11ea-97be-9e13a8b275d7.png)

![image](https://user-images.githubusercontent.com/13814214/79547221-98164200-8061-11ea-9649-9b11ccbb33e3.png)

![image](https://user-images.githubusercontent.com/13814214/79547310-b419e380-8061-11ea-9965-d4f90b2280ab.png)

![image](https://user-images.githubusercontent.com/13814214/79547443-e7f50900-8061-11ea-8872-06d74010691e.png)

Note that this pull request also makes some small code changes to allow for disabling theme stylesheets, preventing the rules from all the different themes from conflicting with one another. The only stylesheet that is not disabled is `light.css`; the theming system (quite hackily) switches themes by changing the href on this stylesheet and so permanently disabling all the others works perfectly fine.
2020-07-14 07:38:50 -07:00
Jarek Samic
8c45cf8e60 Add Ayu theme to rustdoc 2020-07-12 14:48:13 -04:00
Jarek Samic
0e89f50f6e Clean up handling of style files in rustdoc
Disable all themes other than `light.css` to prevent rule conflicts
2020-07-12 14:37:22 -04:00
Andy Russell
0979545330
rustdoc: insert newlines between attributes 2020-07-11 11:33:37 -04:00
Tamir Duberstein
62cf767a4a
Avoid "whitelist"
Other terms are more inclusive and precise.
2020-07-10 07:39:28 -04:00
Guillaume Gomez
970174a1e5 Add option to collapse automatically implementors 2020-07-09 21:42:02 +02:00
Manish Goregaokar
38541b742a
Rollup merge of #74107 - nbdd0121:rustdoc, r=GuillaumeGomez
Hide `&mut self` methods from Deref in sidebar if there are no `DerefMut` impl for the type.

This partially addresses #74083.
2020-07-09 11:50:34 -07:00
Gary Guo
e0b69f207b Hide &mut self methods from Deref in sidebar
If there are no `DerefMut` impl for the type.
2020-07-06 20:32:26 +01:00
Guillaume Gomez
e955bebcda Remove render-redirect-pages option in rustdoc 2020-07-02 14:14:59 +02:00
Guillaume Gomez
cdabdfa104 Simplify DOM by removing IDs for code tags 2020-07-02 13:19:04 +02:00
Joshua Nelson
20552c811a Generate docs for links to private items when passed --document-private
- Pass around document_private a lot more
- Add tests
  + Add tests for intra-doc links to private items
  + Add ignored tests for warnings in reference links
2020-06-26 07:23:39 -04:00
Guillaume Gomez
b67bdb5082 Re-order correctly the sections in the sidebar 2020-06-15 15:25:24 +02:00
bors
5fd2f06e99 Auto merge of #72767 - pnkfelix:track-devirtualized-filenames-issue-70924, r=eddyb
Track devirtualized filenames

Split payload of FileName::Real to track both real and virtualized paths.

(Such splits arise from metadata refs into libstd; the virtualized paths look like `/rustc/1.45.0/src/libstd/io/cursor.rs` rather than `/Users/felixklock/Dev/Mozilla/rust.git/src/libstd/io/cursor.rs`)

This way, we can emit the virtual name into things like the like the StableSourceFileId (as was done back before PR #70642) that ends up in incremental build artifacts, while still using the devirtualized file path when we want to access the file.

Fix #70924
2020-05-31 17:14:44 +00:00
Ralf Jung
5f0aefda49
Rollup merge of #72650 - GuillaumeGomez:sort-sidebar-elements, r=kinnison
Sort sidebar elements

r? @kinnison
2020-05-30 23:08:47 +02:00
Felix S. Klock II
da09fd3db0 Split payload of FileName::Real to track both real and virutalized paths.
Such splits arise from metadata refs into libstd.

This way, we can (in a follow on commit) continue to emit the virtual name into
things like the like the StableSourceFileId that ends up in incremetnal build
artifacts, while still using the devirtualized file path when we want to access
the file.

Note that this commit is intended to be a refactoring; the actual fix to the bug
in question is in a follow-on commit.
2020-05-29 23:41:45 -04:00
Guillaume Gomez
5ba5b65367 Sort fields, variants and other unsorted elements in the sidebar 2020-05-27 21:30:33 +02:00
bors
aeca4d6428 Auto merge of #71900 - GuillaumeGomez:clean-up-rustdoc, r=ollie27,kinnison
Clean up rustdoc source code

Fixes #70498.

r? @kinnison

cc @rust-lang/rustdoc
2020-05-26 10:42:41 +00:00
Dylan DPC
154db50d86
Rollup merge of #71724 - GuillaumeGomez:doc-alias-improvements, r=ollie27
Doc alias improvements

After [this message](https://github.com/rust-lang/rust/issues/50146#issuecomment-496601755), I realized that the **doc alias**. So this PR does the followings:

 * Align the alias discovery on items added into the search-index. It brings a few nice advantages:
   * Instead of cloning the data between the two (in rustdoc source code), we now have the search-index one and aliases which reference to the first one. So we go from one big map containing a lot of duplicated data to just integers...
 * In the front-end (main.js), I improved the code around aliases to allow them to go through the same transformation as other items when we show the search results.
 * Improve the search tester in order to perform multiple requests into one file (I think it's better in this case than having a file for each case considering how many there are...)
    * I also had to add the new function inside the tester (`handleAliases`)

Once this PR is merged, I intend to finally stabilize this feature.

r? @ollie27

cc @rust-lang/rustdoc
2020-05-16 02:37:19 +02:00
Guillaume Gomez
883c177abb Move doc alias discovery into the Attributes struct and some code improvements 2020-05-14 11:35:44 +02:00
Dylan DPC
dfa3677bee
Rollup merge of #72109 - matthiaskrgr:cl8ppy, r=Dylan-DPC
Fix clippy warnings

Fixes clippy::{cone_on_copy, filter_next, redundant_closure, single_char_pattern, len_zero,redundant_field_names, useless_format, identity_conversion, map_clone, into_iter_on_ref, needless_return, option_as_ref_deref, unused_unit, unnecessary_mut_passed}

r? @Dylan-DPC
2020-05-11 22:21:08 +02:00
Dylan DPC
dd595fade5
Rollup merge of #72014 - GuillaumeGomez:deprecated-emoji, r=kinnison,ollie27
Deprecated emoji

Fixes #67872.

r? @kinnison

cc @rust-lang/rustdoc
2020-05-11 22:20:51 +02:00
Matthias Krüger
8bfd84539e Fix clippy warnings
Fixes clippy::{cone_on_copy, filter_next, redundant_closure, single_char_pattern, len_zero,redundant_field_names, useless_format, identity_conversion, map_clone, into_iter_on_ref, needless_return, option_as_ref_deref, unused_unit, unnecessary_mut_passed}
2020-05-11 17:13:32 +02:00
Guillaume Gomez
b865db0462 Sort "implementations on foreign types" section in the sidebar 2020-05-09 13:50:24 +02:00
Guillaume Gomez
abbc7365a7 Add emoji for deprecated messages 2020-05-08 15:19:14 +02:00
Guillaume Gomez
7e855b5915 Clean up rustdoc source code 2020-05-08 15:08:15 +02:00
Guillaume Gomez
f581cf7544 Merge aliases and search-index 2020-05-07 20:08:08 +02:00
Guillaume Gomez
cf41b1d3a5 Improve doc alias discovery 2020-05-07 20:08:08 +02:00
Guillaume Gomez
e17f36b82e Replace title "Methods" with "Implementations" 2020-05-05 22:56:23 +02:00
Josh Stone
4282776b1c Replace filter_map().next() calls with find_map()
These are semantically the same, but `find_map()` is more concise.
2020-04-24 20:03:45 -07:00
Guillaume Gomez
b4fb3069ce Replace big JS dict with JSON parsing 2020-04-17 18:09:04 +02:00
Oliver Middleton
6f96dc221c rustdoc: Don't try to load source files from external crates
Local items defined in external macros shouldn't generate rendered source files and should link to the external crate's docs instead.
2020-04-08 18:35:17 +01:00
Matthias Krüger
08f2904dfa more clippy fixes
use is_empty() instead of len comparison (clippy::len_zero)
use if let instead of while let loop that never loops (clippy::never_loop)
remove redundant returns (clippy::needless_return)
remove redundant closures (clippy::redundant_closure)
use if let instead of match and wildcard pattern (clippy::single_match)
don't repeat field names redundantly (clippy::redundant_field_names)
2020-03-31 15:20:05 +02:00
Mazdak Farrokhzad
1ccb0b4a02 rustc -> rustc_middle part 3 (rustfmt) 2020-03-30 07:19:55 +02:00
Mazdak Farrokhzad
0cb9e36090 rustc -> rustc_middle part 2 2020-03-30 07:16:56 +02:00
bors
f4c675c476 Auto merge of #69402 - GuillaumeGomez:extend-search, r=kinnison
Extend search

I realized that when looking for "struct:String" in the rustdoc search for example, the "in arguments" and "returned" tabs were always empty. After some investigation, I realized it was because we only provided the name, and not the type, making it impossible to pass the "type filtering" check.

To resolve this, I added the type alongside the name. Note for the future: we could improve this by instead only registering the path id and use the path dictionary directly. The only problem with that solution (which I already tested) is that it becomes complicated for types in other crates. It'd force us to handle both case with an id and a case with `(name, type)`. I found the current PR big enough to not want to provide it directly. However, I think this is definitely worth it to make it work this way in the future.

About the two tests I added: they don't have much interest except checking that we actually have something returned in the search in the cases of a type filtering with and without literal search.

I also had to update a bit the test script to add the new locally global (haha) variable I created (`NO_TYPE_FILTER`). I added this variable to make the code easier to read than just "-1".

r? @kinnison

cc @ollie27
2020-03-19 16:07:59 +00:00
Guillaume Gomez
9a017da459 Update rustdoc test and remove TODO comment 2020-03-17 20:58:31 +01:00
Guillaume Gomez
d964e60e4f Rename render::Type to improve naming 2020-03-16 18:30:26 +01:00
Guillaume Gomez
5654cde729 formatting 2020-03-16 18:30:26 +01:00
Guillaume Gomez
b9167e6c7d Support type search for arguments and returned types 2020-03-16 18:29:19 +01:00
varkor
c599ec4460 Add FIXME note 2020-03-15 15:11:29 +00:00
varkor
621c42c163 Render full attributes in rustdoc 2020-03-15 15:11:29 +00:00
Yuki Okushi
8e17c8366c
Rollup merge of #69802 - matthiaskrgr:cl1ppy, r=Dylan-DPC
fix more clippy findings

* reduce references on match patterns (clippy::match_ref_pats)
* Use writeln!(fmt, "word") instead of write!(fmt, "word\n") (clippy::write_with_newline)
* libtest: remove redundant argument to writeln!() (clippy::writeln_empty_string)
* remove unneeded mutable references (cippy::unnecessary_mut_passed)
* libtest: declare variables as floats instead of casting them (clippy::unnecessary_cast)
* rustdoc: remove redundant static lifetimes (clippy::redundant_static_lifetimes)
* call .as_deref() instead of .as_ref().map(Deref::deref) (clippy::option_as_ref_deref)
* iterate over a maps values directly. (clippy::for_kv_map)
* rustdoc: simplify boolean condition (clippy::nonminimal_bool)
* Use ?-operator in more places (clippy::question_mark, had some false negatives fixed recently)
* rustdoc: Use .any(p) instead of find(p).is_some(). (clippy::search_is_some)
* rustdoc: don't call into_iter() on iterator. (clippy::identity_conversion)
2020-03-14 04:03:24 +09:00
Mazdak Farrokhzad
741d4ff713
Rollup merge of #66472 - GuillaumeGomez:show-coverage-json, r=ollie27
--show-coverage json

The purpose of this change is to be able to use it as a tool in docs.rs in order to provide some more stats to crates' owners. Eventually even create a badge or something along the line.

r? @QuietMisdreavus
2020-03-11 14:03:42 +01:00
bors
1581278534 Auto merge of #66364 - Centril:cleanup-macro-def, r=petrochenkov,eddyb
Cleanup `rmeta::MacroDef`

Avoid using rountrip parsing in the encoder and in `fn load_macro_untracked`.

The main reason I was interested in this was to remove `rustc_parse` as a dependency of `rustc_metadata` but it seems like this had other benefits as well.

Fixes #49511.

r? @eddyb
cc @matthewjasper @estebank @petrochenkov
2020-03-10 17:12:48 +00:00
Mazdak Farrokhzad
fd302f46dc Store TokenStream in rmeta::MacroDef.
This removes a hack from `load_macro_untracked` in which parsing is used.
2020-03-10 07:26:27 +01:00
Mazdak Farrokhzad
61150353bf
Rollup merge of #69514 - GuillaumeGomez:remove-spotlight, r=kinnison
Remove spotlight

I had a few comments saying that this feature was at best misunderstood or not even used so I decided to organize a poll about on [twitter](https://twitter.com/imperioworld_/status/1232769353503956994). After 87 votes, the result is very clear: it's not useful. Considering the amount of code we have just to run it, I think it's definitely worth it to remove it.

r? @kinnison

cc @ollie27
2020-03-10 06:47:47 +01:00
Matthias Krüger
1351db31fb iterate over a maps values directly. (clippy::for_kv_map) 2020-03-07 21:48:15 +01:00
Matthias Krüger
6bfff8a303 rustdoc: Use .any(p) instead of find(p).is_some(). (clippy::search_is_some) 2020-03-07 21:46:47 +01:00