Code browser plug-in

Gerd Knops has released version 1.0 of TmCodeBrowser:

TmCodeBrowser is a TextMate plugin designed to help navigating source files. It will parse any language known to the underlying Exuberant Ctags program (enhanced by a small script to also support Objective-C). It will present classes, subroutines etc. in a TreeView. Clicking on any entry will jump to the corresponding location in the source code.

My hat goes off to Gerd for putting this together and releasing it to the public!

13 Comments

  1. 04 Nov 2005 | # Jesse wrote…

    This is completely awesome. I downloaded it and it Just Works – it's a very nice plugin indeed. Esp. if you have about 50 classes/functions to go filtering through.

    (I deal with Python apps – so we know it works well with those!)

  2. 06 Nov 2005 | # Bob Aman wrote…

    Awww, sweet. I saw this earlier today, but just installed it. It's wonderful, but for one tiny problem: In Ruby, it lists both "foo" and "foo=" methods as "foo", so you aren't sure which method it's going to navigate to. I assume this is an issue with exuberant ctags, but it's still annoying. It's not really a show-stopper though, so I'll be enjoying it in the meantime.

  3. 10 Nov 2005 | # David wrote…

    Nice! And it handles my biggest gripe with TextMate – the Go to Symbol only seems to show my #defines in C (not functions as I was hoping). But they show up very nicely in the CodeBrowser.

    Thanks for the pointer!

  4. 10 Nov 2005 | # Mark wrote…

    Fantastic! Great addition to TextMate Gerd.

    Thanks.

  5. 14 Nov 2005 | # Jan-Henrik wrote…

    Nice! This give me a couple of ideas:

    1) Use etags for simple code completion. Emacs have had this for years (http://www.linuxjournal.com/node/153/print) and it should be possible to use ideas from some of the code completion wrappers around etag in TextMate also.

    2) I would love to see this code browser of Gerd as a pop up menu in the status bar just like the one in xcode. Its easier to access than having to open a code browser window.

  6. 15 Nov 2005 | # Allan Odgaard wrote…

    Jan-Henrik: latest builds do have a symbol/function pop-up in the status bar. It's not using ctags, but it works for most languages.

  7. 16 Nov 2005 | # Oscar Ruitt wrote…

    As with TextMate itself, I don't see support for Ada or Octave (gnu Matlab). Any ideas?

  8. 16 Nov 2005 | # Jan-Henrik wrote…

    Thanks Allan. This works great for Java and Ruby. However I do most of my programming in plain C and it does not seems to work for this language. At best I only get a list of my #defines. The reason seems to be that the C bundle does not have a "Symbol List" entry? I tried to add the one used in the Java bundle with some changes, but that didn't work. Suggestions?

  9. 16 Nov 2005 | # Allan Odgaard wrote…

    Oscar: The svn repository has bundles for Ada and Matlab. You'll need to perform a svn checkout of these two to ~/Library/Application Support/TextMate/Bundles.

    Jan-Henrik: the C syntax at the repository has a complex rule to match C functions (so it'll work from next build).

  10. 17 Nov 2005 | # Jan-Henrik wrote…

    Allan I downloaded the latest TM version and the symbol pop-up now works great with C also. Finally, syntax coloring of functions also works perfectly. It's starting to get to the point where TextMate and not xcode will be my primary editor, only window split are missing :)

    Ps. I changed the end of declaration.function.c in the C bundle to, ([{\n;]))'; This way function prototypes are also recognized.

  11. 21 Jul 2006 | # Nate wrote…

    Works great for regular languages, but I can't get Actionscript to work in the browser

  12. 06 Feb 2007 | # Mark wrote…

    I've posted my tweak to get Actionscript files recognized here: http://www.dirtystylus.com/blog/2007/02/06/actionscript-support-for-tmcodebrowser/

    Gerd was a big help in troubleshooting the AS issue. Big thanks to him again for putting out this plugin!

  13. 02 Dec 2008 | # Nitesh wrote…

    Awesome.. simply awesome..

Comments closed, you can use the mailing list for discussion.