def _callback(self, idx): if idx == -1: return func_info = self.func_list[idx] func_file = func_info[0] func_decl = func_info[2] cur_file_name = utils.file_name_by_fullname(self.view.file_name()) file_text = self.view.substr(sublime.Region(0, self.view.size())).encode("cp1251") parse_result = blsparse.parse_text(file_text) uses_list = map(lambda it : it.strip().lower(), parse_result["Uses"]) if (func_file not in uses_list) and (func_file != cur_file_name): func_decl += "{%s}" % func_file point = self.view.sel()[0].begin() self.view.insert(self.edit, point, func_decl)
def find_bls(self, cur_file_path, cur_file_text): "Вернет список всех bls файлов в проекте, которые экспортируют искомую функцию" path = PathResolver(cur_file_path).GetBlsDir() uses = utils.parse_bls(cur_file_text, 'uses') name = utils.file_name_by_fullname(cur_file_path) uses.append(name) bls_files = [] for root, dirs, filenames in os.walk(path): for filename in fnmatch.filter(filenames, '*.bls'): name = utils.file_name_by_basename(filename) if name in uses: full_path = os.path.join(root, filename) exports = utils.parse_bls(open(full_path).read(), 'exports') if self.func in exports: bls_files.append(full_path) return bls_files
def set_compiled(self, path): name = utils.file_name_by_fullname(path) f = self.files[name] f.on_compiled()
def __init__(self, full_path): self.full_path = full_path self.name = utils.file_name_by_fullname(full_path) self.md5 = ''
def run_check_bls(self, view): syntax = view.settings().get("syntax") if utils.file_name_by_fullname(syntax) != u"bls": return self.timer_edit.call(view)