mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Set breakpoint on whole enum declaration if set on the enum name of enum keyword
This commit is contained in:
@@ -161,10 +161,8 @@ module ts.BreakpointResolver {
|
||||
return spanInImportDeclaration(<ImportDeclaration>node);
|
||||
|
||||
case SyntaxKind.EnumDeclaration:
|
||||
return spanInEnumDeclaration(<EnumDeclaration>node);
|
||||
|
||||
case SyntaxKind.EnumMember:
|
||||
return spanInEnumMember(<EnumMember>node);
|
||||
return textSpan(node);
|
||||
|
||||
case SyntaxKind.ModuleDeclaration:
|
||||
return spanInModuleDeclaration(<ModuleDeclaration>node);
|
||||
@@ -431,19 +429,6 @@ 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 spanInModuleDeclaration(moduleDeclaration: ModuleDeclaration): TypeScript.TextSpan {
|
||||
return spanInNode(moduleDeclaration.body);
|
||||
}
|
||||
@@ -466,8 +451,13 @@ module ts.BreakpointResolver {
|
||||
|
||||
// Tokens:
|
||||
function spanInOpenBraceToken(node: Node): TypeScript.TextSpan {
|
||||
if (node.parent.kind === SyntaxKind.SwitchStatement) {
|
||||
return spanInNodeIfStartsOnSameLine(node.parent, (<SwitchStatement>node.parent).clauses[0]);
|
||||
switch (node.parent.kind) {
|
||||
case SyntaxKind.EnumDeclaration:
|
||||
var enumDeclaration = <EnumDeclaration>node.parent;
|
||||
return spanInNodeIfStartsOnSameLine(findPrecedingToken(node.pos, sourceFile, node.parent), enumDeclaration.members.length ? enumDeclaration.members[0] : enumDeclaration.getLastToken(sourceFile));
|
||||
|
||||
case SyntaxKind.SwitchStatement:
|
||||
return spanInNodeIfStartsOnSameLine(node.parent, (<SwitchStatement>node.parent).clauses[0]);
|
||||
}
|
||||
|
||||
// Default to parent node
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
|
||||
1 >enum e {
|
||||
|
||||
~~~~~~~~~ => Pos: (0 to 8) SpanInfo: {"start":13,"length":1}
|
||||
>x
|
||||
>:=> (line 2, col 4) to (line 2, col 5)
|
||||
~~~~~~~~~ => Pos: (0 to 8) SpanInfo: {"start":0,"length":30}
|
||||
>enum e {
|
||||
> x,
|
||||
> y,
|
||||
> x
|
||||
>}
|
||||
>:=> (line 1, col 0) to (line 5, col 1)
|
||||
--------------------------------
|
||||
2 > x,
|
||||
|
||||
@@ -31,9 +35,14 @@
|
||||
--------------------------------
|
||||
6 >enum e2 {
|
||||
|
||||
~~~~~~~~~~ => Pos: (31 to 40) SpanInfo: {"start":45,"length":6}
|
||||
>x = 10
|
||||
>:=> (line 7, col 4) to (line 7, col 10)
|
||||
~~~~~~~~~~ => Pos: (31 to 40) SpanInfo: {"start":31,"length":49}
|
||||
>enum e2 {
|
||||
> x = 10,
|
||||
> y = 10,
|
||||
> z,
|
||||
> x2
|
||||
>}
|
||||
>:=> (line 6, col 0) to (line 11, col 1)
|
||||
--------------------------------
|
||||
7 > x = 10,
|
||||
|
||||
@@ -67,9 +76,10 @@
|
||||
--------------------------------
|
||||
12 >enum e3 {
|
||||
|
||||
~~~~~~~~~~ => Pos: (81 to 90) SpanInfo: {"start":91,"length":1}
|
||||
~~~~~~~~~~ => Pos: (81 to 90) SpanInfo: {"start":81,"length":11}
|
||||
>enum e3 {
|
||||
>}
|
||||
>:=> (line 13, col 0) to (line 13, col 1)
|
||||
>:=> (line 12, col 0) to (line 13, col 1)
|
||||
--------------------------------
|
||||
13 >}
|
||||
|
||||
@@ -98,4 +108,141 @@
|
||||
~~~~~~~ => Pos: (132 to 138) SpanInfo: undefined
|
||||
--------------------------------
|
||||
19 >}
|
||||
~ => Pos: (139 to 139) SpanInfo: undefined
|
||||
|
||||
~~ => Pos: (139 to 140) SpanInfo: undefined
|
||||
--------------------------------
|
||||
20 >enum e11
|
||||
|
||||
~~~~~~~~~~ => Pos: (141 to 150) SpanInfo: {"start":141,"length":33}
|
||||
>enum e11
|
||||
>{
|
||||
> x,
|
||||
> y,
|
||||
> x
|
||||
>}
|
||||
>:=> (line 20, col 0) to (line 25, col 1)
|
||||
--------------------------------
|
||||
21 >{
|
||||
|
||||
~~ => Pos: (151 to 152) SpanInfo: {"start":157,"length":1}
|
||||
>x
|
||||
>:=> (line 22, col 4) to (line 22, col 5)
|
||||
--------------------------------
|
||||
22 > x,
|
||||
|
||||
~~~~~~~ => Pos: (153 to 159) SpanInfo: {"start":157,"length":1}
|
||||
>x
|
||||
>:=> (line 22, col 4) to (line 22, col 5)
|
||||
--------------------------------
|
||||
23 > y,
|
||||
|
||||
~~~~~~~ => Pos: (160 to 166) SpanInfo: {"start":164,"length":1}
|
||||
>y
|
||||
>:=> (line 23, col 4) to (line 23, col 5)
|
||||
--------------------------------
|
||||
24 > x
|
||||
|
||||
~~~~~~ => Pos: (167 to 172) SpanInfo: {"start":171,"length":1}
|
||||
>x
|
||||
>:=> (line 24, col 4) to (line 24, col 5)
|
||||
--------------------------------
|
||||
25 >}
|
||||
|
||||
~~ => Pos: (173 to 174) SpanInfo: {"start":173,"length":1}
|
||||
>}
|
||||
>:=> (line 25, col 0) to (line 25, col 1)
|
||||
--------------------------------
|
||||
26 >enum e12
|
||||
|
||||
~~~~~~~~~ => Pos: (175 to 183) SpanInfo: {"start":175,"length":50}
|
||||
>enum e12
|
||||
>{
|
||||
> x = 10,
|
||||
> y = 10,
|
||||
> z,
|
||||
> x2
|
||||
>}
|
||||
>:=> (line 26, col 0) to (line 32, col 1)
|
||||
--------------------------------
|
||||
27 >{
|
||||
|
||||
~~ => Pos: (184 to 185) SpanInfo: {"start":190,"length":6}
|
||||
>x = 10
|
||||
>:=> (line 28, col 4) to (line 28, col 10)
|
||||
--------------------------------
|
||||
28 > x = 10,
|
||||
|
||||
~~~~~~~~~~~~ => Pos: (186 to 197) SpanInfo: {"start":190,"length":6}
|
||||
>x = 10
|
||||
>:=> (line 28, col 4) to (line 28, col 10)
|
||||
--------------------------------
|
||||
29 > y = 10,
|
||||
|
||||
~~~~~~~~~~~~ => Pos: (198 to 209) SpanInfo: {"start":202,"length":6}
|
||||
>y = 10
|
||||
>:=> (line 29, col 4) to (line 29, col 10)
|
||||
--------------------------------
|
||||
30 > z,
|
||||
|
||||
~~~~~~~ => Pos: (210 to 216) SpanInfo: {"start":214,"length":1}
|
||||
>z
|
||||
>:=> (line 30, col 4) to (line 30, col 5)
|
||||
--------------------------------
|
||||
31 > x2
|
||||
|
||||
~~~~~~~ => Pos: (217 to 223) SpanInfo: {"start":221,"length":2}
|
||||
>x2
|
||||
>:=> (line 31, col 4) to (line 31, col 6)
|
||||
--------------------------------
|
||||
32 >}
|
||||
|
||||
~~ => Pos: (224 to 225) SpanInfo: {"start":224,"length":1}
|
||||
>}
|
||||
>:=> (line 32, col 0) to (line 32, col 1)
|
||||
--------------------------------
|
||||
33 >enum e13
|
||||
|
||||
~~~~~~~~~ => Pos: (226 to 234) SpanInfo: {"start":226,"length":12}
|
||||
>enum e13
|
||||
>{
|
||||
>}
|
||||
>:=> (line 33, col 0) to (line 35, col 1)
|
||||
--------------------------------
|
||||
34 >{
|
||||
|
||||
~~ => Pos: (235 to 236) SpanInfo: {"start":237,"length":1}
|
||||
>}
|
||||
>:=> (line 35, col 0) to (line 35, col 1)
|
||||
--------------------------------
|
||||
35 >}
|
||||
|
||||
~~ => Pos: (237 to 238) SpanInfo: {"start":237,"length":1}
|
||||
>}
|
||||
>:=> (line 35, col 0) to (line 35, col 1)
|
||||
--------------------------------
|
||||
36 >declare enum e14
|
||||
|
||||
~~~~~~~~~~~~~~~~~ => Pos: (239 to 255) SpanInfo: undefined
|
||||
--------------------------------
|
||||
37 >{
|
||||
|
||||
~~ => Pos: (256 to 257) SpanInfo: undefined
|
||||
--------------------------------
|
||||
38 > x,
|
||||
|
||||
~~~~~~~ => Pos: (258 to 264) SpanInfo: undefined
|
||||
--------------------------------
|
||||
39 > y,
|
||||
|
||||
~~~~~~~ => Pos: (265 to 271) SpanInfo: undefined
|
||||
--------------------------------
|
||||
40 > z,
|
||||
|
||||
~~~~~~~ => Pos: (272 to 278) SpanInfo: undefined
|
||||
--------------------------------
|
||||
41 > x2
|
||||
|
||||
~~~~~~~ => Pos: (279 to 285) SpanInfo: undefined
|
||||
--------------------------------
|
||||
42 >}
|
||||
~ => Pos: (286 to 286) SpanInfo: undefined
|
||||
@@ -21,5 +21,28 @@
|
||||
//// z,
|
||||
//// x2
|
||||
////}
|
||||
////enum e11
|
||||
////{
|
||||
//// x,
|
||||
//// y,
|
||||
//// x
|
||||
////}
|
||||
////enum e12
|
||||
////{
|
||||
//// x = 10,
|
||||
//// y = 10,
|
||||
//// z,
|
||||
//// x2
|
||||
////}
|
||||
////enum e13
|
||||
////{
|
||||
////}
|
||||
////declare enum e14
|
||||
////{
|
||||
//// x,
|
||||
//// y,
|
||||
//// z,
|
||||
//// x2
|
||||
////}
|
||||
|
||||
verify.baselineCurrentFileBreakpointLocations();
|
||||
Reference in New Issue
Block a user