Skip to content

Commit de400d5

Browse files
Remove member accessors from link keys
1 parent c4bf5dd commit de400d5

File tree

3 files changed

+113
-2
lines changed

3 files changed

+113
-2
lines changed

index.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -593,11 +593,15 @@ exports.astNodeVisitor = {
593593
replace(typeRegex);
594594

595595
const linkWithoutTextRegex = new RegExp(
596-
`@(link (?!https?))${key}((?:\\.[^\\s\\}]*)*\\s*\\})`,
596+
`@(link (?!https?:))${key}((?:\\.[^\\s}]*)*\\s*\\})`,
597+
'g',
598+
);
599+
const linkMemberAccessorRegex = new RegExp(
600+
`@(link (?!https?:)${key})(?:\\.[^\\s}]*)*([\\s|][^}]*\\})`,
597601
'g',
598602
);
599603
const linkWithTextRegex = new RegExp(
600-
`@(link (?!https?))${key}((?:\\.[^\\s\\}]*)*(?:\\s|\\s*\\|)[^\\}]*\\})`,
604+
`@(link (?!https?:))${key}([\\s|][^}]*\\})`,
601605
'g',
602606
);
603607

@@ -606,6 +610,11 @@ exports.astNodeVisitor = {
606610
linkWithoutTextRegex,
607611
`@$1${key} ${key}$2`,
608612
);
613+
// Remove member accessors from link key
614+
comment.value = comment.value.replace(
615+
linkMemberAccessorRegex,
616+
'@$1$2',
617+
);
609618

610619
replace(linkWithTextRegex);
611620

test/dest/expected.json

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -833,6 +833,98 @@
833833
"memberof": "module:test",
834834
"params": []
835835
},
836+
{
837+
"comment": "/**\n * {@link module:test/sub/NumberStore~NumberStore NumberStore.getNumber}\n */",
838+
"meta": {
839+
"range": [
840+
1576,
841+
1626
842+
],
843+
"filename": "index.js",
844+
"lineno": 77,
845+
"columnno": 0,
846+
"code": {
847+
"name": "exports.LinkWithMemberAccessor",
848+
"type": "VariableDeclaration"
849+
}
850+
},
851+
"description": "{@link module:test/sub/NumberStore~NumberStore NumberStore.getNumber}",
852+
"name": "LinkWithMemberAccessor",
853+
"longname": "module:test.LinkWithMemberAccessor",
854+
"kind": "constant",
855+
"memberof": "module:test",
856+
"scope": "static"
857+
},
858+
{
859+
"comment": "",
860+
"meta": {
861+
"range": [
862+
1589,
863+
1625
864+
],
865+
"filename": "index.js",
866+
"lineno": 77,
867+
"columnno": 13,
868+
"code": {
869+
"name": "LinkWithMemberAccessor",
870+
"type": "Identifier",
871+
"value": "NumberStore"
872+
}
873+
},
874+
"undocumented": true,
875+
"name": "LinkWithMemberAccessor",
876+
"longname": "module:test~LinkWithMemberAccessor",
877+
"kind": "constant",
878+
"scope": "inner",
879+
"memberof": "module:test",
880+
"params": []
881+
},
882+
{
883+
"comment": "/**\n * {@link module:test/sub/NumberStore~NumberStore Num}\n */",
884+
"meta": {
885+
"range": [
886+
1673,
887+
1730
888+
],
889+
"filename": "index.js",
890+
"lineno": 82,
891+
"columnno": 0,
892+
"code": {
893+
"name": "exports.LinkWithMemberAccessorAndText",
894+
"type": "VariableDeclaration"
895+
}
896+
},
897+
"description": "{@link module:test/sub/NumberStore~NumberStore Num}",
898+
"name": "LinkWithMemberAccessorAndText",
899+
"longname": "module:test.LinkWithMemberAccessorAndText",
900+
"kind": "constant",
901+
"memberof": "module:test",
902+
"scope": "static"
903+
},
904+
{
905+
"comment": "",
906+
"meta": {
907+
"range": [
908+
1686,
909+
1729
910+
],
911+
"filename": "index.js",
912+
"lineno": 82,
913+
"columnno": 13,
914+
"code": {
915+
"name": "LinkWithMemberAccessorAndText",
916+
"type": "Identifier",
917+
"value": "NumberStore"
918+
}
919+
},
920+
"undocumented": true,
921+
"name": "LinkWithMemberAccessorAndText",
922+
"longname": "module:test~LinkWithMemberAccessorAndText",
923+
"kind": "constant",
924+
"scope": "inner",
925+
"memberof": "module:test",
926+
"params": []
927+
},
836928
{
837929
"comment": "/** @ignore */",
838930
"meta": {

test/src/index.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,13 @@ export const Link = NumberStore;
7070
* {@link NumberStore Num}
7171
*/
7272
export const LinkWithText = NumberStore;
73+
74+
/**
75+
* {@link NumberStore.getNumber}
76+
*/
77+
export const LinkWithMemberAccessor = NumberStore;
78+
79+
/**
80+
* {@link NumberStore.getNumber Num}
81+
*/
82+
export const LinkWithMemberAccessorAndText = NumberStore;

0 commit comments

Comments
 (0)