@@ -235,8 +235,10 @@ pub(crate) fn semantic_tokens(
235
235
let mut builder = semantic_tokens:: SemanticTokensBuilder :: default ( ) ;
236
236
237
237
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
+
240
242
for mut text_range in line_index. lines ( highlight_range. range ) {
241
243
if text[ text_range] . ends_with ( '\n' ) {
242
244
text_range =
@@ -250,7 +252,9 @@ pub(crate) fn semantic_tokens(
250
252
builder. build ( )
251
253
}
252
254
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 ) {
254
258
let mut mods = semantic_tokens:: ModifierSet :: default ( ) ;
255
259
let type_ = match highlight. tag {
256
260
HighlightTag :: Struct => lsp_types:: SemanticTokenType :: STRUCT ,
@@ -300,7 +304,7 @@ fn token_type_index_modifiers_bitself(highlight: Highlight) -> (u32, u32) {
300
304
mods |= modifier;
301
305
}
302
306
303
- ( semantic_tokens :: type_index ( type_) , mods. 0 )
307
+ ( type_, mods)
304
308
}
305
309
306
310
pub ( crate ) fn folding_range (
0 commit comments