def generate_parameters(self, text, state):
if state == 0:
self.available = []
self.current = 0
try:
line = readline.get_line_buffer()[:readline.get_endidx()].split(' ')
cmd = self.manager.find(line[0])
except:
return 0
current_params = list(filter(lambda x: len(x.strip()) > 0, line[1:-1] if len(line) > 2 else []))
if ',' in text:
text = text.split(',')[-1]
for i in cmd.parameters(self.mole, current_params):
if i[:len(text)] == text:
self.available.append(i)
self.available.sort()
if len(self.available) == 1:
text = self.available[0]
self.available = []
self.current = len(self.available)
return text + cmd.parameter_separator(current_params)
return self.get_completion(text, state)
评论列表
文章目录