@@ -1563,15 +1563,20 @@ async def complete_arguments() -> Optional[List[CompletionItem]]:
15631563
15641564 token_at_position = tokens_at_position [- 1 ]
15651565
1566+ name_token = import_node .get_token (RobotToken .NAME )
1567+ if name_token is None or position .character < range_from_token (name_token ).end .character :
1568+ return None
1569+
15661570 try :
15671571 libdoc = await self .namespace .get_imported_library_libdoc (
15681572 import_node .name , import_node .args , import_node .alias
15691573 )
15701574 if libdoc is not None :
15711575 init = next ((v for v in libdoc .inits .values ()), None )
15721576 if init :
1577+ name_token_index = import_node .tokens .index (name_token )
15731578 return self ._complete_keyword_arguments_at_position (
1574- init , kw_node .tokens , token_at_position , position
1579+ init , kw_node .tokens [ name_token_index :] , token_at_position , position
15751580 )
15761581
15771582 except (SystemExit , KeyboardInterrupt , asyncio .CancelledError ):
@@ -1827,13 +1832,18 @@ async def complete_arguments() -> Optional[List[CompletionItem]]:
18271832
18281833 token_at_position = tokens_at_position [- 1 ]
18291834
1835+ name_token = import_node .get_token (RobotToken .NAME )
1836+ if name_token is None or position .character < range_from_token (name_token ).end .character :
1837+ return None
1838+
18301839 try :
18311840 libdoc = await self .namespace .get_imported_variables_libdoc (import_node .name , import_node .args )
18321841 if libdoc is not None :
18331842 init = next ((v for v in libdoc .inits .values ()), None )
18341843 if init :
1844+ name_token_index = import_node .tokens .index (name_token )
18351845 return self ._complete_keyword_arguments_at_position (
1836- init , kw_node .tokens , token_at_position , position
1846+ init , kw_node .tokens [ name_token_index :] , token_at_position , position
18371847 )
18381848
18391849 except (SystemExit , KeyboardInterrupt , asyncio .CancelledError ):
@@ -1882,7 +1892,7 @@ async def _complete_KeywordCall_or_Fixture( # noqa: N802
18821892 keyword_doc_and_token : Optional [Tuple [Optional [KeywordDoc ], Token ]] = None
18831893
18841894 keyword_token = kw_node .get_token (keyword_name_token_type )
1885- if keyword_token is None :
1895+ if keyword_token is None or position . character < range_from_token ( keyword_token ). end . character :
18861896 return None
18871897
18881898 keyword_doc_and_token = await self .get_keyworddoc_and_token_from_position (
@@ -1902,7 +1912,11 @@ async def _complete_KeywordCall_or_Fixture( # noqa: N802
19021912 if keyword_doc .is_any_run_keyword ():
19031913 return None
19041914
1905- return self ._complete_keyword_arguments_at_position (keyword_doc , kw_node .tokens , token_at_position , position )
1915+ keyword_token_index = kw_node .tokens .index (keyword_token )
1916+
1917+ return self ._complete_keyword_arguments_at_position (
1918+ keyword_doc , kw_node .tokens [keyword_token_index :], token_at_position , position
1919+ )
19061920
19071921 TRUE_STRINGS = {"TRUE" , "YES" , "ON" , "1" }
19081922 FALSE_STRINGS = {"FALSE" , "NO" , "OFF" , "0" , "NONE" , "" }
0 commit comments