Angelo DiNardi

Doin' shit on the web since 1995.

Development on a Mac: Textmate + bundles

30 July 2009

With the start of my new job I finally got a Mac to use at work. I’ve been using one at home for going on two years, so it’s nice to finally use an OS I like at work. With this comes the need to use a good editor for development.

At home I’ve used an array of IDEs and editors, never finding one I’ve really liked besides the old standard of VIM. I’ve used VIM for much of my development for years, so I’m pretty proficient. At the same time, it just doesn’t fit in well with OS X. I’ve used Textmate a bit before, but never really for long or on a large project. That was about to change.

Most of the developers at the company use Eclipse. I personally find it slow and buggy – and so do some of the other developers. I decided to download Textmate and give it a good, solid roll. I quickly got up to speed on the shortcuts and was able to get things done without cursing at my editor constantly. There were, though, shortcomings from the setup the other developers had come up with over time for Eclipse. Myself and another new developer put together a nice array of additional bundles to Textmate which made it complete for us to get our work done, at Mac speed.

  • Synchronize remote directory [rsync+ssh]
    • Forget trying to keep track of files you've edited to upload or using a separate sftp app for your project. This bundle allows you to set up a remote location to push files changes and full project synchronization to. It uses rsync and ssh so you're looking at needing a remote unix machine with both set up and functional. Also, it uses SSH keys since I don't believe it has a way to request a ssh password.
  • TM-Ctags (I've forked a fork and upgraded it a bit)
    • This will enable you to search for class, function, and other definitions in your project. When you update from source control or add code you need to update the index. Once that's done you can search based on current text under the cursor, arbitrary search, or even code completion based on the indexed code.
  • Ack in Project
    • The built in find in project in Textmate is slow. This bundle uses ack to search much faster and also display results in a more reasonable fashion. It's not perfect, but it is an improvement. I have some thoughts on upgrades I might make in the coming weeks.

That’s the short list for the moment. We’re finding new bundles to add all the time to make things better. Also, we’ve got a list of features we’d like to have and I’m doing what I can do find / upgrade / create bundles and plugins which fit our needs. Over time I’ll update this list with new additions.