Commit graph

2918 commits

Author SHA1 Message Date
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
Josh Stone
2325c20925 Avoid unused Option::map results
These are changes that would be needed if we add `#[must_use]` to
`Option::map`, per #71484.
2020-04-24 13:58:41 -07:00
marmeladema
b9ba521e95 Fix librustdoc error due to as_local_hir_id changes 2020-04-23 23:41:47 +01:00
Guillaume Gomez
977603cd1f Update LangString::parse usage in markdown tests 2020-04-23 17:02:37 +02:00
Guillaume Gomez
c687d0490e Create new rustdoc lint to check for code blocks tags 2020-04-23 14:30:30 +02:00
Dylan DPC
2f06ac08e9
Rollup merge of #71250 - GuillaumeGomez:use-json-instead-of-js, r=kinnison
Replace big JS dict with JSON parsing

Part of #56545.

@ollie27 suggested that using JSON instead of a JS dict might be faster, so I decided to test it. And the results far exceeded whatever expectations I had...

I used https://github.com/adamgreig/stm32ral for my tests. If you want to build it locally:

```bash
$ cargo doc --features doc --open
```

But I strongly recommend to do it with this PR. Some numbers:

 * Loading a page with the JSON search-index: less than 1 second
 * Loading a page with the JS search-index: crashed after 30 seconds

I think the results are clear enough...

r? @ollie27

cc @rust-lang/rustdoc
2020-04-20 18:07:05 +02:00
Guillaume Gomez
b4fb3069ce Replace big JS dict with JSON parsing 2020-04-17 18:09:04 +02:00
Josh Stone
554847c513 Dogfood or_patterns in rustdoc 2020-04-16 13:58:47 -07:00
Dylan DPC
9433d899a7
Rollup merge of #70990 - GuillaumeGomez:rustdoc-cleanup, r=ollie27
Improve rustdoc source code a bit

Very small clean up. I realized that there were too many nested conditions whereas we could just use `and_then`.

r? @kinnison

cc @ollie27
2020-04-16 00:39:24 +02:00
Dylan DPC
3f61c730d4
Rollup merge of #70656 - GuillaumeGomez:scrollbar-display, r=kinnison
Improve scrollbar display in rustdoc

The scrollbar of the left sidebar in rustdoc looks very bad on firefox (on dark theme). This PR improves it:

<div style="display:inline-block;">
<div style="width:50%;display:inline-block;float:left;">
<image src="https://user-images.githubusercontent.com/3050060/78148412-202b0380-7435-11ea-8ff3-79f02ea8f9ed.png">
</div>
<div style="width:50%;display:inline-block;float:left;">
<image src="https://user-images.githubusercontent.com/3050060/78148437-28833e80-7435-11ea-946b-a6fc9320b705.png">
</div>
</div>

With light theme:

