Commit graph

4182 commits

Author SHA1 Message Date
Guillaume Gomez
a6051c76db Remove unnecessary elem.name.length === 0 since the rustdoc search eBNF does not allow elements without a name 2022-04-18 20:59:09 +02:00
Guillaume Gomez
51b4005003 Update the eBNF to allow generics bracket to not be closed if it's EOF 2022-04-18 20:59:09 +02:00
Guillaume Gomez
e03a950747 Handle separators in their own functions and fix missing handling of tabs 2022-04-18 20:59:09 +02:00
Guillaume Gomez
da829d8d9d Improve the BNF description a bit and fix some issues 2022-04-18 20:59:09 +02:00
Guillaume Gomez
1f5c4c2b30 Forbid rustdoc search query to end with -> 2022-04-18 20:59:09 +02:00
Guillaume Gomez
8e29ed43d9 Add isIdentCharacter function to ensure that unexpected characters are handled correctly 2022-04-18 20:59:09 +02:00
Guillaume Gomez
f9251eef68 Replace unneeded use of regex with a simple if 2022-04-18 20:59:09 +02:00
Guillaume Gomez
699ae365df Apply suggestions:
* Forbid generics without a path (so "<p>" is forbidden).
 * Change `handleSingleArg` so that it takes `results_others`, `results_in_args` and `results_returned` as arguments instead of using the "global" variables.
 * Change `createQueryElement` so that it returns the newly created element instead of taking `elems` as argument.
 * Improve documentation
2022-04-18 20:59:09 +02:00
Guillaume Gomez
c7de1a16f8 Improve documentation and add some explanations in the code 2022-04-18 20:59:09 +02:00
Guillaume Gomez
49297337b4 Simplify parser syntax 2022-04-18 20:59:08 +02:00
Guillaume Gomez
99d552092c Make query parser more strict and improve display of errors 2022-04-18 20:59:08 +02:00
Guillaume Gomez
264064df36 * Greatly improve the rustdoc search parser source code
* Move all functions outside parseQuery
2022-04-18 20:59:08 +02:00
Guillaume Gomez
99c5394ecc Add query syntax for the parser 2022-04-18 20:59:08 +02:00
Guillaume Gomez
51de26cfd9 * If type filter is in quotes, throw an error.
* If there are generics, don't allow to have quotes.
2022-04-18 20:59:08 +02:00
Guillaume Gomez
bbcf1762dd Improve naming of "val" field 2022-04-18 20:59:08 +02:00
Guillaume Gomez
3aeef67037 Update search engine and parser to error when quotes are used on queries with more than one element. 2022-04-18 20:59:08 +02:00
Guillaume Gomez
be41750a10 Greatly improve rustdoc search 2022-04-18 20:59:08 +02:00
Dylan DPC
10e0db5666
Rollup merge of #96118 - GuillaumeGomez:cleanup-def-id-item-id, r=notriddle
rustdoc: Rename `def_id` into `item_id` when the type is `ItemId` for readability

As `@notriddle` mentioned in https://github.com/rust-lang/rust/pull/96091, the field name is inaccurate. This PR fixes it by renaming it accordingly to its real type.

r? `@notriddle`
2022-04-16 19:42:07 +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
Dylan DPC
bdbf0998f3
Rollup merge of #95194 - kckeiks:update-algo-in-find-use-placement, r=pnkfelix
remove find_use_placement

A more robust solution to finding where to place use suggestions was added in #94584.
The algorithm uses the AST to find the span for the suggestion so we pass this span
down to the HIR during lowering and use it instead of calling `find_use_placement`

Fixes #94941
2022-04-15 20:50:45 +02:00
Dylan DPC
db61452b7a
Rollup merge of #93217 - willcrichton:example-analyzer, r=GuillaumeGomez
Improve Rustdoc UI for scraped examples with multiline arguments, fix overflow in line numbers

This PR improves a few aspects of the scrape examples feature in Rustdoc.
* Only function names and not the full call expression are highlighted.
* For call-sites with multiline arguments, the minimized code viewer will scroll to the top of the call-site rather than the middle if the argument is larger than the viewer size, ensuring that the function name is visible.
* This fixes an issue where the line numbers column had a visible x-scroll bar.

r? `@GuillaumeGomez`
2022-04-13 17:35:32 +02:00
Will Crichton
6a18b68655 Add Rustdoc book link to scrape examples help. Remove remaining panic
locations in scrape examples.
2022-04-12 11:05:07 -07:00
León Orell Valerian Liehr
8de453a8c6 rustdoc: discr. required+provided assoc consts+tys 2022-04-12 15:38:39 +02:00
Roc Yu
8e15b6cfde
rustdoc: Reduce allocations in a html::markdown function 2022-04-09 19:14:29 -04:00
Guillaume Gomez
d48a39a5e2 Switch item-info div to span to generate valid HTML 2022-04-06 20:41:44 +02:00
Dylan DPC
84e1aa2d59
Rollup merge of #95684 - GuillaumeGomez:fix-item-info-overflow, r=notriddle
rustdoc: Fix item info display overflow

I came across this issue when reading local `Iterator` docs (reproduced in this screenshot):

