def parse_bracket_definition(self, language, loaded_modules): """ Parse the bracket defintion """ names = [] subnames = [] find_regex = [] sub_find_regex = [] for params in self.bracket_rules: if is_valid_definition(params, language): try: bh_plugin.load_modules(params, loaded_modules) entry = BracketDefinition(params) if not self.check_compare and entry.compare is not None: self.check_compare = True if not self.check_validate and entry.validate is not None: self.check_validate = True if not self.check_post_match and entry.post_match is not None: self.check_post_match = True if not self.highlighting and entry.highlighting is not None: self.highlighting = True self.brackets.append(entry) if not entry.find_in_sub_search_only: find_regex.append(params["open"]) find_regex.append(params["close"]) names.append(params["name"]) else: find_regex.append(r"([^\s\S])") find_regex.append(r"([^\s\S])") if entry.find_in_sub_search: sub_find_regex.append(params["open"]) sub_find_regex.append(params["close"]) subnames.append(params["name"]) else: sub_find_regex.append(r"([^\s\S])") sub_find_regex.append(r"([^\s\S])") except Exception as e: log(e) if len(self.brackets): self.brackets = tuple(self.brackets) debug( "Bracket Pattern: (%s)\n" % ','.join(names) + " (Opening|Closing): (?:%s)\n" % '|'.join(find_regex) ) debug( "SubBracket Pattern: (%s)\n" % ','.join(subnames) + " (Opening|Closing): (?:%s)\n" % '|'.join(sub_find_regex) ) self.sub_pattern = ure.compile("(?:%s)" % '|'.join(sub_find_regex), ure.MULTILINE | ure.IGNORECASE) self.pattern = ure.compile("(?:%s)" % '|'.join(find_regex), ure.MULTILINE | ure.IGNORECASE)
def parse_bracket_definition(self, language, loaded_modules): """ Parse the bracket defintion """ names = [] subnames = [] find_regex = [] sub_find_regex = [] for params in self.bracket_rules: if is_valid_definition(params, language): try: bh_plugin.load_modules(params, loaded_modules) entry = BracketDefinition(params) if not self.check_compare and entry.compare is not None: self.check_compare = True if not self.check_validate and entry.validate is not None: self.check_validate = True if not self.check_post_match and entry.post_match is not None: self.check_post_match = True if not self.highlighting and entry.highlighting is not None: self.highlighting = True self.brackets.append(entry) if not entry.find_in_sub_search_only: find_regex.append(params["open"]) find_regex.append(params["close"]) names.append(params["name"]) else: find_regex.append(r"([^\s\S])") find_regex.append(r"([^\s\S])") if entry.find_in_sub_search: sub_find_regex.append(params["open"]) sub_find_regex.append(params["close"]) subnames.append(params["name"]) else: sub_find_regex.append(r"([^\s\S])") sub_find_regex.append(r"([^\s\S])") except Exception as e: log(e) if len(self.brackets): self.brackets = tuple(self.brackets) debug("Bracket Pattern: (%s)\n" % ','.join(names) + " (Opening|Closing): (?:%s)\n" % '|'.join(find_regex)) debug("SubBracket Pattern: (%s)\n" % ','.join(subnames) + " (Opening|Closing): (?:%s)\n" % '|'.join(sub_find_regex)) self.sub_pattern = ure.compile("(?:%s)" % '|'.join(sub_find_regex), ure.MULTILINE | ure.IGNORECASE) self.pattern = ure.compile("(?:%s)" % '|'.join(find_regex), ure.MULTILINE | ure.IGNORECASE)
def __init__(self, bracket): """ Setup the bracket object by reading the passed in dictionary. """ self.style = bracket.get("style", "default") self.open = ure.compile("\\A" + bracket.get("open", "."), ure.MULTILINE | ure.IGNORECASE) self.close = ure.compile(bracket.get("close", ".") + "\\Z", ure.MULTILINE | ure.IGNORECASE) self.name = bracket["name"] sub_search = bracket.get("sub_bracket_search", "false") self.sub_search_only = sub_search == "only" self.sub_search = self.sub_search_only == True or sub_search == "true" self.compare = bracket.get("compare") self.post_match = bracket.get("post_match") self.scopes = bracket["scopes"]
def __init__(self, bracket): """ Setup the bracket object by reading the passed in dictionary. """ self.style = bracket.get("style", BH_STYLE) self.open = ure.compile("\\A" + bracket.get("open", "."), ure.MULTILINE | ure.IGNORECASE) self.close = ure.compile(bracket.get("close", ".") + "\\Z", ure.MULTILINE | ure.IGNORECASE) self.name = bracket["name"] sub_search = bracket.get("sub_bracket_search", BH_SUB_BRACKET) self.sub_search_only = sub_search == "only" self.sub_search = self.sub_search_only is True or sub_search == "true" self.compare = bracket.get("compare", BH_COMPARE_MATCH) self.post_match = bracket.get("post_match", BH_POST_MATCH) self.validate = bracket.get("validate", BH_VALIDATE_MATCH) self.scopes = bracket["scopes"]
def __init__(self, bracket): """ Setup the bracket object by reading the passed in dictionary. """ self.style = bracket.get("style", BH_STYLE) self.open = ure.compile("\\A" + bracket.get("open", "."), ure.MULTILINE | ure.IGNORECASE) self.close = ure.compile( bracket.get("close", ".") + "\\Z", ure.MULTILINE | ure.IGNORECASE) self.name = bracket["name"] sub_search = bracket.get("sub_bracket_search", BH_SUB_BRACKET) self.sub_search_only = sub_search == "only" self.sub_search = self.sub_search_only is True or sub_search == "true" self.compare = bracket.get("compare", BH_COMPARE_MATCH) self.post_match = bracket.get("post_match", BH_POST_MATCH) self.validate = bracket.get("validate", BH_VALIDATE_MATCH) self.scopes = bracket["scopes"]
def init_brackets(self, language): """ Initialize bracket match definition objects from settings file. """ self.find_regex = [] self.sub_find_regex = [] self.index_open = {} self.index_close = {} self.brackets = [] self.scopes = [] self.view_tracker = (language, self.view.id()) self.enabled = False self.sels = [] self.multi_select = False scopes = {} loaded_modules = self.loaded_modules.copy() for params in self.bracket_types: if self.is_valid_definition(params, language): try: load_modules(params, loaded_modules) entry = BracketDefinition(params) self.brackets.append(entry) if not entry.find_in_sub_search_only: self.find_regex.append(params["open"]) self.find_regex.append(params["close"]) else: self.find_regex.append(r"([^\s\S])") self.find_regex.append(r"([^\s\S])") if entry.find_in_sub_search: self.sub_find_regex.append(params["open"]) self.sub_find_regex.append(params["close"]) else: self.sub_find_regex.append(r"([^\s\S])") self.sub_find_regex.append(r"([^\s\S])") except Exception as e: bh_logging(e) scope_count = 0 for params in self.scope_types: if self.is_valid_definition(params, language): try: load_modules(params, loaded_modules) entry = ScopeDefinition(params) for x in entry.scopes: if x not in scopes: scopes[x] = scope_count scope_count += 1 self.scopes.append({"name": x, "brackets": [entry]}) else: self.scopes[scopes[x]]["brackets"].append(entry) except Exception as e: bh_logging(e) if len(self.brackets): bh_debug( "Search patterns:\n" + "(?:%s)\n" % '|'.join(self.find_regex) + "(?:%s)" % '|'.join(self.sub_find_regex) ) self.sub_pattern = ure.compile("(?:%s)" % '|'.join(self.sub_find_regex), ure.MULTILINE | ure.IGNORECASE) self.pattern = ure.compile("(?:%s)" % '|'.join(self.find_regex), ure.MULTILINE | ure.IGNORECASE) self.enabled = True