From 3488515a3f020c5fadd6042ef046e46f49021e7e Mon Sep 17 00:00:00 2001 From: E-geek Date: Wed, 29 Jun 2016 17:09:17 +0300 Subject: [PATCH] Resolve https://github.com/coffeedoc/codo/issues/204 Format with type before name only^ # @param {String} [name] optional value # @param {Number} [input = 1] optional with default value or # @param [String] [name] optional value # @param [Number] [input = 1] optional with default value --- lib/documentation.coffee | 14 ++++++++++++++ themes/default/assets/stylesheets/class.styl | 4 ++++ .../default/templates/partials/documentation.hamlc | 7 ++++++- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/lib/documentation.coffee b/lib/documentation.coffee index 9c9d8c4..62c3c7f 100644 --- a/lib/documentation.coffee +++ b/lib/documentation.coffee @@ -47,6 +47,20 @@ module.exports = class Documentation type: '?' description: throws[1] + else if param = /^@param\s+[\[\{](.+?)[\]}]\s+\[([^\]]+)](?:\s+(.+))?/i.exec line + if paramNameVal = /^([^ ]+)\s*=\s*([^ ]+)/.exec param[2] + paramName = paramNameVal[1] + defValue = paramNameVal[2] + else + defValue = null + paramName = param[2] + @params.push + type: param[1] + name: paramName + description: param[3] + defaultState: defValue + optional: yes + else if param = /^@param\s+([^ ]+)\s+[\[\{](.+?)[\]\}](?:\s+(.+))?/i.exec line @params ?= [] @params.push diff --git a/themes/default/assets/stylesheets/class.styl b/themes/default/assets/stylesheets/class.styl index b353af7..29f5039 100644 --- a/themes/default/assets/stylesheets/class.styl +++ b/themes/default/assets/stylesheets/class.styl @@ -169,6 +169,10 @@ font-family: monospace; font-weight: bold; } + + .defaultState { + font-style: italic; + } } .overloads { diff --git a/themes/default/templates/partials/documentation.hamlc b/themes/default/templates/partials/documentation.hamlc index 49356ae..3bd718b 100644 --- a/themes/default/templates/partials/documentation.hamlc +++ b/themes/default/templates/partials/documentation.hamlc @@ -49,11 +49,16 @@ %ul.param - for param in @documentation.params %li - %span.name= param.name + - if param.optional + %span.name= '['+param.name+']' + - else + %span.name= param.name %span.type ( != @render('partials/type_link', type: param.type) ) + - if param.defaultState + %span.defaultState= ' = '+param.defaultState - if param.description — %span.desc!= @activate param.description, @path, true