How to document CoffeeScript source code with JSDoc?
I have some code written in CoffeeScript and I want to optimize the generated JavaScript with the Google Closure Compiler, so these files need to be documented with JSDoc.
My question is, how can I document the *.coffee files to generate javascript containing working JSDoc for the closure compiler?
One more question: is there a way to keep a single-line comment in *.coffee ?
CoffeeScript Input:
### define function variable before block to avoid code being appended to closing part of JSDoc comment ###
cube = null
###*
* Function to calculate cube of input
* @param {number} Number to operate on
* @return {number} Cube of input
###
cube = (x) -> x*x*x
JavaScript Output from windows cmd prompt for: coffee -cpb src.coffee
// Generated by CoffeeScript 1.6.3
/* define function variable before block to avoid code being appended to closing part of JSDoc comment*/
var cube;
cube = null;
/**
* Function to calculate cube of input
* @param {number} Number to operate on
* @return {number} Cube of input
*/
cube = function(x) {
return x * x * x;
};
Edit
As detailed in other answer CoffeeScript 1.7.1 has better method available to solve this problem.
Since I cannot respond directly to Billy above, it seems CoffeeScript 1.7.1 has better support for this:
###*
# Sets the language and redraws the UI.
# @param {object} data Object with `language` property
# @param {string} data.language Language code
###
handleLanguageSet: (data) ->
outputs
/**
* Sets the language and redraws the UI.
* @param {object} data Object with `language` property
* @param {string} data.language Language code
*/
handleLanguageSet: function(data) {}