mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-02 07:22:42 +00:00
Rollup merge of #89538 - notriddle:notriddle/arrow-highlight, r=GuillaumeGomez
Make rustdoc not highlight `->` and `=>` as operators It was marking them up as `<span class="op">=</span><span class="op">></span>`, which is bloaty and wrong (at least, I think `<=` and `=>` should probably be different colors, since they're so different and yet made from the same symbols). Before: ![image](https://user-images.githubusercontent.com/1593513/135939748-f49b0f9e-6a7d-4d65-935a-e31cdf688a81.png) After: ![image](https://user-images.githubusercontent.com/1593513/135940063-5ef1f6b1-7e03-4227-b46b-572b063aba05.png)
This commit is contained in:
commit
0cc123cbb3
@ -435,7 +435,27 @@ impl<'a> Classifier<'a> {
|
||||
_ => Class::RefKeyWord,
|
||||
},
|
||||
|
||||
// Operators.
|
||||
// These can either be operators, or arrows.
|
||||
TokenKind::Eq => match lookahead {
|
||||
Some(TokenKind::Eq) => {
|
||||
self.next();
|
||||
sink(Highlight::Token { text: "==", class: Some(Class::Op) });
|
||||
return;
|
||||
}
|
||||
Some(TokenKind::Gt) => {
|
||||
self.next();
|
||||
sink(Highlight::Token { text: "=>", class: None });
|
||||
return;
|
||||
}
|
||||
_ => Class::Op,
|
||||
},
|
||||
TokenKind::Minus if lookahead == Some(TokenKind::Gt) => {
|
||||
self.next();
|
||||
sink(Highlight::Token { text: "->", class: None });
|
||||
return;
|
||||
}
|
||||
|
||||
// Other operators.
|
||||
TokenKind::Minus
|
||||
| TokenKind::Plus
|
||||
| TokenKind::Or
|
||||
@ -443,7 +463,6 @@ impl<'a> Classifier<'a> {
|
||||
| TokenKind::Caret
|
||||
| TokenKind::Percent
|
||||
| TokenKind::Bang
|
||||
| TokenKind::Eq
|
||||
| TokenKind::Lt
|
||||
| TokenKind::Gt => Class::Op,
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
<span class="kw">use</span> <span class="ident">std::path</span>::{<span class="ident">Path</span>, <span class="ident">PathBuf</span>};
|
||||
|
||||
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">"linux"</span>)]</span>
|
||||
<span class="kw">fn</span> <span class="ident">main</span>() {
|
||||
<span class="kw">fn</span> <span class="ident">main</span>() -> () {
|
||||
<span class="kw">let</span> <span class="ident">foo</span> <span class="op">=</span> <span class="bool-val">true</span> <span class="op">&&</span> <span class="bool-val">false</span> <span class="op">|</span><span class="op">|</span> <span class="bool-val">true</span>;
|
||||
<span class="kw">let</span> <span class="kw">_</span>: <span class="kw-2">*</span><span class="kw">const</span> () <span class="op">=</span> <span class="number">0</span>;
|
||||
<span class="kw">let</span> <span class="kw">_</span> <span class="op">=</span> <span class="kw-2">&</span><span class="ident">foo</span>;
|
||||
@ -27,11 +27,11 @@
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">s</span> <span class="op">=</span> <span class="ident">String::new</span>();
|
||||
|
||||
<span class="kw">match</span> <span class="kw-2">&</span><span class="ident">s</span> {
|
||||
<span class="kw-2">ref</span> <span class="kw-2">mut</span> <span class="ident">x</span> <span class="op">=</span><span class="op">></span> {}
|
||||
<span class="kw-2">ref</span> <span class="kw-2">mut</span> <span class="ident">x</span> => {}
|
||||
}
|
||||
}
|
||||
|
||||
<span class="macro">macro_rules!</span> <span class="ident">bar</span> {
|
||||
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">foo</span>:<span class="ident">tt</span>) <span class="op">=</span><span class="op">></span> {};
|
||||
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">foo</span>:<span class="ident">tt</span>) => {};
|
||||
}
|
||||
</code></pre>
|
||||
|
@ -3,7 +3,7 @@
|
||||
use std::path::{Path, PathBuf};
|
||||
|
||||
#[cfg(target_os = "linux")]
|
||||
fn main() {
|
||||
fn main() -> () {
|
||||
let foo = true && false || true;
|
||||
let _: *const () = 0;
|
||||
let _ = &foo;
|
||||
|
@ -6,37 +6,31 @@
|
||||
// @has 'foo/macro.todo.html'
|
||||
// @has - '//span[@class="macro"]' 'macro_rules!'
|
||||
// @has - '//span[@class="ident"]' 'todo'
|
||||
// Note: count = 2 * ('=' + '>') + '+' = 2 * (1 + 1) + 1 = 5
|
||||
// @count - '//pre[@class="rust macro"]//span[@class="op"]' 5
|
||||
// Note: the only op is the `+`
|
||||
// @count - '//pre[@class="rust macro"]//span[@class="op"]' 1
|
||||
|
||||
// @has - '{ ()'
|
||||
// @has - '//span[@class="op"]' '='
|
||||
// @has - '//span[@class="op"]' '>'
|
||||
// @has - '{ ... };'
|
||||
|
||||
// @has - '($('
|
||||
// @has - '{ () => { ... }; ($('
|
||||
// @has - '//span[@class="macro-nonterminal"]' '$'
|
||||
// @has - '//span[@class="macro-nonterminal"]' 'arg'
|
||||
// @has - ':'
|
||||
// @has - '//span[@class="ident"]' 'tt'
|
||||
// @has - '),'
|
||||
// @has - '//span[@class="op"]' '+'
|
||||
// @has - ')'
|
||||
// @has - ') => { ... }; }'
|
||||
pub use std::todo;
|
||||
|
||||
mod mod1 {
|
||||
// @has 'foo/macro.macro1.html'
|
||||
// @has - 'macro_rules!'
|
||||
// @has - 'macro1'
|
||||
// @has - '{ ()'
|
||||
// @has - '($('
|
||||
// @has - '{ () => { ... }; ($('
|
||||
// @has - '//span[@class="macro-nonterminal"]' '$'
|
||||
// @has - '//span[@class="macro-nonterminal"]' 'arg'
|
||||
// @has - ':'
|
||||
// @has - 'expr'
|
||||
// @has - '),'
|
||||
// @has - '+'
|
||||
// @has - ')'
|
||||
// @has - ') => { ... }; }'
|
||||
#[macro_export]
|
||||
macro_rules! macro1 {
|
||||
() => {};
|
||||
|
Loading…
Reference in New Issue
Block a user