예제 #1
0
파일: spots.py 프로젝트: boltjs/bolt
def spots(view):

    candidates = view.find_all('[a-zA-Z]+')
    inj = regions.injs(view)

    def spotter(region):
        return Spot(view.substr(region).strip(), region.begin(), region.end())

    def pred(region):
        text = view.substr(region)
        scope = view.scope_name(region.begin())
        ignored_scopes = filter(lambda x: scope.startswith('source.js ' + x), excluded_scopes())
        return len(ignored_scopes) == 0 and region.begin() > inj.end() and re.match('^[A-Z]', text)

    spot_regions = filter(pred, candidates)
    return map(spotter, spot_regions)
예제 #2
0
파일: file_type.py 프로젝트: boltjs/bolt
def is_bolt_module(view):

    possible_starts = ['define\(', 'test\(']

    js = view.file_name() != None and view.file_name().endswith('.js')
    if js:

        dep_region = regions.deps(view)
        inj_region = regions.injs(view)

        def is_prefix(x):
            pos = view.find(x, 0)
            return pos != None and pos.begin() < dep_region.begin()

        if (dep_region != None and inj_region != None and dep_region.begin() < inj_region.begin()):
            defns = filter(is_prefix, possible_starts)
            if len(defns) == 0:
                return False
            else:
                return True

    return False
예제 #3
0
파일: write.py 프로젝트: boltjs/bolt
def _injs(view, edit, xs):
    region = regions.injs(view)
    view.replace(edit, region, _format_injs(xs))
예제 #4
0
파일: regions.py 프로젝트: boltjs/bolt
def injs(view):
    cursor = selection.point(view)
    return regions.injs(view).contains(cursor)
예제 #5
0
파일: regions.py 프로젝트: boltjs/bolt
def after_injs(view):
    cursor = selection.point(view)
    injs = regions.injs(view)
    return cursor > injs.end()
예제 #6
0
파일: text.py 프로젝트: boltjs/bolt
def injs(view):
    region = regions.injs(view)
    return _region(view, region)