def get_completions(self): index = self.model.index("insert") script = Script(self.model.get_text(), line=index.line, column=index.col, path=self.model.document.get_path()) create_completion = lambda j, t="": JediCompletion(j,t, line=index.line, column=index.col) try: call_signatures = script.call_signatures() except SyntaxError: return ("", []) if not call_signatures: char = self.model.get("insert - 1c") if not char or not char in set(session.config.get('wchars')+"."): return ("", []) completions = sorted(script.completions(), key=comparator_key) return ("", (create_completion(completion) for completion in completions)) else: call_signature = "%(name)s(%(args)s)"% { 'name' : call_signatures[0].name, 'args' : ",".join(p.name for p in call_signatures[0].params) } if call_signatures[0].index is None: return (call_signature, []) char = self.model.get("insert - 1c") if not char or not char in set(session.config.get('wchars')+"."): return (call_signature, []) param_def = call_signatures[0].params[call_signatures[0].index] completions = sorted(script.completions(), key=comparator_key) return (call_signature, (create_completion(completion) for completion in completions))