Support getting JSDoc comment starting at a FunctionType node (#23546)

* Support getting JSDoc comment starting at a FunctionType node

* Move || to end of line
This commit is contained in:
Andy
2018-04-20 09:43:20 -07:00
committed by GitHub
parent c8e4b7ba50
commit 94cc59ca60
2 changed files with 12 additions and 12 deletions
+8 -8
View File
@@ -1818,10 +1818,8 @@ namespace ts {
function getJSDocCommentsAndTagsWorker(node: Node): void {
const parent = node.parent;
if (parent &&
(parent.kind === SyntaxKind.PropertyAssignment ||
parent.kind === SyntaxKind.PropertyDeclaration ||
getNestedModuleDeclaration(parent))) {
if (!parent) return;
if (parent.kind === SyntaxKind.PropertyAssignment || parent.kind === SyntaxKind.PropertyDeclaration || getNestedModuleDeclaration(parent)) {
getJSDocCommentsAndTagsWorker(parent);
}
// Try to recognize this pattern when node is initializer of variable declaration and JSDoc comments are on containing variable statement.
@@ -1830,16 +1828,18 @@ namespace ts {
// * @returns {number}
// */
// var x = function(name) { return name.length; }
if (parent && parent.parent &&
if (parent.parent &&
(getSingleVariableOfVariableStatement(parent.parent) === node || getSourceOfAssignment(parent.parent))) {
getJSDocCommentsAndTagsWorker(parent.parent);
}
if (parent && parent.parent && parent.parent.parent &&
(getSingleInitializerOfVariableStatementOrPropertyDeclaration(parent.parent.parent) === node || getSourceOfDefaultedAssignment(parent.parent.parent))) {
if (parent.parent && parent.parent.parent &&
(getSingleVariableOfVariableStatement(parent.parent.parent) ||
getSingleInitializerOfVariableStatementOrPropertyDeclaration(parent.parent.parent) === node ||
getSourceOfDefaultedAssignment(parent.parent.parent))) {
getJSDocCommentsAndTagsWorker(parent.parent.parent);
}
if (isBinaryExpression(node) && getSpecialPropertyAssignmentKind(node) !== SpecialPropertyAssignmentKind.None ||
parent && isBinaryExpression(parent) && getSpecialPropertyAssignmentKind(parent) !== SpecialPropertyAssignmentKind.None ||
isBinaryExpression(parent) && getSpecialPropertyAssignmentKind(parent) !== SpecialPropertyAssignmentKind.None ||
node.kind === SyntaxKind.PropertyAccessExpression && node.parent && node.parent.kind === SyntaxKind.ExpressionStatement) {
getJSDocCommentsAndTagsWorker(parent);
}
+4 -4
View File
@@ -59,8 +59,8 @@ verify.currentSignatureHelpDocCommentIs("foos comment");
verify.quickInfoAt("5q", "function foo(): void", "foos comment");
goTo.marker('6');
verify.currentSignatureHelpDocCommentIs("");
verify.quickInfoAt("6q", "var fooVar: () => void");
verify.currentSignatureHelpDocCommentIs("fooVar comment");
verify.quickInfoAt("6q", "var fooVar: () => void", "fooVar comment");
goTo.marker('7');
verify.completionListContains("foo", "function foo(): void", "foos comment");
@@ -71,9 +71,9 @@ verify.currentSignatureHelpDocCommentIs("foos comment");
verify.quickInfoAt("8q", "function foo(): void", "foos comment");
goTo.marker('9');
verify.currentSignatureHelpDocCommentIs("");
verify.currentSignatureHelpDocCommentIs("fooVar comment");
verify.quickInfos({
"9q": "var fooVar: () => void",
"9q": ["var fooVar: () => void", "fooVar comment"],
"9aq": ["var fooVar: () => void", "fooVar comment"]
});