Breakpoints in enum declaration

This commit is contained in:
Sheetal Nandi
2014-09-02 16:53:03 -07:00
parent d235caf990
commit 01d4ce25e2
3 changed files with 128 additions and 0 deletions

View File

@@ -125,6 +125,12 @@ module ts.BreakpointResolver {
case SyntaxKind.ImportDeclaration:
return spanInImportDeclaration(<ImportDeclaration>node);
case SyntaxKind.EnumDeclaration:
return spanInEnumDeclaration(<EnumDeclaration>node);
case SyntaxKind.EnumMember:
return spanInEnumMember(<EnumMember>node);
case SyntaxKind.BinaryExpression:
case SyntaxKind.PostfixOperator:
case SyntaxKind.PrefixOperator:
@@ -365,6 +371,19 @@ module ts.BreakpointResolver {
return textSpan(importDeclaration, importDeclaration.entityName || importDeclaration.externalModuleName);
}
function spanInEnumDeclaration(enumDeclaration: EnumDeclaration): TypeScript.TextSpan {
if (enumDeclaration.members.length) {
return spanInEnumMember(enumDeclaration.members[0]);
}
// On close brace
return spanInNode(enumDeclaration.getLastToken(sourceFile));
}
function spanInEnumMember(enumMember: EnumMember) {
return textSpan(enumMember);
}
function spanInExpression(expression: Expression): TypeScript.TextSpan {
//TODO (pick this up later) for now lets fix do-while baseline
if (node.parent.kind === SyntaxKind.DoStatement) {
@@ -385,6 +404,7 @@ module ts.BreakpointResolver {
function spanInCommaToken(node: Node): TypeScript.TextSpan {
switch (node.parent.kind) {
case SyntaxKind.FunctionDeclaration:
case SyntaxKind.VariableStatement:
case SyntaxKind.EnumDeclaration:
return spanInPreviousNode(node);
@@ -417,6 +437,7 @@ module ts.BreakpointResolver {
function spanInCloseBraceToken(node: Node): TypeScript.TextSpan {
switch (node.parent.kind) {
case SyntaxKind.FunctionBlock:
case SyntaxKind.EnumDeclaration:
// Span on close brace token
return textSpan(node);