Exemple #1
0
    def run(symbol, region, sym_line, mbrParts, view, tags_file):
        # print('JumpToDefinition')

        tags = {}
        for tags_file in get_alternate_tags_paths(view, tags_file):
            with TagFile(tags_file, SYMBOL) as tagfile:
                tags = tagfile.get_tags_dict(symbol,
                                             filters=compile_filters(view))
            if tags:
                break

        if not tags:
            return status_message('Can\'t find "%s"' % symbol)

        rankmgr = RankMgr(region, mbrParts, view, symbol, sym_line)

        @prepare_for_quickpanel()
        def sorted_tags():
            taglist = tags.get(symbol, [])
            p_tags = rankmgr.sort_tags(taglist)
            if not p_tags:
                status_message('Can\'t find "%s"' % symbol)
            return p_tags

        return sorted_tags
Exemple #2
0
    def run(symbol, view, tags_file):
        tags = {}
        for tags_file in alternate_tags_paths(view, tags_file):
            tags = (TagFile( tags_file, SYMBOL)
                            .get_tags_dict( symbol,
                                            filters=compile_filters(view)) )
            if tags: break

        if not tags:
            return status_message('Can\'t find "%s"' % symbol)

        current_file = view.file_name().replace(dirname(tags_file) + os.sep, '')

        def_filters = compile_definition_filters(view)
        def pass_def_filter(o):
            for f in def_filters:
                for k, v in list(f.items()):
                    if k in o:
                        if re.match(v, o[k]):
                            return False
            return True

        @prepared_4_quickpanel()
        def sorted_tags():
            p_tags = list(filter(pass_def_filter, tags.get(symbol, [])))
            if not p_tags:
                status_message('Can\'t find "%s"' % symbol)
            p_tags = sorted(p_tags, key=iget('tag_path'))
            return p_tags

        return sorted_tags
    def run(symbol, view, tags_file):
        tags = {}
        for tags_file in get_alternate_tags_paths(view, tags_file):
            with TagFile(tags_file, SYMBOL) as tagfile:
                tags = tagfile.get_tags_dict(symbol,
                                             filters=compile_filters(view))
            if tags:
                break

        if not tags:
            return status_message('Can\'t find "%s"' % symbol)

        def_filters = compile_definition_filters(view)

        def pass_def_filter(o):
            for f in def_filters:
                for k, v in list(f.items()):
                    if k in o:
                        if re.match(v, o[k]):
                            return False
            return True

        @prepare_for_quickpanel()
        def sorted_tags():
            p_tags = list(filter(pass_def_filter, tags.get(symbol, [])))
            if not p_tags:
                status_message('Can\'t find "%s"' % symbol)
            p_tags = sorted(p_tags, key=iget('tag_path'))
            return p_tags

        return sorted_tags
Exemple #4
0
    def run(self, view, args, tags_file, tags):
        if not tags_file: return
        multi = args.get('type') == 'multi'

        files = files_to_search(view, tags_file, multi)
        if not files: return

        tags_file = tags_file + '_sorted_by_file'
        tags = (TagFile(tags_file,
                        FILENAME).get_tags_dict(*files,
                                                filters=compile_filters(view)))
        if not tags:
            if multi:
                view.run_command('show_symbols', {'type': 'multi'})
            else:
                sublime.status_message(
                    'No symbols found **FOR CURRENT FILE**; Try Rebuild?')

        path_cols = (0, ) if len(files) > 1 else ()
        formatting = functools.partial(format_tag_for_quickopen,
                                       file=bool(path_cols))

        @prepared_4_quickpanel(formatting, path_cols=())
        def sorted_tags():
            return sorted(chain(*(tags[k] for k in tags)),
                          key=iget('tag_path'))

        return sorted_tags
Exemple #5
0
 def get_tags():
     loaded = TagFile(tags_file, FILENAME)
     if lang:
         return loaded.get_tags_dict_by_suffix(
             suffix, filters=compile_filters(view))
     else:
         return loaded.get_tags_dict(*files,
                                     filters=compile_filters(view))
Exemple #6
0
 def get_tags():
     with TagFile(tags_file, FILENAME) as tagfile:
         if lang:
             return tagfile.get_tags_dict_by_suffix(
                 suffix, filters=compile_filters(view))
         elif multi:
             return tagfile.get_tags_dict(filters=compile_filters(view))
         else:
             return tagfile.get_tags_dict(*files,
                                          filters=compile_filters(view))
Exemple #7
0
    def run(self, view, args, tags_file, tags):
        symbol = view.substr(view.word(view.sel()[0]))

        for tags_file in alternate_tags_paths(view, tags_file):
            tags = (TagFile(tags_file, SYMBOL).get_tags_dict(
                symbol, filters=compile_filters(view)))
            if tags: break

        if not tags:
            return status_message('Can\'t find "%s"' % symbol)

        current_file = view.file_name().replace(
            dirname(tags_file) + os.sep, '')

        def definition_cmp(a, b):
            if normpath(a.tag_path[0]) == current_file:
                return -1
            if normpath(b.tag_path[0]) == current_file:
                return 1
            return 0

        def_filters = compile_definition_filters(view)

        def pass_def_filter(o):
            for f in def_filters:
                for k, v in f.items():
                    if re.match(v, o[k]):
                        return False
            return True

        @prepared_4_quickpanel()
        def sorted_tags():
            p_tags = filter(pass_def_filter, tags.get(symbol, []))
            if not p_tags:
                status_message('Can\'t find "%s"' % symbol)
            p_tags = sorted(p_tags, key=iget('tag_path'))
            if setting('definition_current_first', False):
                p_tags = sorted(p_tags, cmp=definition_cmp)
            return p_tags

        return sorted_tags