diff options
Diffstat (limited to 'crates/ide/src/syntax_highlighting.rs')
-rw-r--r-- | crates/ide/src/syntax_highlighting.rs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/crates/ide/src/syntax_highlighting.rs b/crates/ide/src/syntax_highlighting.rs index 5150a970c..f5c6eabef 100644 --- a/crates/ide/src/syntax_highlighting.rs +++ b/crates/ide/src/syntax_highlighting.rs | |||
@@ -726,7 +726,7 @@ fn highlight_method_call( | |||
726 | method_call: &ast::MethodCallExpr, | 726 | method_call: &ast::MethodCallExpr, |
727 | ) -> Option<Highlight> { | 727 | ) -> Option<Highlight> { |
728 | let func = sema.resolve_method_call(&method_call)?; | 728 | let func = sema.resolve_method_call(&method_call)?; |
729 | let mut h = HighlightTag::Function.into(); | 729 | let mut h = HighlightTag::Method.into(); |
730 | if func.is_unsafe(sema.db) || sema.is_unsafe_method_call(&method_call) { | 730 | if func.is_unsafe(sema.db) || sema.is_unsafe_method_call(&method_call) { |
731 | h |= HighlightModifier::Unsafe; | 731 | h |= HighlightModifier::Unsafe; |
732 | } | 732 | } |
@@ -755,13 +755,18 @@ fn highlight_def(db: &RootDatabase, def: Definition) -> Highlight { | |||
755 | Definition::ModuleDef(def) => match def { | 755 | Definition::ModuleDef(def) => match def { |
756 | hir::ModuleDef::Module(_) => HighlightTag::Module, | 756 | hir::ModuleDef::Module(_) => HighlightTag::Module, |
757 | hir::ModuleDef::Function(func) => { | 757 | hir::ModuleDef::Function(func) => { |
758 | let mut h = HighlightTag::Function.into(); | 758 | let mut h = if func.as_assoc_item(db).is_some() { |
759 | if func.self_param(db).is_none() { | ||
760 | Highlight::from(HighlightTag::Method) | HighlightModifier::Static | ||
761 | } else { | ||
762 | HighlightTag::Method.into() | ||
763 | } | ||
764 | } else { | ||
765 | HighlightTag::Function.into() | ||
766 | }; | ||
759 | if func.is_unsafe(db) { | 767 | if func.is_unsafe(db) { |
760 | h |= HighlightModifier::Unsafe; | 768 | h |= HighlightModifier::Unsafe; |
761 | } | 769 | } |
762 | if func.as_assoc_item(db).is_some() && func.self_param(db).is_none() { | ||
763 | h |= HighlightModifier::Static; | ||
764 | } | ||
765 | return h; | 770 | return h; |
766 | } | 771 | } |
767 | hir::ModuleDef::Adt(hir::Adt::Struct(_)) => HighlightTag::Struct, | 772 | hir::ModuleDef::Adt(hir::Adt::Struct(_)) => HighlightTag::Struct, |