Пример #1
0
def find_tag(prompt=False):
    tags = ctags()
    if prompt:
        current_word = get_string()
    else:
        current_word = os.environ['TM_CURRENT_WORD']
    entry = TagEntry()
    res = tags.find(entry, current_word, TAG_FULLMATCH | TAG_OBSERVECASE)
    print html_header('CTags', 'Find Tag')
    if res==0:
        print "Not found."
        sys.exit()
    matches = [(entry['name'], entry['kind'], entry['file'], entry['pattern'])]
    while tags.findNext(entry):
         matches.append((entry['name'], entry['kind'], entry['file'], entry['pattern']))

    matches.sort(key=priority)

    for entry in matches:
        line, col = position(entry[2], entry[3])
        # Try to figure out package name from file path
        m = re.search(r'/([^/]+)\-[^-]+\-py\d\.\d\.egg/', entry[2])
        if m:
            package_name = m.group(1)
        else:
            m = re.search(r'/src/([^/]+)', entry[2])
            if m:
                package_name = m.group(1)
            else:
                package_name = '-'
        # #short_file = re.sub(r'(.*)\-[^-]+\-py\d\.\d\.egg/', r'\1', entry[2])
        #short_file = re.sub(r'.*/src/', '', short_file)
        print ("""<a href="txmt://open?url=file://%(file)s&line="""
              """%(line)s">%(name)s</a>"""
              """&nbsp;(%(kind)s, %(package_name)s)<pre>%(file)s:%(line)s</pre>""" % (dict(
              line=line+1,
              col=col+1,
              name=entry[0],
              kind=entry[1],
              file=entry[2],
              pattern=entry[3],
              package_name=package_name,)))

    print html_footer()
Пример #2
0
    return choice

if __name__ == '__main__':
    assert int(CSCOPE_COMMAND) in range(-1,9)
  
    if int(CSCOPE_COMMAND) == -1:
        build()
        exit(0)

    # up to now the only command for which we want to use the filenames is the find #includes
    # TODO: beautify the elif, maybe using an helper function?
    try:
        if (int(CSCOPE_COMMAND) == 8):
            search = os.environ['TM_FILENAME']
        elif (int(CSCOPE_COMMAND) == 0):
            search = dialog.get_string(title="Find C Symbol", prompt="Symbol:")
        elif (int(CSCOPE_COMMAND) == 4):
            search = dialog.get_string(title="Find this string text", prompt="Text:")
        elif (int(CSCOPE_COMMAND) == 6):
            search = dialog.get_string(title="Find this egrep expression", prompt="Regexp:")
        elif (int(CSCOPE_COMMAND) == 7):
            search = dialog.get_string(title="Find this file", prompt="Filename:")
        else:
            search = os.environ.get('TM_SELECTED_TEXT') or os.environ['TM_CURRENT_WORD']
    except:
        print 'No word selected'
        exit(1)
  
    if not search:
        exit(1)