@@ -1563,15 +1563,20 @@ async def complete_arguments() -> Optional[List[CompletionItem]]:
1563
1563
1564
1564
token_at_position = tokens_at_position [- 1 ]
1565
1565
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
+
1566
1570
try :
1567
1571
libdoc = await self .namespace .get_imported_library_libdoc (
1568
1572
import_node .name , import_node .args , import_node .alias
1569
1573
)
1570
1574
if libdoc is not None :
1571
1575
init = next ((v for v in libdoc .inits .values ()), None )
1572
1576
if init :
1577
+ name_token_index = import_node .tokens .index (name_token )
1573
1578
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
1575
1580
)
1576
1581
1577
1582
except (SystemExit , KeyboardInterrupt , asyncio .CancelledError ):
@@ -1827,13 +1832,18 @@ async def complete_arguments() -> Optional[List[CompletionItem]]:
1827
1832
1828
1833
token_at_position = tokens_at_position [- 1 ]
1829
1834
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
+
1830
1839
try :
1831
1840
libdoc = await self .namespace .get_imported_variables_libdoc (import_node .name , import_node .args )
1832
1841
if libdoc is not None :
1833
1842
init = next ((v for v in libdoc .inits .values ()), None )
1834
1843
if init :
1844
+ name_token_index = import_node .tokens .index (name_token )
1835
1845
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
1837
1847
)
1838
1848
1839
1849
except (SystemExit , KeyboardInterrupt , asyncio .CancelledError ):
@@ -1882,7 +1892,7 @@ async def _complete_KeywordCall_or_Fixture( # noqa: N802
1882
1892
keyword_doc_and_token : Optional [Tuple [Optional [KeywordDoc ], Token ]] = None
1883
1893
1884
1894
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 :
1886
1896
return None
1887
1897
1888
1898
keyword_doc_and_token = await self .get_keyworddoc_and_token_from_position (
@@ -1902,7 +1912,11 @@ async def _complete_KeywordCall_or_Fixture( # noqa: N802
1902
1912
if keyword_doc .is_any_run_keyword ():
1903
1913
return None
1904
1914
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
+ )
1906
1920
1907
1921
TRUE_STRINGS = {"TRUE" , "YES" , "ON" , "1" }
1908
1922
FALSE_STRINGS = {"FALSE" , "NO" , "OFF" , "0" , "NONE" , "" }
0 commit comments