def find_attribute_name(view, start_pt): conds = track_scope('string'), track_regex('\s|='), track_regex('\S') regions = back_track(view, start_pt, *conds) return view.substr(regions[-1]) ################################################################################
def css_prefixer(view, pt): region = back_track( view, pt, lambda v, p: not view.substr(p).isspace() and not view.match_selector( p, 'punctuation'))[0] return view.substr( region if region is not None else sublime.Region(pt, pt))
def find_css_selector(view, start_pt): conds = [track_scope(CSS_SELECTOR)] if not view.match_selector(start_pt, CSS_SELECTOR): conds.insert(0, track_scope(CSS_SELECTOR, False)) selector = back_track(view, start_pt, *conds)[-1] if selector is not None: return view.substr(selector).strip()
def find_tag_start(view, start_pt): regions = back_track(view, start_pt, track_regex('<', False) ) return regions[-1].begin()
def find_css_property(view, start_pt): conds = track_scope(CSS_PROP, False), track_scope(CSS_PROP) regions = back_track(view, start_pt, *conds) return view.substr(regions[-1])
def css_prefixer(view, pt): region = back_track( view, pt, lambda v, p: not view.substr(p).isspace() and not view.match_selector(p, 'punctuation'))[0] return view.substr(region if region is not None else sublime.Region(pt, pt))