Textmate gem

As I said last week, I created thor while building a binary to handle my textmate bundles.

I wanted a way to install/uninstall/list textmate bundles like gems. Textmate already has a centralized svn repository for its bundles, and there's a way, through AppleScript, to tell Textmate to reload bundles. The end result: a textmate binary that handles textmate bundles like gems.

$ textmate remote

``` Marcomates Trunk Remote Bundles ------------------------------- ANTLR ASP ASP_vb_NET ActionScript Active4D Ada Apache AppleScript Bison Blogging Bulletin Board Bundle Development C++ Qt C CSS CTags CVS ColdFusion Context Free D Darcs ... snip ... ```

$ textmate remote JavaScript

``` Marcomates Trunk Remote Bundles ------------------------------- JavaScript MooTools JavaScript Prototype & Script_aculo_us JavaScript YUI JavaScript jQuery JavaScript

Marcomates Review Remote Bundles

JavaScript JSDoc

JavaScript MooTools

JavaScript Prototype & Script_aculo_us

JavaScript


<h4>$ textmate list</h4>

Application Bundles

ActionScript

Apache

AppleScript

Blogging

Bundle Development

C

CSS

... snip ...

User Pristine Bundles

User Bundles

RSpec

Ruby Haml

Ruby Sass

Ruby

Rucola

Treetop

System Pristine Bundles

System Bundles

Ragel


<h4>$ textmate install</h4>
Checking out JavaScript jQuery...
svn co http\://macromates.com/svn/Bundles/trunk/Bundles/JavaScript\ jQuery.tmbundle /Users/wycats/Library/Application\ Support/TextMate/Pristine\ Copy/JavaScript\ jQuery.tmbundle 2>&1
    A    /Users/wycats/Library/Application Support/TextMate/Pristine Copy/JavaScript jQuery.tmbundle/Commands
    A    /Users/wycats/Library/Application Support/TextMate/Pristine Copy/JavaScript jQuery.tmbundle/Commands/Documentation for Word : Selection.tmCommand
    A    /Users/wycats/Library/Application Support/TextMate/Pristine Copy/JavaScript jQuery.tmbundle/Snippets
    A    /Users/wycats/Library/Application Support/TextMate/Pristine Copy/JavaScript jQuery.tmbundle/Snippets/each.tmSnippet
    A    /Users/wycats/Library/Application Support/TextMate/Pristine Copy/JavaScript jQuery.tmbundle/Snippets/clone.tmSnippet
... snip ...
    Checked out revision 9623.
Reloading Bundles...
Done.
</pre>

<h4>$ textmate uninstall "JavaScript Prototype & Script_aculo_us"</h4>

Removing bundle...

Reloading bundles...

Done.


Pretty cool, huh? If you want it, do <code>gem install wycats-textmate --source http://gems.github.com</code>.