@@ -366,6 +366,26 @@ async def generate_sem_sub_tokens(
366
366
yield SemTokenInfo .from_token (token , sem_type , sem_mod , col_offset + kw_index , len (kw ))
367
367
elif token .type == RobotToken .NAME and isinstance (node , (LibraryImport , ResourceImport , VariablesImport )):
368
368
yield SemTokenInfo .from_token (token , RobotSemTokenTypes .NAMESPACE , sem_mod , col_offset , length )
369
+ elif get_robot_version () >= (5 , 0 ) and token .type == RobotToken .OPTION :
370
+ from robot .parsing .model .statements import ExceptHeader , WhileHeader
371
+
372
+ if (
373
+ isinstance (node , ExceptHeader )
374
+ and token .value .startswith ("type=" )
375
+ or isinstance (node , WhileHeader )
376
+ and token .value .startswith ("limit=" )
377
+ ):
378
+ if col_offset is None :
379
+ col_offset = token .col_offset
380
+
381
+ name , value = token .value .split ("=" , 1 )
382
+ yield SemTokenInfo .from_token (token , RobotSemTokenTypes .VARIABLE , sem_mod , col_offset , len (name ))
383
+ yield SemTokenInfo .from_token (
384
+ token , SemanticTokenTypes .OPERATOR , sem_mod , col_offset + len (name ), 1
385
+ )
386
+ yield SemTokenInfo .from_token (token , sem_type , sem_mod , col_offset + len (name ) + 1 , len (value ))
387
+ else :
388
+ yield SemTokenInfo .from_token (token , sem_type , sem_mod , col_offset , length )
369
389
elif (
370
390
token .type in RobotToken .SETTING_TOKENS
371
391
and token .value
0 commit comments