Commit graph

41 commits

Author SHA1 Message Date
Camelid
5d4a7128d9 Render Markdown in search results
Previously Markdown documentation was not rendered to HTML for search results,
which led to the output not being very readable, particularly for inline code.
This PR fixes that by rendering Markdown to HTML with the help of pulldown-cmark
(the library rustdoc uses to parse Markdown for the main text of documentation).
However, the text for the title attribute (the text shown when you hover over an
element) still uses the plain-text rendering since it is displayed in browsers
as plain-text.

Only these styles will be rendered; everything else is stripped away:

* *italics*
* **bold**
* `inline code`
2020-12-03 14:11:37 -08:00
Joshua Nelson
2a991e18ac Get rid of clean::Method
Replace it instead with `(clean::Function, Option<hir::Defaultness>)`.
2020-11-16 23:20:59 -05:00
Joshua Nelson
d6c16e4253 Make all rustdoc functions and structs crate-private
This gives warnings about dead code.
2020-11-15 11:21:12 -05:00
Joshua Nelson
03cbee84af Rename ItemEnum -> ItemKind, inner -> kind 2020-11-14 03:46:18 -05:00
Nicholas-Baron
261ca04c92 Changed unwrap_or to unwrap_or_else in some places.
The discussion seems to have resolved that this lint is a bit "noisy" in
that applying it in all places would result in a reduction in
readability.

A few of the trivial functions (like `Path::new`) are fine to leave
outside of closures.

The general rule seems to be that anything that is obviously an
allocation (`Box`, `Vec`, `vec![]`) should be in a closure, even if it
is a 0-sized allocation.
2020-11-10 20:07:47 -08:00
Andy Russell
e0822ecdbc
rustdoc: do not use plain summary for trait impls
Fixes #38386.
Fixes #48332.
Fixes #49430.
Fixes #62741.
Fixes #73474.
2020-08-30 12:02:18 -04:00
Guillaume Gomez
d9d84dca8e Add doc examples count for --show-coverage 2020-08-18 13:31:23 +02:00
Vadim Petrochenkov
0a88346be6 rustc_ast: (Nested)MetaItem::check_name -> has_name
For consistency with `Attribute::has_name` which doesn't mark the attribute as used either.

Replace all uses of `check_name` with `has_name` outside of rustc
2020-08-04 00:34:11 +03:00
Joseph Ryan
6a4396b98c
Extract Cache and other types from html module 2020-07-27 16:00:38 -05:00
Joseph Ryan
c692ed468c
Move Error and RenderInfo out of html module 2020-07-27 16:00:38 -05: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
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
e17ac66899 * Update aliases data struct from HashMap to BTreeMap to have more deterministic results
* Update Javascript to take this change into account
* Update CrateData::aliases field to take a reference instead (it allowed to remove a conversion loop)
2020-05-14 11:36:02 +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
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
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
Guillaume Gomez
12a95482c1 Improve rustdoc source code a bit 2020-04-10 16:43:00 +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
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
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
Guillaume Gomez
8858d71d28 Put back output-format option for show-coverage 2020-03-02 13:15:51 +01:00
Matthias Krüger
de7c40c168 use .iter() instead of .into_iter() on references. 2020-02-29 03:14:01 +01:00
Matthias Krüger
7c84ba1124 use char instead of &str for single char patterns 2020-02-27 14:57:22 +01:00
Tom Jakubowski
b60f08bd6d rustdoc: NodeId is now DefId 2020-01-30 13:38:25 +01:00
Guillaume Gomez
6e791464bc remove unneeded code from cache.rs 2020-01-15 15:07:35 +01:00
Guillaume Gomez
81a5b94ac6 formatting 2020-01-15 13:43:09 +01:00
Guillaume Gomez
12f029b7ee Fix deref impl on type alias 2020-01-15 13:43:09 +01:00
Mazdak Farrokhzad
ebfd8673a7 Remove rustc_hir reexports in rustc::hir. 2020-01-05 12:49:22 +01:00
Mazdak Farrokhzad
4ff12ce4c1 Normalize syntax::symbol imports. 2020-01-02 13:57:04 +01:00
Mazdak Farrokhzad
75e4783f63 Normalize syntax::source_map imports. 2020-01-02 13:57:04 +01:00
Mark Rousskov
a06baa56b9 Format the world 2019-12-22 17:42:47 -05:00
Andy Russell
94630d4c8b
replace serialize with serde in rustdoc 2019-12-12 16:33:25 -05:00
Mark Rousskov
059163fad7 Remove needless mut in paths 2019-09-23 07:48:24 -04:00
Mark Rousskov
f5ed0fd1c0 Move Cache generation to separate module 2019-09-13 19:44:45 -04:00