diff --git a/crates/ide/src/syntax_highlighting/tags.rs b/crates/ide/src/syntax_highlighting/tags.rs
index e07cfb43fe6..974f54fa01e 100644
--- a/crates/ide/src/syntax_highlighting/tags.rs
+++ b/crates/ide/src/syntax_highlighting/tags.rs
@@ -51,12 +51,14 @@ pub enum HighlightModifier {
Injected,
Mutable,
Consuming,
- Unsafe,
Callable,
/// Used for associated functions
Static,
/// Used for items in impls&traits.
Associated,
+
+ /// Keep this last!
+ Unsafe,
}
impl HighlightTag {
@@ -108,7 +110,7 @@ impl fmt::Display for HighlightTag {
}
impl HighlightModifier {
- const ALL: &'static [HighlightModifier] = &[
+ const ALL: &'static [HighlightModifier; HighlightModifier::Unsafe as u8 as usize + 1] = &[
HighlightModifier::Attribute,
HighlightModifier::ControlFlow,
HighlightModifier::Definition,
@@ -116,9 +118,10 @@ impl HighlightModifier {
HighlightModifier::Injected,
HighlightModifier::Mutable,
HighlightModifier::Consuming,
- HighlightModifier::Unsafe,
HighlightModifier::Callable,
HighlightModifier::Static,
+ HighlightModifier::Associated,
+ HighlightModifier::Unsafe,
];
fn as_str(self) -> &'static str {
diff --git a/crates/ide/src/syntax_highlighting/test_data/highlight_assoc_functions.html b/crates/ide/src/syntax_highlighting/test_data/highlight_assoc_functions.html
index cd80d72b798..db6f32d3397 100644
--- a/crates/ide/src/syntax_highlighting/test_data/highlight_assoc_functions.html
+++ b/crates/ide/src/syntax_highlighting/test_data/highlight_assoc_functions.html
@@ -40,17 +40,17 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
struct foo {}
impl foo {
- pub fn is_static() {}
- pub fn is_not_static(&self) {}
+ pub fn is_static() {}
+ pub fn is_not_static(&self) {}
}
trait t {
- fn t_is_static() {}
- fn t_is_not_static(&self) {}
+ fn t_is_static() {}
+ fn t_is_not_static(&self) {}
}
impl t for foo {
- pub fn is_static() {}
- pub fn is_not_static(&self) {}
+ pub fn is_static() {}
+ pub fn is_not_static(&self) {}
}
\ No newline at end of file
diff --git a/crates/ide/src/syntax_highlighting/test_data/highlight_doctest.html b/crates/ide/src/syntax_highlighting/test_data/highlight_doctest.html
index 56aba43e86b..4e511baa932 100644
--- a/crates/ide/src/syntax_highlighting/test_data/highlight_doctest.html
+++ b/crates/ide/src/syntax_highlighting/test_data/highlight_doctest.html
@@ -43,7 +43,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
}
impl Foo {
- pub const bar: bool = true;
+ pub const bar: bool = true;
@@ -53,7 +53,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
#![allow(unused_mut)]
let mut foo: Foo = Foo::new();
- pub const fn new() -> Foo {
+ pub const fn new() -> Foo {
Foo { bar: true }
}
@@ -87,7 +87,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
- pub fn foo(&self) -> bool {
+ pub fn foo(&self) -> bool {
true
}
}
diff --git a/crates/ide/src/syntax_highlighting/test_data/highlight_injection.html b/crates/ide/src/syntax_highlighting/test_data/highlight_injection.html
index 57c178916f6..7f18ad297f2 100644
--- a/crates/ide/src/syntax_highlighting/test_data/highlight_injection.html
+++ b/crates/ide/src/syntax_highlighting/test_data/highlight_injection.html
@@ -40,7 +40,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
fn main() {
fixture(r#"
trait Foo {
- fn foo() {
+ fn foo() {
println!("2 + 2 = {}", 4);
}
}"#
diff --git a/crates/ide/src/syntax_highlighting/test_data/highlight_unsafe.html b/crates/ide/src/syntax_highlighting/test_data/highlight_unsafe.html
index 1d05b771310..d26f485162e 100644
--- a/crates/ide/src/syntax_highlighting/test_data/highlight_unsafe.html
+++ b/crates/ide/src/syntax_highlighting/test_data/highlight_unsafe.html
@@ -45,7 +45,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
struct HasUnsafeFn;
impl HasUnsafeFn {
- unsafe fn unsafe_method(&self) {}
+ unsafe fn unsafe_method(&self) {}
}
struct TypeForStaticMut {
@@ -60,11 +60,11 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
}
trait DoTheAutoref {
- fn calls_autoref(&self);
+ fn calls_autoref(&self);
}
impl DoTheAutoref for u16 {
- fn calls_autoref(&self) {}
+ fn calls_autoref(&self) {}
}
fn main() {
@@ -78,7 +78,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
Union { b: 0 } => (),
Union { a } => (),
}
- HasUnsafeFn.unsafe_method();
+ HasUnsafeFn.unsafe_method();
let y = *x;
@@ -94,6 +94,6 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
let Packed { a: ref _a } = packed;
- packed.a.calls_autoref();
+ packed.a.calls_autoref();
}
}
\ No newline at end of file
diff --git a/crates/ide/src/syntax_highlighting/test_data/highlighting.html b/crates/ide/src/syntax_highlighting/test_data/highlighting.html
index 11843441802..588e86a34f9 100644
--- a/crates/ide/src/syntax_highlighting/test_data/highlighting.html
+++ b/crates/ide/src/syntax_highlighting/test_data/highlighting.html
@@ -65,25 +65,25 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
}
trait Bar {
- fn bar(&self) -> i32;
+ fn bar(&self) -> i32;
}
impl Bar for Foo {
- fn bar(&self) -> i32 {
+ fn bar(&self) -> i32 {
self.x
}
}
impl Foo {
- fn baz(mut self, f: Foo) -> i32 {
- f.baz(self)
+ fn baz(mut self, f: Foo) -> i32 {
+ f.baz(self)
}
- fn qux(&mut self) {
+ fn qux(&mut self) {
self.x = 0;
}
- fn quop(&self) -> i32 {
+ fn quop(&self) -> i32 {
self.x
}
}
@@ -94,15 +94,15 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
}
impl FooCopy {
- fn baz(self, f: FooCopy) -> u32 {
- f.baz(self)
+ fn baz(self, f: FooCopy) -> u32 {
+ f.baz(self)
}
- fn qux(&mut self) {
+ fn qux(&mut self) {
self.x = 0;
}
- fn quop(&self) -> u32 {
+ fn quop(&self) -> u32 {
self.x
}
}
@@ -178,17 +178,17 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
let mut foo = Foo { x, y: x };
let foo2 = Foo { x, y: x };
- foo.quop();
- foo.qux();
- foo.baz(foo2);
+ foo.quop();
+ foo.qux();
+ foo.baz(foo2);
let mut copy = FooCopy { x };
- copy.quop();
- copy.qux();
- copy.baz(copy);
+ copy.quop();
+ copy.qux();
+ copy.baz(copy);
let a = |x| x;
- let bar = Foo::baz;
+ let bar = Foo::baz;
let baz = -42;
let baz = -baz;
@@ -203,7 +203,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
use Option::*;
impl<T> Option<T> {
- fn and<U>(self, other: Option<U>) -> Option<(T, U)> {
+ fn and<U>(self, other: Option<U>) -> Option<(T, U)> {
match other {
None => unimplemented!(),
Nope => Nope,