Example #1
0
File: __init__.py Project: ABob/vim
    def _simple_complete(self, path, dot, like):
        if not path and not dot:
            scope = self._parser.user_scope()
            if not scope.is_scope():  # Might be a flow (if/while/etc).
                scope = scope.get_parent_scope()
            names_dicts = global_names_dict_generator(
                self._evaluator,
                self._evaluator.wrap(scope),
                self._pos
            )
            completion_names = []
            for names_dict, pos in names_dicts:
                names = list(chain.from_iterable(names_dict.values()))
                if not names:
                    continue
                completion_names += filter_definition_names(names, self._parser.user_stmt(), pos)
        elif self._get_under_cursor_stmt(path) is None:
            return []
        else:
            scopes = list(self._prepare_goto(path, True))
            completion_names = []
            debug.dbg('possible completion scopes: %s', scopes)
            for s in scopes:
                names = []
                for names_dict in s.names_dicts(search_global=False):
                    names += chain.from_iterable(names_dict.values())

                completion_names += filter_definition_names(names, self._parser.user_stmt())
        return completion_names
Example #2
0
    def _simple_complete(self, path, dot, like):
        if not path and not dot:
            scope = self._parser.user_scope()
            if not scope.is_scope():  # Might be a flow (if/while/etc).
                scope = scope.get_parent_scope()
            names_dicts = global_names_dict_generator(
                self._evaluator, self._evaluator.wrap(scope), self._pos)
            completion_names = []
            for names_dict, pos in names_dicts:
                names = list(chain.from_iterable(names_dict.values()))
                if not names:
                    continue
                completion_names += filter_definition_names(
                    names, self._parser.user_stmt(), pos)
        elif self._get_under_cursor_stmt(path) is None:
            return []
        else:
            scopes = list(self._prepare_goto(path, True))
            completion_names = []
            debug.dbg('possible completion scopes: %s', scopes)
            for s in scopes:
                names = []
                for names_dict in s.names_dicts(search_global=False):
                    names += chain.from_iterable(names_dict.values())

                completion_names += filter_definition_names(
                    names, self._parser.user_stmt())
        return completion_names
 def _global_completions(self):
     scope = get_user_scope(self._module, self._position)
     if not scope.is_scope():  # Might be a flow (if/while/etc).
         scope = scope.get_parent_scope()
     scope = self._evaluator.wrap(scope)
     debug.dbg('global completion scope: %s', scope)
     names_dicts = global_names_dict_generator(self._evaluator, scope,
                                               self._position)
     completion_names = []
     for names_dict, pos in names_dicts:
         names = list(chain.from_iterable(names_dict.values()))
         if not names:
             continue
         completion_names += filter_definition_names(
             names, self._module.get_statement_for_position(self._position),
             pos)
     return completion_names
 def _global_completions(self):
     scope = get_user_scope(self._module, self._position)
     if not scope.is_scope():  # Might be a flow (if/while/etc).
         scope = scope.get_parent_scope()
     scope = self._evaluator.wrap(scope)
     debug.dbg('global completion scope: %s', scope)
     names_dicts = global_names_dict_generator(
         self._evaluator,
         scope,
         self._position
     )
     completion_names = []
     for names_dict, pos in names_dicts:
         names = list(chain.from_iterable(names_dict.values()))
         if not names:
             continue
         completion_names += filter_definition_names(
             names, self._module.get_statement_for_position(self._position), pos
         )
     return completion_names