def do_complete(self, code, cursor_pos):
#print('completing on', repr(code), file=sys.__stderr__)
code = code[:cursor_pos]
m = re.search(r'(\w+\.)*(\w+)?$', code)
if m:
prefix = m.group()
#print('prefix', repr(prefix), file=sys.__stderr__)
if '.' in prefix:
obj, prefix = prefix.rsplit('.')
names = self._eval('dir({})'.format(obj))
else:
names = self._eval('dir()')
#print('names', names, file=sys.__stderr__)
matches = [n for n in names if n.startswith(prefix)]
return {'matches': matches,
'cursor_start': cursor_pos - len(prefix), 'cursor_end': cursor_pos,
'metadata': {}, 'status': 'ok'}
else:
return {'matches': [],
'cursor_start': cursor_pos, 'cursor_end': cursor_pos,
'metadata': {}, 'status': 'ok'}
评论列表
文章目录