aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide/src/syntax_highlighting.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_ide/src/syntax_highlighting.rs')
-rw-r--r--crates/ra_ide/src/syntax_highlighting.rs31
1 files changed, 20 insertions, 11 deletions
diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs
index b55cf748d..61aeb28cb 100644
--- a/crates/ra_ide/src/syntax_highlighting.rs
+++ b/crates/ra_ide/src/syntax_highlighting.rs
@@ -413,6 +413,7 @@ fn highlight_element(
413 | T![in] => h | HighlightModifier::ControlFlow, 413 | T![in] => h | HighlightModifier::ControlFlow,
414 T![for] if !is_child_of_impl(element) => h | HighlightModifier::ControlFlow, 414 T![for] if !is_child_of_impl(element) => h | HighlightModifier::ControlFlow,
415 T![unsafe] => h | HighlightModifier::Unsafe, 415 T![unsafe] => h | HighlightModifier::Unsafe,
416 T![true] | T![false] => HighlightTag::BoolLiteral.into(),
416 _ => h, 417 _ => h,
417 } 418 }
418 } 419 }
@@ -480,23 +481,31 @@ fn highlight_name(db: &RootDatabase, def: Definition) -> Highlight {
480} 481}
481 482
482fn highlight_name_by_syntax(name: ast::Name) -> Highlight { 483fn highlight_name_by_syntax(name: ast::Name) -> Highlight {
483 let default = HighlightTag::Function.into(); 484 let default = HighlightTag::UnresolvedReference;
484 485
485 let parent = match name.syntax().parent() { 486 let parent = match name.syntax().parent() {
486 Some(it) => it, 487 Some(it) => it,
487 _ => return default, 488 _ => return default.into(),
488 }; 489 };
489 490
490 match parent.kind() { 491 let tag = match parent.kind() {
491 STRUCT_DEF => HighlightTag::Struct.into(), 492 STRUCT_DEF => HighlightTag::Struct,
492 ENUM_DEF => HighlightTag::Enum.into(), 493 ENUM_DEF => HighlightTag::Enum,
493 UNION_DEF => HighlightTag::Union.into(), 494 UNION_DEF => HighlightTag::Union,
494 TRAIT_DEF => HighlightTag::Trait.into(), 495 TRAIT_DEF => HighlightTag::Trait,
495 TYPE_ALIAS_DEF => HighlightTag::TypeAlias.into(), 496 TYPE_ALIAS_DEF => HighlightTag::TypeAlias,
496 TYPE_PARAM => HighlightTag::TypeParam.into(), 497 TYPE_PARAM => HighlightTag::TypeParam,
497 RECORD_FIELD_DEF => HighlightTag::Field.into(), 498 RECORD_FIELD_DEF => HighlightTag::Field,
499 MODULE => HighlightTag::Module,
500 FN_DEF => HighlightTag::Function,
501 CONST_DEF => HighlightTag::Constant,
502 STATIC_DEF => HighlightTag::Static,
503 ENUM_VARIANT => HighlightTag::EnumVariant,
504 BIND_PAT => HighlightTag::Local,
498 _ => default, 505 _ => default,
499 } 506 };
507
508 tag.into()
500} 509}
501 510
502fn highlight_injection( 511fn highlight_injection(