diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs index 2b1b6a4fdc..f088487fa7 100644 --- a/crates/ra_ide/src/syntax_highlighting.rs +++ b/crates/ra_ide/src/syntax_highlighting.rs @@ -540,7 +540,7 @@ fn highlight_element( } } p if p.is_punct() => match p { - T![::] | T![->] | T![=>] | T![&] => HighlightTag::Operator.into(), + T![::] | T![->] | T![=>] | T![&] | T![..] | T![=] => HighlightTag::Operator.into(), T![@] => HighlightTag::Operator | HighlightModifier::ControlFlow, T![!] if element.parent().and_then(ast::MacroCall::cast).is_some() => { HighlightTag::Macro.into() @@ -573,6 +573,12 @@ fn highlight_element( _ if element.parent().and_then(ast::RangeExpr::cast).is_some() => { HighlightTag::Operator.into() } + _ if element.parent().and_then(ast::RangePat::cast).is_some() => { + HighlightTag::Operator.into() + } + _ if element.parent().and_then(ast::DotDotPat::cast).is_some() => { + HighlightTag::Operator.into() + } _ => HighlightTag::Punctuation.into(), }, diff --git a/crates/ra_ide/test_data/highlight_doctest.html b/crates/ra_ide/test_data/highlight_doctest.html index e79e898075..10cb9b20b9 100644 --- a/crates/ra_ide/test_data/highlight_doctest.html +++ b/crates/ra_ide/test_data/highlight_doctest.html @@ -36,14 +36,14 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd .unresolved_reference { color: #FC5555; text-decoration: wavy underline; }
/// ```
-/// let _ = "early doctests should not go boom";
+/// let _ = "early doctests should not go boom";
/// ```
struct Foo {
bar: bool,
}
impl Foo {
- pub const bar: bool = true;
+ pub const bar: bool = true;
/// Constructs a new `Foo`.
///
@@ -51,7 +51,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
///
/// ```
/// # #![allow(unused_mut)]
- /// let mut foo: Foo = Foo::new();
+ /// let mut foo: Foo = Foo::new();
/// ```
pub const fn new() -> Foo {
Foo { bar: true }
@@ -64,24 +64,24 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
/// ```
/// use x::y;
///
- /// let foo = Foo::new();
+ /// let foo = Foo::new();
///
/// // calls bar on foo
/// assert!(foo.bar());
///
- /// let bar = foo.bar || Foo::bar;
+ /// let bar = foo.bar || Foo::bar;
///
/// /* multi-line
/// comment */
///
- /// let multi_line_string = "Foo
+ /// let multi_line_string = "Foo
/// bar
/// ";
///
/// ```
///
/// ```rust,no_run
- /// let foobar = Foo::new().bar();
+ /// let foobar = Foo::new().bar();
/// ```
///
/// ```sh
@@ -96,7 +96,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
/// noop!(1);
/// ```
macro_rules! noop {
- ($expr:expr) => {
+ ($expr:expr) => {
$expr
}
}
\ No newline at end of file
diff --git a/crates/ra_ide/test_data/highlight_strings.html b/crates/ra_ide/test_data/highlight_strings.html
index 258bd404b2..1b681b2c6b 100644
--- a/crates/ra_ide/test_data/highlight_strings.html
+++ b/crates/ra_ide/test_data/highlight_strings.html
@@ -36,14 +36,14 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
.unresolved_reference { color: #FC5555; text-decoration: wavy underline; }
macro_rules! println {
- ($($arg:tt)*) => ({
+ ($($arg:tt)*) => ({
$crate::io::_print($crate::format_args_nl!($($arg)*));
})
}
#[rustc_builtin_macro]
macro_rules! format_args_nl {
- ($fmt:expr) => {{ /* compiler built-in */ }};
- ($fmt:expr, $($args:tt)*) => {{ /* compiler built-in */ }};
+ ($fmt:expr) => {{ /* compiler built-in */ }};
+ ($fmt:expr, $($args:tt)*) => {{ /* compiler built-in */ }};
}
fn main() {
@@ -52,18 +52,18 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
println!("Hello, {}!", "world"); // => "Hello, world!"
println!("The number is {}", 1); // => "The number is 1"
println!("{:?}", (3, 4)); // => "(3, 4)"
- println!("{value}", value=4); // => "4"
+ println!("{value}", value=4); // => "4"
println!("{} {}", 1, 2); // => "1 2"
println!("{:04}", 42); // => "0042" with leading zerosV
println!("{1} {} {0} {}", 1, 2); // => "2 1 1 2"
- println!("{argument}", argument = "test"); // => "test"
- println!("{name} {}", 1, name = 2); // => "2 1"
- println!("{a} {c} {b}", a="a", b='b', c=3); // => "a 3 b"
+ println!("{argument}", argument = "test"); // => "test"
+ println!("{name} {}", 1, name = 2); // => "2 1"
+ println!("{a} {c} {b}", a="a", b='b', c=3); // => "a 3 b"
println!("{{{}}}", 2); // => "{2}"
println!("Hello {:5}!", "x");
println!("Hello {:1$}!", "x", 5);
println!("Hello {1:0$}!", 5, "x");
- println!("Hello {:width$}!", "x", width = 5);
+ println!("Hello {:width$}!", "x", width = 5);
println!("Hello {:<5}!", "x");
println!("Hello {:-<5}!", "x");
println!("Hello {:^5}!", "x");
@@ -78,10 +78,10 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
println!("Hello {0} is {2:.1$}", "x", 5, 0.01);
println!("Hello {} is {:.*}", "x", 5, 0.01);
println!("Hello {} is {2:.*}", "x", 5, 0.01);
- println!("Hello {} is {number:.prec$}", "x", prec = 5, number = 0.01);
- println!("{}, `{name:.*}` has 3 fractional digits", "Hello", 3, name=1234.56);
- println!("{}, `{name:.*}` has 3 characters", "Hello", 3, name="1234.56");
- println!("{}, `{name:>8.*}` has 3 right-aligned characters", "Hello", 3, name="1234.56");
+ println!("Hello {} is {number:.prec$}", "x", prec = 5, number = 0.01);
+ println!("{}, `{name:.*}` has 3 fractional digits", "Hello", 3, name=1234.56);
+ println!("{}, `{name:.*}` has 3 characters", "Hello", 3, name="1234.56");
+ println!("{}, `{name:>8.*}` has 3 right-aligned characters", "Hello", 3, name="1234.56");
println!("Hello {{}}");
println!("{{ Hello");
@@ -91,6 +91,6 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
println!("Hello\nWorld");
println!("\u{48}\x65\x6C\x6C\x6F World");
- println!("{\x41}", A = 92);
- println!("{ничоси}", ничоси = 92);
+ println!("{\x41}", A = 92);
+ println!("{ничоси}", ничоси = 92);
}
\ No newline at end of file
diff --git a/crates/ra_ide/test_data/highlight_unsafe.html b/crates/ra_ide/test_data/highlight_unsafe.html
index 6c210bfa8b..b81b6f1c3b 100644
--- a/crates/ra_ide/test_data/highlight_unsafe.html
+++ b/crates/ra_ide/test_data/highlight_unsafe.html
@@ -44,11 +44,11 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
}
fn main() {
- let x = &5 as *const usize;
+ let x = &5 as *const usize;
unsafe {
unsafe_fn();
HasUnsafeFn.unsafe_method();
- let y = *(x);
- let z = -x;
+ let y = *(x);
+ let z = -x;
}
}
\ No newline at end of file
diff --git a/crates/ra_ide/test_data/highlighting.html b/crates/ra_ide/test_data/highlighting.html
index c49645b0d7..d72efa04a9 100644
--- a/crates/ra_ide/test_data/highlighting.html
+++ b/crates/ra_ide/test_data/highlighting.html
@@ -61,14 +61,14 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
}
}
-static mut STATIC_MUT: i32 = 0;
+static mut STATIC_MUT: i32 = 0;
fn foo<'a, T>() -> T {
foo::<'a, i32>()
}
macro_rules! def_fn {
- ($($tt:tt)*) => {$($tt)*}
+ ($($tt:tt)*) => {$($tt)*}
}
def_fn! {
@@ -78,7 +78,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
}
macro_rules! noop {
- ($expr:expr) => {
+ ($expr:expr) => {
$expr
}
}
@@ -87,9 +87,9 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
fn main() {
println!("Hello, {}!", 92);
- let mut vec = Vec::new();
+ let mut vec = Vec::new();
if true {
- let x = 92;
+ let x = 92;
vec.push(Foo { x, y: 1 });
}
unsafe {
@@ -103,11 +103,11 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
noop!(noop!(1));
- let mut x = 42;
- let y = &mut x;
- let z = &y;
+ let mut x = 42;
+ let y = &mut x;
+ let z = &y;
- let Foo { x: z, y } = Foo { x: z, y };
+ let Foo { x: z, y } = Foo { x: z, y };
y;
}
diff --git a/crates/ra_ide/test_data/rainbow_highlighting.html b/crates/ra_ide/test_data/rainbow_highlighting.html
index 2fed04a444..08d83302ce 100644
--- a/crates/ra_ide/test_data/rainbow_highlighting.html
+++ b/crates/ra_ide/test_data/rainbow_highlighting.html
@@ -36,14 +36,14 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
.unresolved_reference { color: #FC5555; text-decoration: wavy underline; }
fn main() {
- let hello = "hello";
- let x = hello.to_string();
- let y = hello.to_string();
+ let hello = "hello";
+ let x = hello.to_string();
+ let y = hello.to_string();
- let x = "other color please!";
- let y = x.to_string();
+ let x = "other color please!";
+ let y = x.to_string();
}
fn bar() {
- let mut hello = "hello";
+ let mut hello = "hello";
}
\ No newline at end of file