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);
|
||||
};
|
||||
|
||||
function splitLongname(longname) {
|
||||
function stripVariation(name) {
|
||||
return name.replace(/\([^)]\)$/, '');
|
||||
}
|
||||
|
||||
function splitLongname(longname, options) {
|
||||
var chunks = [];
|
||||
var currentNameInfo;
|
||||
var nameInfo = {};
|
||||
var previousName = longname;
|
||||
var splitters = SCOPE_PUNC.concat('/');
|
||||
|
||||
options = _.defaults(options || {}, {
|
||||
includeVariation: true
|
||||
});
|
||||
|
||||
do {
|
||||
if (!options.includeVariation) {
|
||||
previousName = stripVariation(previousName);
|
||||
}
|
||||
currentNameInfo = nameInfo[previousName] = shorten(previousName, splitters);
|
||||
previousName = currentNameInfo.memberof;
|
||||
chunks.push(currentNameInfo.scope + currentNameInfo.name);
|
||||
@ -300,10 +311,11 @@ function splitLongname(longname) {
|
||||
|
||||
// TODO: docs
|
||||
exports.longnamesToTree = function longnamesToTree(longnames, doclets) {
|
||||
var splitOptions = { includeVariation: false };
|
||||
var tree = {};
|
||||
|
||||
longnames.forEach(function(longname) {
|
||||
var processed = splitLongname(longname);
|
||||
var processed = splitLongname(longname, splitOptions);
|
||||
var nameInfo = processed.nameInfo;
|
||||
var chunk;
|
||||
var currentLongname = '';
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user