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

Solarized-Light for Komodo

I’ve been working a bit to pull together a color scheme for ActiveState’s Komodo (IDE and Edit) based on Ethan Schoonover’s excellent Solarized palette. For the past couple years, I’ve wrestled with trying to come up with a color scheme that works on a variety of monitors and in a variety of light settings, based on the way I work (shifting between as many as 5 different computers with drastically different screens on some days) and in a variety of differing light settings ranging from very low light (in the early morning and late evening) to very bright light with some glare (mid-day in my windowed area of the cubicle maze at work).

Solarized-Light color scheme for Komodo
Solarized-Light color scheme for ActiveState's Komodo

Finding Ethan’s work on Solarized was a godsend. At this point, I’ve focused most of my effort on Komodo’s common syntax elements and the language-specific elements associated with the languages I primarily use (CFML, CSS, HTML, HTML5, JavaScript, SQL, XML, Diff, UDL, and Python). I’ve tried to hold relatively close to Ethan’s examples to the extent I can based on how Komodo tokenizes those languages. I have been using this scheme exclusively for the past 3 weeks or so, and I am quite pleased with it.

If you are using other languages in Komodo, you are likely to find some of the language-specific syntax elements that will need to be appropriately colored, but the basics for languages like Ruby and PHP seem to be OK.

Note that this scheme uses Mark Simonson’s excellent Anonymous Pro Minus typeface; if you don’t have that face installed, you should. If you choose not to, you’ll want to select an appropriate typeface from your system after you’ve installed the scheme.

This is definitely still a work in progress at this point; Komodo users are welcome to use it either as-is or as the basis for tuning for their own work. If you have suggestions or requests related to languages where I’ve not done much yet with this, submit a comment and I will consider folding those in to this effort. My intent is to do a dark version of this once the light version has stabilized a bit.

Download: Solarized-Light.ksf

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…

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!