@@ -654,97 +654,99 @@ pub(crate) fn semantic_token_delta(
654654fn semantic_token_type_and_modifiers (
655655 highlight : Highlight ,
656656) -> ( lsp_types:: SemanticTokenType , semantic_tokens:: ModifierSet ) {
657+ use semantic_tokens:: { modifiers as mods, types} ;
658+
657659 let ty = match highlight. tag {
658660 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 ,
688690 } ,
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 ,
700702 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 ,
706708 } ,
707- HlTag :: StringLiteral => semantic_tokens :: STRING ,
708- HlTag :: UnresolvedReference => semantic_tokens :: UNRESOLVED_REFERENCE ,
709+ HlTag :: StringLiteral => types :: STRING ,
710+ HlTag :: UnresolvedReference => types :: UNRESOLVED_REFERENCE ,
709711 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 ,
720722 } ,
721723 } ;
722724
723725 let mut mods = semantic_tokens:: ModifierSet :: default ( ) ;
724726 for modifier in highlight. mods . iter ( ) {
725727 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 ,
748750 } ;
749751 mods |= modifier;
750752 }
0 commit comments