Add builder support for variable declarations + test cases.

This commit is contained in:
Paul van Brenk 2015-02-04 14:03:26 -08:00
parent e233da0fd6
commit 6e35f79412
2 changed files with 32 additions and 4 deletions

View File

@ -2418,17 +2418,27 @@ module ts {
var containingNodeKind = previousToken.parent.kind;
switch (previousToken.kind) {
case SyntaxKind.CommaToken:
return containingNodeKind === SyntaxKind.CallExpression // func( a, |
|| containingNodeKind === SyntaxKind.Constructor; // constructor( a, |
return containingNodeKind === SyntaxKind.CallExpression // func( a, |
|| containingNodeKind === SyntaxKind.Constructor // constructor( a, |
|| previousToken.parent.parent.parent.kind === SyntaxKind.VariableDeclaration; // var x = (a, b| <- this can be a lambda expression
case SyntaxKind.OpenParenToken:
return containingNodeKind === SyntaxKind.CallExpression // func( |
|| containingNodeKind === SyntaxKind.Constructor; // constructor( |
return containingNodeKind === SyntaxKind.CallExpression // func( |
|| containingNodeKind === SyntaxKind.Constructor // constructor( |
|| previousToken.parent.parent.kind === SyntaxKind.VariableDeclaration; // var x = (a| <- this can be a lambda expression
case SyntaxKind.ModuleKeyword: // module |
return true;
case SyntaxKind.DotToken:
return containingNodeKind === SyntaxKind.ModuleDeclaration; // module A.|
case SyntaxKind.OpenBraceToken:
return containingNodeKind === SyntaxKind.ClassDeclaration; // class A{ |
case SyntaxKind.EqualsToken:
return containingNodeKind === SyntaxKind.VariableDeclaration; // var x = a| <- this can be lambda expression
case SyntaxKind.PublicKeyword:
case SyntaxKind.PrivateKeyword:
case SyntaxKind.ProtectedKeyword:

View File

@ -0,0 +1,18 @@
/// <reference path='fourslash.ts' />
//// var x = a/*var1*/
//// var x = (b/*var2*/
//// var x = (c, d/*var3*/
//// var y : any = "", x = a/*var4*/
//// var y : any = "", x = (a/*var5*/
test.markers().forEach((m) => {
goTo.position(m.position, m.fileName);
verify.completionListAllowsNewIdentifier();
});