Apache Bundle Upgrade

February 11th, 2008

The Apache bundle, which I originally contributed in the early days of TextMate, was due an upgrade. So I’ve made a few improvements…

Start, Stop, Restart and Graceful commands (⌘R)

These commands, which all target apachectl, are now bound to ⌘R under the source.apache-config scope which makes it more convenient to directly control httpd from TextMate.

As apachectl requires sudo privileges I used applescript for authentication. For reasons only known to Apple the password request dialog would launch but not get focus - leaving you to reach for the mouse to target the input field. Moving away from the keyboard is slow so this was something that really annoyed me. I’ve now switched to using the excellent tm_dialog system which makes things much smoother.

It is also possible to store your admin password in your Keychain, this is done by selecting the “Add to Keychain” toggle in the password request dialog box. I’m more than happy with the security implications of this as I’m fairly good at keeping my machines locked. If you do choose to do this then the command line security app will have access to the keychain item and is the only way someone could gain access.

Documentation (⌃H)

This now searches a documentation index file for the current word/selection then redirects or presents a list of matches as appropriate. If you appear to have the documentation installed locally then the script favours it over the apache website.

Open Include (⇧⌘D)

The language definition has been improved to add a scope for Includes. Using the key combination apple-shift-D on this scope opens the file referenced by the inlcude, or directory if it is wild carded.

Open Config… (⇧⌘C)

Previously there were various commands to open the apache.conf files these have now been consolidated into one command which searches the apache install directory, either /etc/apache2 or /private/etc/httpd depending on your version of OS X and the /users, /extra and /other subdirectories. All the conf files found are presented in pop-up from which one can be choosen to open.

Bundle Configuration

It is now possible to override the default bundle behaviour by setting the following environmental variables. TM_APACHE_DIRECTORY, TM_APACHE_ACCESS_LOG, TM_APACHE_ERROR_LOG and
TM_APACHE_MANUAL_URI all allow the custom targeting of files and directories. See the bundle help for a detailed explanation.

Open Bundle as Project…

January 2nd, 2008

I’m often opening the bundles I develop - and nosing through the others - as projects, and doing so via the Finder or the File > Open menu is long winded. To speed up the process here’s a small command which searches the default bundle locations and presents all the bundles in a dialog. Pick the one you’re interested in and TextMate opens it as a project. That’s if it’s enabled, when it’s not the default behavior is to enable it, second time round it will open as a project.

Download

HelvectorLight Theme

December 23rd, 2007

I’ve just updated the ActionScript 3 Bundle to include an ASDoc language definition. This is essentially a scope change of Luke Daley’s JavaDoc language definition. The result is that the following scopes within the documentation blocks are brought under new colour jurisdictions.

keyword.other
entity.name.tag
punctuation.definition.tag

For me, using my favourite theme - Twilight - the extra colour where I was so used to seeing grey wasn’t working. To combat it, and get things greyscale again, I added 3 new theme elements and applied them to the following scopes:

comment.block.documentation keyword.other
comment.block.documentation entity.name.tag
comment.block.documentation punctuation.definition.tag

The results are the HelvectorLight.tmTheme which calms things down again.

Download

TextMate Ant Bundle

October 30th, 2007

Following on from my work with the Apache, ActionScript, ActionScript 3 and Flex TextMate Bundles, comes a bundle for the Ant build system. It is available for checkout here which I’d recommend for the most up to date version, or download as a zip here.

Ant Bundle

As a Flash developer who’s been working with Flex and ActionScript 3 since late last year I really couldn’t bring myself to use the Flex Builder Eclipse plug-in. This down to my addiction to TextMate, in my opionion it simply out classes the competion. As a result I’m responsible for TextMate’s ActionScript 3 and Flex bundles.

At the moment the bundles are in the review section of the TextMate Repository. Once installed the bundle help covers how to set up (primarily to download the flex sdk) and outlines the non-obvious commands.

The main highlights of the bundles are:

  • MXMLC and FCSH Build Commands.
  • Function, Tag, Import Auto Completion.
  • ActionScript 3 and Flex documentation search.
  • Drag and Drop of imports, includes, embed assets, css, xml.
  • ASDoc Support.
  • MXML Validation.
  • Manifest Generation.
  • Class and Component Templates.
  • Flex Builder compatible project creation.
  • Unused Import statement removal.
  • Shortcut Key Super Class, Code Behind and Import file opening.
  • Thanks to the following people who have all had a hand, although they may not know it, in the creation of the bundles:

  • Daniel Parnell
  • Theo Hultberg
  • Mark Llobrera
  • Joachim
  • ChromaticRain
  • Thomas Aylott
  • For those of you who don’t use subversion the following zip’s can be downloaded, but they won’t necessarily be the latest version :

    ActionScript 3 Bundle
    Flex Bundle

    I wrote the following shell script a while back for use with TextMate as part of my build process. TextMate’s great as it easily allows you to bind scripts to custom commands (and key combinations). However you’d easily be able to adapt it to your set up. It will allow you to cleanly change all the flash players available for OS X, as well as being able to Uninstall the player, and optionally restart open browsers (FireFox and Safari) afterwards.

    You’ll need to download the players, install and move the files into archived folders the contents of which the script will copy to the default internet plug-ins folder. It shouldn’t be too difficult to work out how this happens and alter the script for your needs.

    Download the script here

    To install the FP 7.0.14 without restarting any open broswers:

    changePlayer.sh 7.0.14 false

    To uninstall the flash player:

    changePlayer.sh uninstall_flash_player

    To install FP 6.0.49, restarting open browsers:

    changePlayer.sh 6.0.49

    If there’s anyone out there using TextMate and would like a the above wrapped up in a bundle then please email me and I’ll send a copy over.