@@ -14,7 +14,9 @@ var jsdoc = {
14
14
var puncToScope = { '.' : 'static' , '~' : 'inner' , '#' : 'instance' } ,
15
15
scopeToPunc = { 'static' : '.' , 'inner' : '~' , 'instance' : '#' } ,
16
16
Token = Packages . org . mozilla . javascript . Token ;
17
-
17
+
18
+ var DEFAULT_SCOPE = 'static' ;
19
+
18
20
/**
19
21
Resolves the longname, memberof, variation and name values of the given doclet.
20
22
@param {module:jsdoc/doclet.Doclet } doclet
@@ -36,14 +38,27 @@ exports.resolve = function(doclet) {
36
38
memberof = ( '' || memberof ) . replace ( / \. p r o t o t y p e \. ? / g, '#' ) ;
37
39
38
40
// the name is a fullname, like @name foo.bar, @memberof foo
39
- if ( name && name . indexOf ( memberof ) === 0 ) {
40
- about = exports . shorten ( name , ( doclet . forceMemberof ? memberof : undefined ) ) ;
41
+ if ( name && name . indexOf ( memberof ) === 0 && name !== memberof ) {
42
+ about = exports . shorten ( name , ( doclet . forceMemberof ? memberof : undefined ) ) ;
43
+ }
44
+ // the name and memberof are identical and refer to a module,
45
+ // like @name module:foo, @memberof module:foo (probably a member like 'var exports')
46
+ else if ( name && name === memberof && name . indexOf ( 'module:' ) === 0 ) {
47
+ about = exports . shorten ( name , ( doclet . forceMemberof ? memberof : undefined ) ) ;
41
48
}
42
- else if ( name && / ( [ # . ~ ] ) $ / . test ( memberof ) ) { // like @memberof foo# or @memberof foo~
43
- about = exports . shorten ( memberof + name , ( doclet . forceMemberof ? memberof : undefined ) ) ;
49
+ // the name and memberof are identical, like @name foo, @memberof foo
50
+ else if ( name && name === memberof ) {
51
+ doclet . scope = doclet . scope || DEFAULT_SCOPE ;
52
+ name = memberof + scopeToPunc [ doclet . scope ] + name ;
53
+ about = exports . shorten ( name , ( doclet . forceMemberof ? memberof : undefined ) ) ;
44
54
}
45
- else if ( name && doclet . scope ) { // like @memberof foo# or @memberof foo~
46
- about = exports . shorten ( memberof + ( scopeToPunc [ doclet . scope ] || '' ) + name , ( doclet . forceMemberof ? memberof : undefined ) ) ;
55
+ // like @memberof foo# or @memberof foo~
56
+ else if ( name && / ( [ # . ~ ] ) $ / . test ( memberof ) ) {
57
+ about = exports . shorten ( memberof + name , ( doclet . forceMemberof ? memberof : undefined ) ) ;
58
+ }
59
+ else if ( name && doclet . scope ) {
60
+ about = exports . shorten ( memberof + ( scopeToPunc [ doclet . scope ] || '' ) + name ,
61
+ ( doclet . forceMemberof ? memberof : undefined ) ) ;
47
62
}
48
63
}
49
64
else { // no @memberof
@@ -81,9 +96,9 @@ exports.resolve = function(doclet) {
81
96
doclet . name = doclet . name . substr ( 1 ) ;
82
97
}
83
98
else {
84
- doclet . scope = 'static' ; // default scope when none is provided
99
+ doclet . scope = DEFAULT_SCOPE ;
85
100
}
86
-
101
+
87
102
doclet . setLongname ( doclet . memberof + scopeToPunc [ doclet . scope ] + doclet . name ) ;
88
103
}
89
104
}
0 commit comments