Apply async semantic token modifier to async/await keywords

Only async semantic token modifier
This commit is contained in:
hi-rustin 2021-05-14 10:36:12 +08:00
parent 9803a9a148
commit b98c119ba6
5 changed files with 17 additions and 0 deletions

View file

@ -255,6 +255,7 @@ pub(super) fn element(
})
.map(|modifier| h | modifier)
.unwrap_or(h),
T![async] | T![await] => h | HlMod::Async,
_ => h,
}
}
@ -310,6 +311,9 @@ fn highlight_def(db: &RootDatabase, def: Definition) -> Highlight {
if func.is_unsafe(db) {
h |= HlMod::Unsafe;
}
if func.is_async(db) {
h |= HlMod::Async;
}
return h;
}
hir::ModuleDef::Adt(hir::Adt::Struct(_)) => HlTag::Symbol(SymbolKind::Struct),
@ -409,6 +413,9 @@ fn highlight_method_call(
if func.is_unsafe(sema.db) || sema.is_unsafe_method_call(&method_call) {
h |= HlMod::Unsafe;
}
if func.is_async(sema.db) {
h |= HlMod::Async;
}
if func.as_assoc_item(sema.db).and_then(|it| it.containing_trait(sema.db)).is_some() {
h |= HlMod::Trait
}