def on_query_completions(self, view, prefix, locations): if is_robot_format(view): view_file = populate_testcase_file(view) keywords = Scanner(view).scan_file(view_file) lower_prefix = prefix.lower() user_keywords = [(kw[0].keyword.name, kw[0].keyword.name) for kw in keywords.itervalues() if kw[0].keyword.name.lower().startswith(lower_prefix)] return user_keywords
def run(self): scanner = Scanner(self.view) keywords = scanner.scan_file(self.view_file) for folder in self.folders: for root, dirs, files in os.walk(folder): for f in files: if f.endswith('.txt') and f != '__init__.txt': path = os.path.join(root, f) scanner.scan_without_resources(path, keywords) results = [] for bdd_prefix in ['given ', 'and ', 'when ', 'then ', 'but ']: if self.keyword.lower().startswith(bdd_prefix): substr = self.keyword[len(bdd_prefix):] results.extend(self.search_user_keywords(keywords, substr)) results.extend(stdlib_keywords.search_keywords(substr)) results.extend(self.search_user_keywords(keywords, self.keyword)) results.extend(stdlib_keywords.search_keywords(self.keyword)) sublime.set_timeout(lambda: select_keyword_and_go(self.view, results), 0)