@@ -654,97 +654,99 @@ pub(crate) fn semantic_token_delta(
654
654
fn semantic_token_type_and_modifiers (
655
655
highlight : Highlight ,
656
656
) -> ( lsp_types:: SemanticTokenType , semantic_tokens:: ModifierSet ) {
657
+ use semantic_tokens:: { modifiers as mods, types} ;
658
+
657
659
let ty = match highlight. tag {
658
660
HlTag :: Symbol ( symbol) => match symbol {
659
- SymbolKind :: Attribute => semantic_tokens :: DECORATOR ,
660
- SymbolKind :: Derive => semantic_tokens :: DERIVE ,
661
- SymbolKind :: DeriveHelper => semantic_tokens :: DERIVE_HELPER ,
662
- SymbolKind :: Module => semantic_tokens :: NAMESPACE ,
663
- SymbolKind :: Impl => semantic_tokens :: TYPE_ALIAS ,
664
- SymbolKind :: Field => semantic_tokens :: PROPERTY ,
665
- SymbolKind :: TypeParam => semantic_tokens :: TYPE_PARAMETER ,
666
- SymbolKind :: ConstParam => semantic_tokens :: CONST_PARAMETER ,
667
- SymbolKind :: LifetimeParam => semantic_tokens :: LIFETIME ,
668
- SymbolKind :: Label => semantic_tokens :: LABEL ,
669
- SymbolKind :: ValueParam => semantic_tokens :: PARAMETER ,
670
- SymbolKind :: SelfParam => semantic_tokens :: SELF_KEYWORD ,
671
- SymbolKind :: SelfType => semantic_tokens :: SELF_TYPE_KEYWORD ,
672
- SymbolKind :: Local => semantic_tokens :: VARIABLE ,
673
- SymbolKind :: Method => semantic_tokens :: METHOD ,
674
- SymbolKind :: Function => semantic_tokens :: FUNCTION ,
675
- SymbolKind :: Const => semantic_tokens :: VARIABLE ,
676
- SymbolKind :: Static => semantic_tokens :: VARIABLE ,
677
- SymbolKind :: Struct => semantic_tokens :: STRUCT ,
678
- SymbolKind :: Enum => semantic_tokens :: ENUM ,
679
- SymbolKind :: Variant => semantic_tokens :: ENUM_MEMBER ,
680
- SymbolKind :: Union => semantic_tokens :: UNION ,
681
- SymbolKind :: TypeAlias => semantic_tokens :: TYPE_ALIAS ,
682
- SymbolKind :: Trait => semantic_tokens :: INTERFACE ,
683
- SymbolKind :: TraitAlias => semantic_tokens :: INTERFACE ,
684
- SymbolKind :: Macro => semantic_tokens :: MACRO ,
685
- SymbolKind :: ProcMacro => semantic_tokens :: PROC_MACRO ,
686
- SymbolKind :: BuiltinAttr => semantic_tokens :: BUILTIN_ATTRIBUTE ,
687
- SymbolKind :: ToolModule => semantic_tokens :: TOOL_MODULE ,
661
+ SymbolKind :: Attribute => types :: DECORATOR ,
662
+ SymbolKind :: Derive => types :: DERIVE ,
663
+ SymbolKind :: DeriveHelper => types :: DERIVE_HELPER ,
664
+ SymbolKind :: Module => types :: NAMESPACE ,
665
+ SymbolKind :: Impl => types :: TYPE_ALIAS ,
666
+ SymbolKind :: Field => types :: PROPERTY ,
667
+ SymbolKind :: TypeParam => types :: TYPE_PARAMETER ,
668
+ SymbolKind :: ConstParam => types :: CONST_PARAMETER ,
669
+ SymbolKind :: LifetimeParam => types :: LIFETIME ,
670
+ SymbolKind :: Label => types :: LABEL ,
671
+ SymbolKind :: ValueParam => types :: PARAMETER ,
672
+ SymbolKind :: SelfParam => types :: SELF_KEYWORD ,
673
+ SymbolKind :: SelfType => types :: SELF_TYPE_KEYWORD ,
674
+ SymbolKind :: Local => types :: VARIABLE ,
675
+ SymbolKind :: Method => types :: METHOD ,
676
+ SymbolKind :: Function => types :: FUNCTION ,
677
+ SymbolKind :: Const => types :: CONST ,
678
+ SymbolKind :: Static => types :: STATIC ,
679
+ SymbolKind :: Struct => types :: STRUCT ,
680
+ SymbolKind :: Enum => types :: ENUM ,
681
+ SymbolKind :: Variant => types :: ENUM_MEMBER ,
682
+ SymbolKind :: Union => types :: UNION ,
683
+ SymbolKind :: TypeAlias => types :: TYPE_ALIAS ,
684
+ SymbolKind :: Trait => types :: INTERFACE ,
685
+ SymbolKind :: TraitAlias => types :: INTERFACE ,
686
+ SymbolKind :: Macro => types :: MACRO ,
687
+ SymbolKind :: ProcMacro => types :: PROC_MACRO ,
688
+ SymbolKind :: BuiltinAttr => types :: BUILTIN_ATTRIBUTE ,
689
+ SymbolKind :: ToolModule => types :: TOOL_MODULE ,
688
690
} ,
689
- HlTag :: AttributeBracket => semantic_tokens :: ATTRIBUTE_BRACKET ,
690
- HlTag :: BoolLiteral => semantic_tokens :: BOOLEAN ,
691
- HlTag :: BuiltinType => semantic_tokens :: BUILTIN_TYPE ,
692
- HlTag :: ByteLiteral | HlTag :: NumericLiteral => semantic_tokens :: NUMBER ,
693
- HlTag :: CharLiteral => semantic_tokens :: CHAR ,
694
- HlTag :: Comment => semantic_tokens :: COMMENT ,
695
- HlTag :: EscapeSequence => semantic_tokens :: ESCAPE_SEQUENCE ,
696
- HlTag :: InvalidEscapeSequence => semantic_tokens :: INVALID_ESCAPE_SEQUENCE ,
697
- HlTag :: FormatSpecifier => semantic_tokens :: FORMAT_SPECIFIER ,
698
- HlTag :: Keyword => semantic_tokens :: KEYWORD ,
699
- HlTag :: None => semantic_tokens :: GENERIC ,
691
+ HlTag :: AttributeBracket => types :: ATTRIBUTE_BRACKET ,
692
+ HlTag :: BoolLiteral => types :: BOOLEAN ,
693
+ HlTag :: BuiltinType => types :: BUILTIN_TYPE ,
694
+ HlTag :: ByteLiteral | HlTag :: NumericLiteral => types :: NUMBER ,
695
+ HlTag :: CharLiteral => types :: CHAR ,
696
+ HlTag :: Comment => types :: COMMENT ,
697
+ HlTag :: EscapeSequence => types :: ESCAPE_SEQUENCE ,
698
+ HlTag :: InvalidEscapeSequence => types :: INVALID_ESCAPE_SEQUENCE ,
699
+ HlTag :: FormatSpecifier => types :: FORMAT_SPECIFIER ,
700
+ HlTag :: Keyword => types :: KEYWORD ,
701
+ HlTag :: None => types :: GENERIC ,
700
702
HlTag :: Operator ( op) => match op {
701
- HlOperator :: Bitwise => semantic_tokens :: BITWISE ,
702
- HlOperator :: Arithmetic => semantic_tokens :: ARITHMETIC ,
703
- HlOperator :: Logical => semantic_tokens :: LOGICAL ,
704
- HlOperator :: Comparison => semantic_tokens :: COMPARISON ,
705
- HlOperator :: Other => semantic_tokens :: OPERATOR ,
703
+ HlOperator :: Bitwise => types :: BITWISE ,
704
+ HlOperator :: Arithmetic => types :: ARITHMETIC ,
705
+ HlOperator :: Logical => types :: LOGICAL ,
706
+ HlOperator :: Comparison => types :: COMPARISON ,
707
+ HlOperator :: Other => types :: OPERATOR ,
706
708
} ,
707
- HlTag :: StringLiteral => semantic_tokens :: STRING ,
708
- HlTag :: UnresolvedReference => semantic_tokens :: UNRESOLVED_REFERENCE ,
709
+ HlTag :: StringLiteral => types :: STRING ,
710
+ HlTag :: UnresolvedReference => types :: UNRESOLVED_REFERENCE ,
709
711
HlTag :: Punctuation ( punct) => match punct {
710
- HlPunct :: Bracket => semantic_tokens :: BRACKET ,
711
- HlPunct :: Brace => semantic_tokens :: BRACE ,
712
- HlPunct :: Parenthesis => semantic_tokens :: PARENTHESIS ,
713
- HlPunct :: Angle => semantic_tokens :: ANGLE ,
714
- HlPunct :: Comma => semantic_tokens :: COMMA ,
715
- HlPunct :: Dot => semantic_tokens :: DOT ,
716
- HlPunct :: Colon => semantic_tokens :: COLON ,
717
- HlPunct :: Semi => semantic_tokens :: SEMICOLON ,
718
- HlPunct :: Other => semantic_tokens :: PUNCTUATION ,
719
- HlPunct :: MacroBang => semantic_tokens :: MACRO_BANG ,
712
+ HlPunct :: Bracket => types :: BRACKET ,
713
+ HlPunct :: Brace => types :: BRACE ,
714
+ HlPunct :: Parenthesis => types :: PARENTHESIS ,
715
+ HlPunct :: Angle => types :: ANGLE ,
716
+ HlPunct :: Comma => types :: COMMA ,
717
+ HlPunct :: Dot => types :: DOT ,
718
+ HlPunct :: Colon => types :: COLON ,
719
+ HlPunct :: Semi => types :: SEMICOLON ,
720
+ HlPunct :: Other => types :: PUNCTUATION ,
721
+ HlPunct :: MacroBang => types :: MACRO_BANG ,
720
722
} ,
721
723
} ;
722
724
723
725
let mut mods = semantic_tokens:: ModifierSet :: default ( ) ;
724
726
for modifier in highlight. mods . iter ( ) {
725
727
let modifier = match modifier {
726
- HlMod :: Associated => semantic_tokens :: ASSOCIATED ,
727
- HlMod :: Async => semantic_tokens :: ASYNC ,
728
- HlMod :: Attribute => semantic_tokens :: ATTRIBUTE_MODIFIER ,
729
- HlMod :: Callable => semantic_tokens :: CALLABLE ,
730
- HlMod :: Const => semantic_tokens :: CONSTANT ,
731
- HlMod :: Consuming => semantic_tokens :: CONSUMING ,
732
- HlMod :: ControlFlow => semantic_tokens :: CONTROL_FLOW ,
733
- HlMod :: CrateRoot => semantic_tokens :: CRATE_ROOT ,
734
- HlMod :: DefaultLibrary => semantic_tokens :: DEFAULT_LIBRARY ,
735
- HlMod :: Definition => semantic_tokens :: DECLARATION ,
736
- HlMod :: Documentation => semantic_tokens :: DOCUMENTATION ,
737
- HlMod :: Injected => semantic_tokens :: INJECTED ,
738
- HlMod :: IntraDocLink => semantic_tokens :: INTRA_DOC_LINK ,
739
- HlMod :: Library => semantic_tokens :: LIBRARY ,
740
- HlMod :: Macro => semantic_tokens :: MACRO_MODIFIER ,
741
- HlMod :: ProcMacro => semantic_tokens :: PROC_MACRO_MODIFIER ,
742
- HlMod :: Mutable => semantic_tokens :: MUTABLE ,
743
- HlMod :: Public => semantic_tokens :: PUBLIC ,
744
- HlMod :: Reference => semantic_tokens :: REFERENCE ,
745
- HlMod :: Static => semantic_tokens :: STATIC ,
746
- HlMod :: Trait => semantic_tokens :: TRAIT_MODIFIER ,
747
- HlMod :: Unsafe => semantic_tokens :: UNSAFE ,
728
+ HlMod :: Associated => mods :: ASSOCIATED ,
729
+ HlMod :: Async => mods :: ASYNC ,
730
+ HlMod :: Attribute => mods :: ATTRIBUTE_MODIFIER ,
731
+ HlMod :: Callable => mods :: CALLABLE ,
732
+ HlMod :: Const => mods :: CONSTANT ,
733
+ HlMod :: Consuming => mods :: CONSUMING ,
734
+ HlMod :: ControlFlow => mods :: CONTROL_FLOW ,
735
+ HlMod :: CrateRoot => mods :: CRATE_ROOT ,
736
+ HlMod :: DefaultLibrary => mods :: DEFAULT_LIBRARY ,
737
+ HlMod :: Definition => mods :: DECLARATION ,
738
+ HlMod :: Documentation => mods :: DOCUMENTATION ,
739
+ HlMod :: Injected => mods :: INJECTED ,
740
+ HlMod :: IntraDocLink => mods :: INTRA_DOC_LINK ,
741
+ HlMod :: Library => mods :: LIBRARY ,
742
+ HlMod :: Macro => mods :: MACRO_MODIFIER ,
743
+ HlMod :: ProcMacro => mods :: PROC_MACRO_MODIFIER ,
744
+ HlMod :: Mutable => mods :: MUTABLE ,
745
+ HlMod :: Public => mods :: PUBLIC ,
746
+ HlMod :: Reference => mods :: REFERENCE ,
747
+ HlMod :: Static => mods :: STATIC ,
748
+ HlMod :: Trait => mods :: TRAIT_MODIFIER ,
749
+ HlMod :: Unsafe => mods :: UNSAFE ,
748
750
} ;
749
751
mods |= modifier;
750
752
}
0 commit comments