Fix syntax highlighting not highlighting derives anymore

This commit is contained in:
Lukas Wirth 2022-02-21 13:21:25 +01:00
parent f13c98034b
commit 1bbef5af85
5 changed files with 38 additions and 0 deletions

View file

@ -237,6 +237,20 @@ fn traverse(
continue;
}
Some(item) if sema.is_attr_macro_call(&item) => current_attr_call = Some(item),
Some(item) if current_attr_call.is_none() => {
let adt = match item {
ast::Item::Enum(it) => Some(ast::Adt::Enum(it)),
ast::Item::Struct(it) => Some(ast::Adt::Struct(it)),
ast::Item::Union(it) => Some(ast::Adt::Union(it)),
_ => None,
};
match adt {
Some(adt) if sema.is_derive_annotated(&adt) => {
current_attr_call = Some(adt.into());
}
_ => (),
}
}
None if ast::Attr::can_cast(node.kind()) => inside_attribute = true,
_ => (),
},