@@ -11,29 +11,31 @@ import getJSDocComment from './eslint/getJSDocComment';
11
11
* @returns {object }
12
12
*/
13
13
const parseComment = ( commentNode , indent , trim = true ) => {
14
+ const skipSeeLink = ( parser ) => {
15
+ return ( str , data ) => {
16
+ if ( data . tag === 'see' && str . match ( / { @ l i n k .+ ?} / ) ) {
17
+ return null ;
18
+ }
19
+
20
+ return parser ( str , data ) ;
21
+ }
22
+ } ;
23
+
14
24
// Preserve JSDoc block start/end indentation.
15
25
return commentParser ( `${ indent } /*${ commentNode . value } ${ indent } */` , {
16
26
// @see https://github.com/yavorskiy/comment-parser/issues/21
17
27
parsers : [
18
28
commentParser . PARSERS . parse_tag ,
19
- ( str , data ) => {
20
- if ( data . tag === 'see' ) {
21
- // @see can't contain types, only names or links which might be confused with types
22
- return null ;
23
- }
24
-
25
- return commentParser . PARSERS . parse_type ( str , data ) ;
26
- } ,
27
- ( str , data ) => {
28
- if ( [ 'example' , 'return' , 'returns' , 'throws' , 'exception' ] . includes ( data . tag ) ) {
29
- return null ;
30
- }
31
- if ( data . tag === 'see' && str . match ( / { @ l i n k .+ ?} / ) ) {
32
- return null ;
33
- }
29
+ skipSeeLink ( commentParser . PARSERS . parse_type ) ,
30
+ skipSeeLink (
31
+ ( str , data ) => {
32
+ if ( [ 'example' , 'return' , 'returns' , 'throws' , 'exception' ] . includes ( data . tag ) ) {
33
+ return null ;
34
+ }
34
35
35
- return commentParser . PARSERS . parse_name ( str , data ) ;
36
- } ,
36
+ return commentParser . PARSERS . parse_name ( str , data ) ;
37
+ } ,
38
+ ) ,
37
39
trim ?
38
40
commentParser . PARSERS . parse_description :
39
41
0 commit comments