code: 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);
  }
docs: 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.