Erik’s Brain

The reward of a thing well done...

TextMate 2 Projects

A little bit of info about how projects work in TextMate 2 was posted to the official Macromates blog. There are some nice things about the way things work now, but I don’t see how I’ll be able to replicate how I’m using TextMate project files (.tmproj) with the project I do the most work on these days. I should point out when I say “project” I’m talking about a work project that involves a lot of TextMate project files.

How I Use TextMate Projects


In my root folder, alongside the src and build directory I have a ton of .tmproj’s. The only difference between each one is the file that’s used at the base class and the name of the final product I’m building. Plus a flag for a specific build setting that I turn on and off depending on what I’m doing. I’ll often have two of these projects open at the same time, since I’ll need to alternate between building two different products quickly. And all of these project files share the same source files. They build to the same target directory. The only difference between them, as I said, is that they use a different file as its main, root class and the name of the final build product is different.

I don’t see how I can easily do this the new way, where projects and their root directory seem to be so tightly coupled. That is, each directory can only have one settings file. Where with TextMate 1, countless project files can live together in the same folder. Sure, I could have a bunch of lines in my new TextMate 2 project settings and simply uncomment the ones I need whenever I need to build a specific target. But this is a huge pain in the butt, especially if I need to work on two projects at the same time and quickly jump from building one to building the other.

Yeah, TextMate 2 is in a truly legit alpha state. And this certainly isn’t me ragging on it or complaining I can’t use an alpha to get real work done. But it seems like the new way for dealing with projects is more or less set in stone. Seems they decided they don’t like the old method. I’m also probably missing something about how to use these new .tm_properties to their full potential. I’ll certainly update this blog when I see the light and figure out how to do what I need to do. Perhaps you can help?