@@ -235,8 +235,10 @@ pub(crate) fn semantic_tokens(
235235 let mut builder = semantic_tokens:: SemanticTokensBuilder :: default ( ) ;
236236
237237 for highlight_range in highlights {
238- let ( token_index, modifier_bitset) =
239- token_type_index_modifiers_bitself ( highlight_range. highlight ) ;
238+ let ( type_, mods) = semantic_token_type_and_modifiers ( highlight_range. highlight ) ;
239+ let token_index = semantic_tokens:: type_index ( type_) ;
240+ let modifier_bitset = mods. 0 ;
241+
240242 for mut text_range in line_index. lines ( highlight_range. range ) {
241243 if text[ text_range] . ends_with ( '\n' ) {
242244 text_range =
@@ -250,7 +252,9 @@ pub(crate) fn semantic_tokens(
250252 builder. build ( )
251253}
252254
253- fn token_type_index_modifiers_bitself ( highlight : Highlight ) -> ( u32 , u32 ) {
255+ fn semantic_token_type_and_modifiers (
256+ highlight : Highlight ,
257+ ) -> ( lsp_types:: SemanticTokenType , semantic_tokens:: ModifierSet ) {
254258 let mut mods = semantic_tokens:: ModifierSet :: default ( ) ;
255259 let type_ = match highlight. tag {
256260 HighlightTag :: Struct => lsp_types:: SemanticTokenType :: STRUCT ,
@@ -300,7 +304,7 @@ fn token_type_index_modifiers_bitself(highlight: Highlight) -> (u32, u32) {
300304 mods |= modifier;
301305 }
302306
303- ( semantic_tokens :: type_index ( type_) , mods. 0 )
307+ ( type_, mods)
304308}
305309
306310pub ( crate ) fn folding_range (
0 commit comments