mirror of
https://github.com/jsdoc/jsdoc.git
synced 2025-12-08 19:46:11 +00:00
handle variations when generating a tree of longnames
This commit is contained in:
parent
1171593908
commit
ead0e90409
@ -279,14 +279,25 @@ exports.shorten = function(longname, forcedMemberof) {
|
|||||||
return shorten(longname, SCOPE_PUNC, forcedMemberof);
|
return shorten(longname, SCOPE_PUNC, forcedMemberof);
|
||||||
};
|
};
|
||||||
|
|
||||||
function splitLongname(longname) {
|
function stripVariation(name) {
|
||||||
|
return name.replace(/\([^)]\)$/, '');
|
||||||
|
}
|
||||||
|
|
||||||
|
function splitLongname(longname, options) {
|
||||||
var chunks = [];
|
var chunks = [];
|
||||||
var currentNameInfo;
|
var currentNameInfo;
|
||||||
var nameInfo = {};
|
var nameInfo = {};
|
||||||
var previousName = longname;
|
var previousName = longname;
|
||||||
var splitters = SCOPE_PUNC.concat('/');
|
var splitters = SCOPE_PUNC.concat('/');
|
||||||
|
|
||||||
|
options = _.defaults(options || {}, {
|
||||||
|
includeVariation: true
|
||||||
|
});
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
if (!options.includeVariation) {
|
||||||
|
previousName = stripVariation(previousName);
|
||||||
|
}
|
||||||
currentNameInfo = nameInfo[previousName] = shorten(previousName, splitters);
|
currentNameInfo = nameInfo[previousName] = shorten(previousName, splitters);
|
||||||
previousName = currentNameInfo.memberof;
|
previousName = currentNameInfo.memberof;
|
||||||
chunks.push(currentNameInfo.scope + currentNameInfo.name);
|
chunks.push(currentNameInfo.scope + currentNameInfo.name);
|
||||||
@ -300,10 +311,11 @@ function splitLongname(longname) {
|
|||||||
|
|
||||||
// TODO: docs
|
// TODO: docs
|
||||||
exports.longnamesToTree = function longnamesToTree(longnames, doclets) {
|
exports.longnamesToTree = function longnamesToTree(longnames, doclets) {
|
||||||
|
var splitOptions = { includeVariation: false };
|
||||||
var tree = {};
|
var tree = {};
|
||||||
|
|
||||||
longnames.forEach(function(longname) {
|
longnames.forEach(function(longname) {
|
||||||
var processed = splitLongname(longname);
|
var processed = splitLongname(longname, splitOptions);
|
||||||
var nameInfo = processed.nameInfo;
|
var nameInfo = processed.nameInfo;
|
||||||
var chunk;
|
var chunk;
|
||||||
var currentLongname = '';
|
var currentLongname = '';
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user