Recognize object literal method JSDoc comments

Fixes #6825
This commit is contained in:
Ryan Cavanaugh 2016-02-03 00:18:36 -08:00
parent c69a9d1a5c
commit 8aad976c69
3 changed files with 39 additions and 2 deletions

View File

@ -3960,7 +3960,7 @@ namespace ts {
shorthandDeclaration.equalsToken = equalsToken;
shorthandDeclaration.objectAssignmentInitializer = allowInAnd(parseAssignmentExpressionOrHigher);
}
return finishNode(shorthandDeclaration);
return addJSDocComment(finishNode(shorthandDeclaration));
}
else {
const propertyAssignment = <PropertyAssignment>createNode(SyntaxKind.PropertyAssignment, fullStart);
@ -3969,7 +3969,7 @@ namespace ts {
propertyAssignment.questionToken = questionToken;
parseExpected(SyntaxKind.ColonToken);
propertyAssignment.initializer = allowInAnd(parseAssignmentExpressionOrHigher);
return finishNode(propertyAssignment);
return addJSDocComment(finishNode(propertyAssignment));
}
}

View File

@ -1220,6 +1220,11 @@ namespace ts {
if (isSourceOfAssignmentExpressionStatement) {
return node.parent.parent.jsDocComment;
}
const isPropertyAssignmentExpression = node.parent && node.parent.kind === SyntaxKind.PropertyAssignment;
if (isPropertyAssignmentExpression) {
return node.parent.jsDocComment;
}
}
return undefined;

View File

@ -0,0 +1,32 @@
///<reference path="fourslash.ts" />
// @allowNonTsExtensions: true
// @Filename: Foo.js
//// var someObject = {
//// /**
//// * @param {string} param1 Some string param.
//// * @param {number} parm2 Some number param.
//// */
//// someMethod: function(param1, param2) {
//// console.log(param1/*1*/);
//// return false;
//// },
//// /**
//// * @param {number} p1 Some number param.
//// */
//// otherMethod(p1) {
//// p1/*2*/
//// }
////
//// };
goTo.marker('1');
edit.insert('.');
verify.memberListContains('substr', undefined, undefined, 'method');
edit.backspace();
goTo.marker('2');
edit.insert('.');
verify.memberListContains('toFixed', undefined, undefined, 'method');
edit.backspace();