For the past six months or so, I’ve been working on a new version of my CFML extension for ActiveState’s Komodo Edit and Komodo IDE language editors. Late last fall, I’d reached a point in the development of Komodo-CFML where it became fairly obvious to me that I was going to need to take a different approach to the extension in order to achieve one of my original goals related to supporting CFML: language intelligence. So I started over… “started over” as in a complete re-write. (This actually marks the fourth time I’ve started over on this project since I took this on.)
What I have at this point is a reasonably complete preview (with the emphasis on “reasonably”) version of Komodo-CFML that achieves most of what is present in what I still think of as the “real” version and adds one big item: language intelligence for CFML tags. If you are interested in trying this new preview out, you are welcome to download and install it. You’ll definitely want to take a quick skim through at least the installation notes below and the list of things that, at this early venture, are not yet complete or close to maturity so that you know what you’re getting into.
That being said, I’ve been using this version exclusively since mid-January and I’ve had three or four brave souls I work with doing the same — despite some rough areas that still exist, it has proven to be very functional and the benefits of the language intelligence seem to outweigh those other areas. It’s also worth noting that this version should install and function on either Komodo Edit or Komodo IDE v6 or later (including the alphas of v7 ActiveState have released earlier this spring).
Before jumping in, please note there are some areas where I still have work to do:
- Language intelligence is based on Adobe’s ColdFusion 9.01 version of the language, and is limited to tags: The editor will now attempt to provide (as shown above) lists of known tags and their attributes. At some point in the (distant?) future, I will work on extending this to include function arguments. In the near future, I will broaden coverage to include at least Railo’s version of the CFML tagset. It is also based on HTML 5; I may or may not ever provide these capabilities based on other dialects of HTML. Further, I’m still working on the content model within my HTML + CFML DTD, so there will be times when you are mixing CFML tags within HTML where the CFML tags won’t appear in the list of “valid” tags (note though that the attribute-completion will still work once you have the CFML tag started in these contexts).
- Language-specific help: Komodo provides the ability to support language-specific help, and at present this works only for CFML functions via the excellent CFQuickDocs site. I’m hoping to find a way to make this also work for CFML tags, but based on implementing CFML as an extension of HTML (in order to get the tag intelligence working) it does not currently work.
- CFSCRIPT-only components: I’ve not yet refactored this capability in the language parsing portion of the extension. This is one of my next tasks.
- Miscellaneous rough edges: there are still some rough edges in various portions of the CFSCRIPT and CFML support related to tag matching, auto-indenting, and smart matching of characters that typically come in pairs (quotes, crunches, braces, parens, etc.). Some of those are fairly subtle; others, no so much.
Some things you will want to note as you install this new version of the Komodo-CFML extension:
- You can’t have both the “real” v0.1.8 extension and this new version installed simultaneously. If you are interested in trying this preview version, I’d recommend uninstalling the previous version and restarting Komodo before installing the preview version. (Related to this point: if you decide you really don’t want to use this preview version, switching back is as simple as uninstalling this version, restarting, and reinstalling the other version.)
- In order to turn on the tag-related language intelligence, you will need to select the appropriate default DOCTYPE for HTML files within Komodo’s preferences. Go to “Preferences > Languages > HTML” and select the “-//WE3GEEKS//DTD HTML 5 + CFML (Adobe ColdFusion 9.01)//EN” entry way down toward the bottom for the “Default HTML Document Type” setting.
- If you’ve not tried Komodo-CFML in the past, you’ll also want to install the CFML-specific HTML-Tidy configuration file as described on the Komodo-CFML page.
So, have at it and please let me know via comments below if you stumble into things that just don’t make sense or seem to be broken. I’m still working on those rough areas noted above, and will continue to make previews of this version available as I resolve problems and push this closer to “finished” (whatever that is.).
Finally, a word of thanks to the Eric and Todd at ActiveState for a great platform in Komodo and their occasional support as I’ve asked questions and asked for help. Also a word of thanks to my team at work for their patience and feedback on this project, and their willingness to bravely step into the breach and test this in a production environment. This would never have reached this state without their help.
Download: Komodo-CFML v0.2.0 preview