def run(self, edit, characters='('): """ Insert completion character, and complete function parameters if possible :param edit: sublime.Edit :param characters: (str """ self._insert_characters(edit, characters, ')') # nothing to do with non-python code if not is_python_scope(self.view, self.view.sel()[0].begin()): return ask_daemon(self.view, self.show_template, 'funcargs', self.view.sel()[0].end())
def on_query_completions(self, view, prefix, locations): """ Sublime autocomplete event handler Get completions depends on current cursor position and return them as list of ('possible completion', 'completion type') :param view: `sublime.View` object :type view: sublime.View :param prefix: string for completions :type prefix: basestring :param locations: offset from beginning :type locations: int :return: list of tuple(str, str) """ logger.info('JEDI completion triggered') if self.cplns_ready: logger.debug( 'JEDI has completion in daemon response {0}'.format( self.completions ) ) self.cplns_ready = None if self.completions: cplns, self.completions = self.completions, [] return [tuple(i) for i in cplns] return if view.settings().get("repl", False): logger.debug("JEDI does not complete in SublimeREPL views") return # nothing to do with non-python code if not is_python_scope(view, locations[0]): logger.debug('JEDI does not complete in strings') return # get completions list if self.cplns_ready is None: ask_daemon(view, self.show_completions, 'autocomplete', locations[0]) self.cplns_ready = False return
def is_enabled(self): """ command enable only for python source code """ if not is_python_scope(self.view, self.view.sel()[0].begin()): return False return True