diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-05-24 15:20:22 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2020-05-24 15:20:22 +0100 |
commit | d959c913eaeae36b9e04c7b5ee8b341f6c5b678b (patch) | |
tree | 0bee9dbb6794748dc3aebce59292cbf466010af2 /crates/ra_ide/src/syntax_highlighting.rs | |
parent | 7e862626cc892662c3c95ba393483ac89c07e31a (diff) | |
parent | 1895888aec1c87096809057b19a602e1cec9ada6 (diff) |
Merge #4556
4556: More highlighting improvements r=matthewjasper a=matthewjasper
* Separate `true` and `false` from keywords (this matches the Textmate grammar).
* Handle more cases in `highlight_name_by_syntax`.
Co-authored-by: Matthew Jasper <[email protected]>
Diffstat (limited to 'crates/ra_ide/src/syntax_highlighting.rs')
-rw-r--r-- | crates/ra_ide/src/syntax_highlighting.rs | 31 |
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 | ||
482 | fn highlight_name_by_syntax(name: ast::Name) -> Highlight { | 483 | fn 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 | ||
502 | fn highlight_injection( | 511 | fn highlight_injection( |