![old-firefox-light](https://user-images.githubusercontent.com/3050060/78148718-7bf58c80-7435-11ea-93d3-2a2cafd5c6ae.png)
![firefox-light](https://user-images.githubusercontent.com/3050060/78148736-7f891380-7435-11ea-8b10-a8898f73b4c9.png)

And on chrome:

![chrome-light](https://user-images.githubusercontent.com/3050060/78148903-ac3d2b00-7435-11ea-9a10-6c0376a675c3.png)
![chrome-dark](https://user-images.githubusercontent.com/3050060/78148907-ae9f8500-7435-11ea-9b89-0397b977753c.png)

Small extra question: should I extend it to all scrollbars? I think it'd be better but just in case...

r? @kinnison
2020-04-13 20:23:27 +02:00
Guillaume Gomez
12a95482c1 Improve rustdoc source code a bit 2020-04-10 16:43:00 +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
Guillaume Gomez
cbee6c5f0c Extend sidebar scrollbar changes to all scrollbars 2020-04-07 22:10:17 +02:00
Guillaume Gomez
e1aa88c6a0 Improve scrollbar display in rustdoc 2020-04-07 17:50:39 +02: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
0xd4d
6d886aff35
Fix rustdoc.css CSS tab-size property 2020-03-28 11:49:12 +01:00
Matthias Krüger
74d68ea7eb don't create variable bindings just to return the bound value immediately (clippy::let_and_return) 2020-03-22 00:35:25 +01: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
Mazdak Farrokhzad
637233dfee
Rollup merge of #70005 - GuillaumeGomez:code-block-signs, r=kinnison
[rustdoc] Improve visibility for code blocks warnings

It appeared that a lot of people didn't notice when a code block was meant to fail compilation or wasn't tested at all. The changes here make the colors less transparent and the icon bigger. So before it looked like this:

![old-light](https://user-images.githubusercontent.com/3050060/76687070-f1cdbb80-6620-11ea-9b73-0c787dc671f7.png)
![old-dark](https://user-images.githubusercontent.com/3050060/76687079-f4c8ac00-6620-11ea-90fb-e548329e01b4.png)

And now it looks like this:

![new-light](https://user-images.githubusercontent.com/3050060/76687092-fd20e700-6620-11ea-9ebb-2b6852f00899.png)
![new-dark](https://user-images.githubusercontent.com/3050060/76687091-fd20e700-6620-11ea-8fea-6854c8367b97.png)

cc @rust-lang/rustdoc
r? @kinnison
2020-03-19 06:57:39 +01:00
Guillaume Gomez
9a017da459 Update rustdoc test and remove TODO comment 2020-03-17 20:58:31 +01:00
Guillaume Gomez
496256c561 Update src/librustdoc/html/static/main.js
Fix variable name

Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2020-03-16 18:30:26 +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
Guillaume Gomez
d4ea327f24 Make ignore and compile fail signs more visible 2020-03-14 18:17:08 +01: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
0d7faaf6bd rustdoc: remove redundant static lifetimes (clippy::redundant_static_lifetimes) 2020-03-07 21:48:17 +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
7aad89a900 Use ?-operator in more places (clippy::question_mark, had some false negatives fixed recently) 2020-03-07 21:46:47 +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
Matthias Krüger
9fa79813f9 rustdoc: don't call into_iter() on iterator. (clippy::identity_conversion) 2020-03-07 21:46:47 +01:00
Matthias Krüger
136ad015b6 fix various typos 2020-03-06 15:19:31 +01:00
Dylan DPC
67d735c4bf
Rollup merge of #69736 - matthiaskrgr:even_more_clippy, r=Dylan-DPC
even more clippy cleanups

* Don't pass &mut where immutable reference (&) is sufficient (clippy::unnecessary_mut_passed)
* Use more efficient &&str to String conversion (clippy::inefficient_to_string)
* Don't always eval arguments inside .expect(), use unwrap_or_else and closure. (clippy::expect_fun_call)
* Use righthand '&' instead of lefthand "ref". (clippy::toplevel_ref_arg)
* Use simple 'for i in x' loops instead of 'while let Some(i) = x.next()' loops on iterators. (clippy::while_let_on_iterator)
* Const items have by default a static lifetime, there's no need to annotate it. (clippy::redundant_static_lifetimes)
* Remove redundant patterns when matching ( x @ _  to  x) (clippy::redundant_pattern)
2020-03-05 22:04:10 +01:00
Matthias Krüger
3e70c8ec2f Use simple 'for i in x' loops instead of 'while let Some(x) = x.next()' loops on iterators. (clippy::while_let_on_iterator) 2020-03-05 16:38:48 +01:00
Matthias Krüger
c2bbe3349f Const items have by default a static lifetime, there's no need to annotate it. (clippy::redundant_static_lifetimes) 2020-03-05 16:38:24 +01:00
Matthias Krüger
edd3e175d6 Remove redundant patterns when matching ( x @ _ to x) (clippy::redundant_pattern) 2020-03-05 16:30:43 +01:00
Matthias Krüger
38f5db7268 Use .as_deref() instead of .as_ref().map(Deref::deref) (clippy::option_as_ref_deref) 2020-03-04 20:39:22 +01:00
Guillaume Gomez
8858d71d28 Put back output-format option for show-coverage 2020-03-02 13:15:51 +01:00
Dylan DPC
22a03913f4
Rollup merge of #69598 - ollie27:rustdoc_crate-version_escape, r=GuillaumeGomez
rustdoc: HTML escape crate version

As `--crate-version` accepts arbitrary strings they need to be escaped.

r? @GuillaumeGomez
2020-03-01 17:23:34 +01:00
bors
2917d99302 Auto merge of #69592 - petrochenkov:nosyntax, r=Centril
Rename `libsyntax` to `librustc_ast`

This was the last rustc crate that wasn't following the `rustc_*` naming convention.

Follow-up to https://github.com/rust-lang/rust/pull/67763.
2020-03-01 01:36:58 +00:00
Oliver Middleton
3c97f8ad12 rustdoc: HTML escape crate version
As `--crate-version` accepts arbitrary strings they need to be escaped.
2020-03-01 00:15:44 +00:00
Vadim Petrochenkov
e08c279eac Rename syntax to rustc_ast in source code 2020-02-29 21:59:09 +03:00