Skip to main content
Ben Nadel at InVision In Real Life (IRL) 2018 (Hollywood, CA) with: Azeez Olaniran and Adebayo Maborukoje and Jorg Are
Ben Nadel at InVision In Real Life (IRL) 2018 (Hollywood, CA) with: Azeez Olaniran ( @olaniranazeez ) Adebayo Maborukoje Jorg Are

ColdFusion 9 CFScript Comments Handle Name-Spaces... And Just About Anything

By on

The other night, I was lying in bed thinking about ColdFusion 9 (hot visual!) when I wondered if ColdFusion 9's new CFScript-based JavaDoc-style commenting would accommodate name-spaced attributes. These have been supported by the CFComponent and CFFunction tags for a long time, but I wasn't sure if the JavaDoc-style commenting would be able to parse the ":" used in the attribute name. As it turns out, ColdFusion 9 will handle name-spaces properly.... and just about any other type of attribute you throw at it.


	* @access public
	* @returnType any
	* @output false
	* @kinky:functionType TestFunction
	* @123 456
	* @ ????
	* @> Something
	* @# Awesome
	function doSomething(){
		return( "Hello" );


<!--- Output the function meta data. --->
	var="#getMetaData( doSomething )#"
	label="doSomething Meta Data"

As you can see above, not only am I trying a name-spaced attribute, I'm trying attributes that either don't make sense (no name - "@") or wouldn't even compile in the tag-based equivalent. And, when we run the code, we get the following output:

ColdFusion 9's CFScript-Based JavaDoc-Style Commenting Supports Name Spaces... And Just About Anything Else.

I don't have much to say about this - it was just something I wanted to check.

Want to use code from this post? Check out the license.

Reader Comments



Being able to use custom attributes is definitely very cool. I was just surprised that it allowed me to do things like set the attribute "123". Although, I guess they aren't *really* attributes at that point - they're just pieces of meta-data.


These all work in annotation-sytle attributes, but some don't work in script-only inline attributes. For example,

* @mxunit:expectedException "myException"
function anMXUnitTest() {}

works, but

function anMXUnitTest() mxunit:expectedException="myException" {}

does not work (throws an error).

Just an FYI.



Good to know. On a side/related note, I happen to dislike the way inline attributes look post-signature... just seems awkward. I've started to actually like the way the JavaDocs style stuff works - it keeps the function itself simple.



Right? Before the function, ok (public, return type); but after the method parameters / before the opening bracket... junky!


@Ben and Dan,

We'll just have to agree to disagree about that one, boys ;-)

I understand that they might not look appealing, but I personally abhor the idea of putting code that affects execution into what appears to be a comment. Perhaps I'll come around one day.


@Bob, @Dan,

We're a good crowd here:

Dan loves JavaDocs.

Bob says JavaDocs are crazy.

Ben says, it's all moot since TAGS are where it's at :)


I was thinking maybe if we could use it just like javadoc someone would even build a plugin for Eclipse called CFDoc. That would be rad.


I agree with Bob. I don't like the idea to mixing code with comment! Just doesn't seem right. Also, I'm scared that a noob may look at it as comment and remove it :)...