lib/panino/plugins/parsers/javascript/jsd/doc_expander.js
function expand_comment(docset) {
  groups = {
    "class": [],
    "cfg": [],
    "Constructor": []
  }

  // By default everything goes to :class group
  var group_name = "class";

  _.each(docset["comment"], function (tag) {
    tagname = tag["tagname"];

    if (tagname == "cfg" || tagname == "Constructor") {
      group_name = tagname;
      if (tagname == "cfg")
        groups["cfg"].push([]);
    }

    if (tagname == "alias")
      groups["class"].push(tag);  // For backwards compatibility allow @xtype after @constructor
    else if (group_name == "cfg")
      _.last(groups["cfg"]).push(tag);
    else
      groups[group_name].push(tag);
  });

  return groups_to_docsets(groups, docset);
}
function expand_comment(docset) {
  groups = {
    "class": [],
    "cfg": [],
    "Constructor": []
  }

  // By default everything goes to :class group
  var group_name = "class";

  _.each(docset["comment"], function (tag) {
    tagname = tag["tagname"];

    if (tagname == "cfg" || tagname == "Constructor") {
      group_name = tagname;
      if (tagname == "cfg")
        groups["cfg"].push([]);
    }

    if (tagname == "alias")
      groups["class"].push(tag);  // For backwards compatibility allow @xtype after @constructor
    else if (group_name == "cfg")
      _.last(groups["cfg"]).push(tag);
    else
      groups[group_name].push(tag);
  });

  return groups_to_docsets(groups, docset);
}
function expand_comment ( docset ) { groups = { "class" : [ ] , "cfg" : [ ] , "Constructor" : [ ] } // By default everything goes to :class group var group_name = "class" ; _ . each ( docset [ "comment" ] , function ( tag ) { tagname = tag [ "tagname" ] ; if ( tagname == "cfg" || tagname == "Constructor" ) { group_name = tagname ; if ( tagname == "cfg" ) groups [ "cfg" ] . push ( [ ] ) ; } if ( tagname == "alias" ) groups [ "class" ] . push ( tag ) ; // For backwards compatibility allow @xtype after @constructor else if ( group_name == "cfg" ) _ . last ( groups [ "cfg" ] ) . push ( tag ) ; else groups [ group_name ] . push ( tag ) ; } ) ; return groups_to_docsets ( groups , docset ) ; }
Handles old syntax where configs and constructor are part of class doc-comment.  Gathers all tags until first @cfg or @constructor into the first bare :class group.  We have a special case for @xtype which in ExtJS comments often appears after @constructor - so we explicitly place it into :class group.  Then gathers each @cfg and tags following it into :cfg group, so that it becomes array of arrays of tags.  This is to allow some configs to be marked with @private or whatever else.  Finally gathers tags after @constructor into its group.
Handles old syntax where configs and constructor are part of class doc - comment . Gathers all tags until first