1
0
forked from VimPlug/jedi

fix a completion in dict problem

This commit is contained in:
David Halter
2013-05-03 18:31:05 +04:30
parent 55d2b19cc0
commit a2da599d6e
2 changed files with 18 additions and 7 deletions

View File

@@ -68,13 +68,19 @@ def check_arr_index(arr, pos):
def array_for_pos(stmt, pos, array_types=None):
"""Searches for the array and position of a tuple"""
def search_array(arr, pos):
for i, stmt in enumerate(arr):
new_arr, index = array_for_pos(stmt, pos, array_types)
if new_arr is not None:
return new_arr, index
if arr.start_pos < pos <= stmt.end_pos:
if not array_types or arr.type in array_types:
return arr, i
if arr.type == 'dict':
for stmt in arr.values + arr.keys:
new_arr, index = array_for_pos(stmt, pos, array_types)
if new_arr is not None:
return new_arr, index
else:
for i, stmt in enumerate(arr):
new_arr, index = array_for_pos(stmt, pos, array_types)
if new_arr is not None:
return new_arr, index
if arr.start_pos < pos <= stmt.end_pos:
if not array_types or arr.type in array_types:
return arr, i
if len(arr) == 0 and arr.start_pos < pos < arr.end_pos:
if not array_types or arr.type in array_types:
return arr, 0

View File

@@ -181,6 +181,11 @@ def f():
#? dict()
f()
# completion within dicts
#? 9 ['str']
{str: str}
# -----------------
# with variable as index
# -----------------