def setup(self, id, folders): def callback(filename): self.add(id, filename) self.init(id) if self.running_thread != None: self.running_thread.stop() self.running_thread = Runner(settings, folders, 30, callback) self.running_thread.start()
def update_all(self, filename): def callback(filename): for id in self.dictionaries.keys(): self.update(id, filename) if self.running_thread != None: self.running_thread.stop() self.running_thread = Runner(settings, filename, 30, callback) self.running_thread.start()
class Steptionary: dictionaries = {} running_thread = None def refresh_steps(self, dictionary): l = [] for f in dictionary[FEATURES]: l += cache.get(f) dictionary[STEPS] = list(set(l)) # Initialize window's dictionary def init(self, id): self.dictionaries[id] = {STEPS: [], FEATURES: []} # Add feature to the window's dictionary def add(self, id, filename): dictionary = self.dictionaries[id] if filename not in dictionary[FEATURES]: s = set(dictionary[FEATURES]) s.add(filename) dictionary[FEATURES] = list(s) self.refresh_steps(dictionary) # Update steps only if the dictionary contains this feature def update(self, id, filename): dictionary = self.dictionaries[id] if filename in dictionary[FEATURES]: self.refresh_steps(dictionary) def setup(self, id, folders): def callback(filename): self.add(id, filename) self.init(id) if self.running_thread != None: self.running_thread.stop() self.running_thread = Runner(settings, folders, 30, callback) self.running_thread.start() def update_all(self, filename): def callback(filename): for id in self.dictionaries.keys(): self.update(id, filename) if self.running_thread != None: self.running_thread.stop() self.running_thread = Runner(settings, filename, 30, callback) self.running_thread.start() def get_completions(self, id, prefix): steps = self.dictionaries[id][STEPS] completions = [(e,) * 2 for e in steps if e.find(prefix) != -1] return completions def is_feature(self, filename): name, extension = os.path.splitext(filename) if extension in settings.get('cucumber_feature_extensions'): return True return False