diff --git a/jedi/parser/python/tree.py b/jedi/parser/python/tree.py index 91c5c165..f590f72c 100644 --- a/jedi/parser/python/tree.py +++ b/jedi/parser/python/tree.py @@ -1230,7 +1230,15 @@ class Param(PythonBaseNode): @property def position_nr(self): - return self.parent.children.index(self) - 1 + index = self.parent.children.index(self) + try: + keyword_only_index = self.parent.children.index('*') + if index > keyword_only_index: + # Skip the ` *, ` + index -= 2 + except ValueError: + pass + return index - 1 def get_parent_function(self): return search_ancestor(self, ('funcdef', 'lambda')) diff --git a/test/completion/pep0484_basic.py b/test/completion/pep0484_basic.py index b944cd1d..0230d375 100644 --- a/test/completion/pep0484_basic.py +++ b/test/completion/pep0484_basic.py @@ -158,3 +158,10 @@ Y = int def just_because_we_can(x: "flo" + "at"): #? float() x + + +def keyword_only(a: str, *, b: str): + #? ['startswith'] + a.startswi + #? ['startswith'] + b.startswi