@@ -370,6 +370,26 @@ async def generate_sem_tokens(
370370 resources_matchers : Container [KeywordMatcher ],
371371 ) -> AsyncGenerator [SemTokenInfo , None ]:
372372 from robot .parsing .lexer .tokens import Token as RobotToken
373+ from robot .parsing .model .statements import Fixture , KeywordCall
374+ from robot .utils .escaping import split_from_equals
375+
376+ if token .type in {RobotToken .ARGUMENT } and isinstance (node , (KeywordCall , Fixture )):
377+ name , value = split_from_equals (token .value )
378+ if value is not None :
379+ if isinstance (node , KeywordCall ):
380+ doc = await namespace .find_keyword (node .keyword )
381+ elif isinstance (node , Fixture ):
382+ doc = await namespace .find_keyword (node .name )
383+ else :
384+ doc = None
385+
386+ if doc and any (v for v in doc .args if v .name == name ):
387+ length = len (name )
388+ yield SemTokenInfo .from_token (token , RobotSemTokenTypes .VARIABLE , length = length )
389+ yield SemTokenInfo .from_token (
390+ token , SemanticTokenTypes .OPERATOR , col_offset = token .col_offset + length , length = 1
391+ )
392+ token = RobotToken (token .type , value , token .lineno , token .col_offset + length + 1 , token .error )
373393
374394 if token .type in {* RobotToken .ALLOW_VARIABLES , RobotToken .KEYWORD , ROBOT_KEYWORD_INNER }:
375395
@@ -499,7 +519,7 @@ async def generate_run_kw_if() -> AsyncGenerator[Tuple[Token, ast.AST], None]:
499519
500520 yield arguments [0 ], node ,
501521 arguments = arguments [1 :]
502- has_separator = False
522+
503523 while arguments :
504524 async for b in skip_non_data_tokens ():
505525 yield b
@@ -553,11 +573,9 @@ async def generate_run_kw_if() -> AsyncGenerator[Tuple[Token, ast.AST], None]:
553573 if separator_token is not None :
554574 args = arguments [: arguments .index (separator_token )]
555575 arguments = arguments [arguments .index (separator_token ) :]
556- has_separator = True
557576 else :
558- if has_separator :
559- args = arguments
560- arguments = []
577+ args = arguments
578+ arguments = []
561579
562580 async for e in self .generate_run_kw_tokens (
563581 namespace ,
0 commit comments