![Screenshot from 2022-04-05 17-45-13](https://user-images.githubusercontent.com/3050060/161798150-769ee838-4768-4df8-9d34-b02eb8104eed.png)

The problem comes from the fact that `span` isn't `display: block` by default. Since `item-info` was already present on `<div>` in other places, I moved the last one to `div` as well.

r? `@notriddle`
2022-04-06 03:39:08 +02:00
Guillaume Gomez
a404523fbd Generate a <div> instead of a <span> for item-info elements 2022-04-05 18:11:27 +02:00
Oli Scherer
d32ce37a17 Mark scalar layout unions so that backends that do not support partially initialized scalars can special case them. 2022-04-05 13:18:21 +00:00
Dylan DPC
5925c8ee79
Rollup merge of #95613 - GuillaumeGomez:fix-rustdoc-attr-display, r=notriddle
Fix rustdoc attribute display

Fixes #81482.

r? `@notriddle`
2022-04-03 23:21:43 +02:00
Guillaume Gomez
78698dd0fb Fix display of attributes in rustdoc 2022-04-03 13:40:43 +02:00
bors
b6a34f35e5 Auto merge of #95568 - GuillaumeGomez:fix-invalid-dom-generation, r=notriddle
Fix invalid DOM generation

Fixes #64371.

r? `@notriddle`
2022-04-02 15:53:41 +00:00
Guillaume Gomez
6f3d988418 Fix invalid DOM generation 2022-04-01 20:18:08 +02:00
Matthias Krüger
e21b27ff7a
Rollup merge of #95475 - Jules-Bertholet:rustdoc-hide-assoc-consts-from-trait-impls, r=jsha
rustdoc: Only show associated consts from inherent impls in sidebar

Resolves #95459
2022-04-01 12:07:01 +02:00
Fausto
8c2353b6c1 remove find_use_placement
A more robust solution to finding where to place use suggestions was added.
The algorithm uses the AST to find the span for the suggestion so we pass this span
down to the HIR during lowering and use it.

Signed-off-by: Miguel Guarniz <mi9uel9@gmail.com>
2022-03-31 17:20:03 -04:00
Guillaume Gomez
8c0a8f5f89 Remove unneeded to_string call 2022-03-30 21:13:15 +02:00
Jules Bertholet
c8ab63b30f Only show associated consts from inherent impls in sidebar 2022-03-30 13:49:50 -04:00
bors
11909e3588 Auto merge of #95096 - GuillaumeGomez:rm-header-fn-field, r=camelid
Remove header field from clean::Function

Fixes https://github.com/rust-lang/rust/issues/89673.

This is another take on https://github.com/rust-lang/rust/issues/89673 (compared to https://github.com/rust-lang/rust/pull/91217) but very different on the approach: I moved the header call in one place but still require to have the `clean::Item` so I can use the `DefId` to get what is missing.

cc `@jyn514` (you reviewed the original so maybe you want to take a look?)
r? `@camelid`
2022-03-29 12:49:03 +00:00
Guillaume Gomez
2c4ce9d2dc Remove header field from clean::Function 2022-03-29 11:46:57 +02:00
bors
2d37f38f87 Auto merge of #95024 - koehlma:rustdoc-private-items, r=GuillaumeGomez,camelid,jsha
rustdoc: add 🔒 to items with restricted visibility

This change marks items with restricted visibility with 🔒 when building with `--document-private-items`:

<img width="278" alt="Screen Shot 2022-03-20 at 23 50 24" src="https://user-images.githubusercontent.com/509209/159189513-9e4b09bb-6785-41a5-bfe2-df02f83f8641.png">

There also appears a “Restricted Visibility” tooltip when hovering over the emoji.

---

The original PR for reference:

This change makes private items slightly transparent (similar to `unstable` items in rustc):

<img width="272" alt="Screen Shot 2022-03-16 at 22 17 43" src="https://user-images.githubusercontent.com/509209/158692627-a1f6f5ec-e043-4aa2-9352-8d2b15c31c08.png">

I found myself using `--document-private-items` a lot recently because I find the documentation of private internals quite helpful when working on a larger project. However, not being able to distinguish private from public items (see #87785) when looking at the documentation makes this somewhat cumbersome.

This PR addresses the third suggestion of issue #87785 by marking private items typographically. It seems to me that the other suggestions are more involved but this is at least a first step.

A private item is also made slightly transparent in the path displayed in the header of a page:

<img width="467" alt="Screen Shot 2022-03-16 at 22 19 51" src="https://user-images.githubusercontent.com/509209/158692885-0bbd3417-3c0b-486f-b8ab-99c05c6fa7ca.png">

I am looking forward to feedback and suggestions.
2022-03-28 13:49:22 +00:00
Will Crichton
d1416d528a Add scrape examples help page 2022-03-27 18:11:57 -07:00
Will Crichton
bb3ed6f7d6 Improve styling on scrape examples help button 2022-03-27 18:11:56 -07:00
Will Crichton
7cca69342a Fix markdown issue, remove hard-coded rust-lang.org url 2022-03-27 18:11:56 -07:00
Will Crichton
ae5d0cbe74 Improve alignment of additional scraped examples, add scrape examples help page 2022-03-27 18:11:50 -07:00
Will Crichton
d58c9dfdb9 Only highlight identifier in scraped examples, not arguments 2022-03-27 18:10:50 -07:00
Will Crichton
7e81b0a317 Improve Rustdoc UI for scraped examples with multiline arguments, fix
overflow in line numbers
2022-03-27 18:10:49 -07:00
Maximilian Köhl
4df867c4a3 fix: add a space only in front of 🔒 2022-03-21 11:25:05 +01:00
Maximilian Köhl
03ddfa3087 move the 🔒 after the name 2022-03-21 11:03:02 +01:00
Maximilian Köhl
1fec0fbb2c apply rustfmt 2022-03-19 23:54:42 +01:00
Maximilian Köhl
43e4bbdaaa rustdoc: add 🔒 to indicate restricted visibility 2022-03-19 23:51:33 +01:00
Guillaume Gomez
237d62588d Remove animation on source sidebar 2022-03-19 16:59:56 +01:00