Komodo-CFML v0.2.0 Preview (11/2011)

I’ve spent a bit of time this past month or so getting back into my Komodo-CFML project, and have an updated preview available for the 0.2.0 release. This update is based on the following changes:

  • Built against the recently released v. 7.0.0b1 Komodo from ActiveState, but I’ve tested it against the current v. 6.1.x versions of both Komodo IDE and Edit. On a related note, this 7.0.0b1 build is the first of the 7-series I’ve considered stable enough for regular use; if you aren’t using it yet, you might consider at least pulling down a copy and giving it a go (you can have both versions installed concurrently, at least on Mac OS X by appropriately [re]naming the various installs).
  • Updated to incorporate some changes to Komodo’s HTML/JavaScript modes, such as appropriate syntax highlighting of JavaScript code within onXXX() handlers in HTML tags.
  • Much better/more complete handling of Adobe CF 9′s script-only components and interfaces.
  • Some minor fixes in the CFML/CFSCRIPT syntax highlighting.
  • Some minor changes (and some backtracking) in the content model for CFML. I may write more on this at some point, but I may have taken this about as far as I can.

My plan at this point is to address some consistency issues in the tokenizing of different syntax elements that are common across the various languages Komodo-CFML addresses (e.g., parens and braces) and to start working on the XML catalog for Railo’s CFML implementation (possibly along with a unified CFML XML catalog). I have also been doing a bit of work on a different dark color scheme for Komodo based on Chris Kempson’s “Tomorrow” series, and am getting close to making a version of that available.

Download: cfml-0.2.0-ko.xpi

Komodo-CFML v0.2.0 Preview

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.)

Komodo-CFML tag intelligence: tags

CFML tag list for Komodo-CFML v0.2.0

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.

Komodo-CFML tag intelligence: attributes

Attribute list for CFML tags in Komodo-CFML v0.2.0

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:

  1. 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.)
  2. 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.
  3. 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

Komodo-CFML: A hint of something big

I’ve been working for the past several months on a major overhaul of my CFML mode for ActiveState’s Komodo IDE/Edit editors. I’m hoping within the next week (or so) to have a preliminary release of v. 0.2.0 available for anyone interested in starting to play with it. The point of this overhaul goes back to one of the items that has been on my roadmap for the editor mode: code intelligence (as-you-type pop-up assistance for CFML tags and their attributes). More to come…

Stepping back into Komodo-CFML

Now that I’m past the end of the fall soccer season and feeling like I’m a little closer to being caught up with other portions of my life (probably a delusion, but I like it!), I’m going to be stepping back into working on Komodo-CFML again for the next few months. Some ideas for stuff I will be looking into and/or implementing:

  • At least rudimentary formatting for stuff “crunched” into strings for evaluation (e.g. variables, function calls)
  • At least basic handling for files containing only CFSCRIPT (e.g., components) without the CFSCRIPT tags
  • Full support for the Railo’s v3.2 CFSCRIPT implementation
  • Basing Komodo-CFML on Komodo 6′s support for HTML5 and CSS3

And if you’re currently using Komodo-CFML and there are things you’d like to see implemented — other than CFML tag insight (that’s already on my list and something I may or may not actually get to in the next few months; I will write more on that in a separate blog post at some point) — throw in a comment here. I’m curious.

No promises here, in terms of any of that actually working or getting done, but it’s all stuff I want to see in place. Stay tuned…

Update: As of 20 January, I think I’ve wrapped up pretty much everything I’m going to include in 0.1.7. Over the next couple days, I will be updating the Komodo-CFML page with new versions of the extension for download, information about what has changed and what’s coming, as well as making sure the page itself is current.

Komodo-CFML v. 0.1.6 (preliminary) released

I’ve started getting back to giving Komodo-CFML a bit of badly-needed attention. I’ve pushed out a preliminary build of version 0.1.6. See the project page for a bit more information. I will probably continue to update and publish under this version number as I do some cleanup and fix some minor tokenizing issues ahead of doing some digging to see if I can code intelligence working.

On an only-somewhat related note: Mark Simonson has release the “minus” version of his excellent Anonymous Pro fixed width typeface. This version works well on Linux at small sizes and works well on Mac OS X at all sizes, including in Komodo (something the full version does not currently do, due to a bug somewhere deep in the bowels of Komodo). Look for the download link for the “minus” version in right column. Thanks, Mark!