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>""" """ (%(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()
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)