class bls_find_func(BaseTextCommand): """ Если установить курсор на функцию и вызывать эту комманду, она просмотрит все bls из секции uses и найдет те, в которых в экспортируемых функциях находится - наша """ def on_position(self, view, reg_str): if view.is_loading(): sublime.set_timeout(functools.partial(self.on_position, view, reg_str), 100) return fregion = view.find(reg_str, 0, sublime.IGNORECASE) if fregion == None: return fregion = view.line(fregion.end()) view.sel().clear() view.sel().add(fregion) view.show(fregion) def callback(self, idx): if idx == -1: return files = self.finder.get_files() if len(files) == idx+1: webbrowser.open(self.url) else: file_view = self.view.window().open_file(files[idx]) self.on_position(file_view, self.finder.get_reg()) def is_enabled(self): if not self.is_extension("bls"): return False if not self.is_project_file(): return False return True def run(self, edit): view = self.view sel_c = view.sel() word_c = view.word(sel_c[0]) word = view.substr(word_c).encode('utf-8').strip() if len(word) == 0: return self.url = 'http://bsdn/w/index.php?search='+word cur_file_text = view.substr(sublime.Region(0, view.size())).encode('cp1251') self.finder = FindBLSFunc() self.finder.run(self.fullpath(), cur_file_text, word.lower()) view.window().show_quick_panel(self.finder.get_files(), self.callback)
def run(self, edit): view = self.view sel_c = view.sel() word_c = view.word(sel_c[0]) word = view.substr(word_c).encode('utf-8').strip() if len(word) == 0: return self.url = 'http://bsdn/w/index.php?search='+word cur_file_text = view.substr(sublime.Region(0, view.size())).encode('cp1251') self.finder = FindBLSFunc() self.finder.run(self.fullpath(), cur_file_text, word.lower()) view.window().show_quick_panel(self.finder.get_files(), self.callback)