renamed getNodeAtPosition to getExactTokenAtPosition, added predicate parameter that will determine if token with end === position should be returned

This commit is contained in:
Vladimir Matveev
2014-09-25 14:29:32 -07:00
parent 5fb50d8314
commit c456ef496d
12 changed files with 286 additions and 110 deletions

View File

@@ -0,0 +1,42 @@
/// <reference path='fourslash.ts' />
////if/*1*/ (true) {
//// if/*2*/ (false) {
//// }
//// else/*3*/ {
//// }
//// if/*4*/ (true) {
//// }
//// else/*5*/ {
//// if/*6*/ (false)
//// if/*7*/ (true)
//// var x = undefined;
//// }
////}
////else/*8*/ if (null) {
////}
////else/*9*/ /* whar garbl */ if/*10*/ (undefined) {
////}
////else/*11*/
////if/*12*/ (false) {
////}
////else/*13*/ { }
function verifyOccurencesAtMarker(marker: string, count: number) {
goTo.marker(marker);
verify.occurrencesAtPositionCount(count);
}
verifyOccurencesAtMarker("1", 7);
verifyOccurencesAtMarker("2", 2);
verifyOccurencesAtMarker("3", 2);
verifyOccurencesAtMarker("4", 2);
verifyOccurencesAtMarker("5", 2);
verifyOccurencesAtMarker("6", 1);
verifyOccurencesAtMarker("7", 1);
verifyOccurencesAtMarker("8", 7);
verifyOccurencesAtMarker("9", 7);
verifyOccurencesAtMarker("10", 7);
verifyOccurencesAtMarker("11", 7);
verifyOccurencesAtMarker("12", 7);
verifyOccurencesAtMarker("13", 7);

View File

@@ -1,29 +0,0 @@
/// <reference path='fourslash.ts' />
////if/*1*/ (true) {
//// if/*2*/ (false) {
//// }
//// else/*3*/ {
//// }
//// if/*4*/ (true) {
//// }
//// else/*5*/ {
//// if/*6*/ (false)
//// if/*7*/ (true)
//// var x = undefined;
//// }
////}
////else/*8*/ if (null) {
////}
////else/*9*/ /* whar garbl */ if/*10*/ (undefined) {
////}
////else/*11*/
////if/*12*/ (false) {
////}
////else/*13*/ { }
test.markers().forEach(m => {
goTo.position(m.position, m.fileName)
verify.occurrencesAtPositionCount(0);
});

View File

@@ -0,0 +1,70 @@
/// <reference path='fourslash.ts' />
////var arr = [1, 2, 3, 4];
////label1: for (var n in arr) {
//// break;
//// continue;
//// break label1;
//// continue label1;
////
//// label2: for (var i = 0; i < arr[n]; i++) {
//// break label1;
//// continue label1;
////
//// break;
//// continue;
//// break label2;
//// continue label2;
////
//// function foo() {
//// label3: while (true) {
//// break;
//// continue;
//// break label3;
//// continue label3;
////
//// // these cross function boundaries
//// br/*1*/eak label1;
//// cont/*2*/inue label1;
//// bre/*3*/ak label2;
//// c/*4*/ontinue label2;
////
//// label4: do {
//// break;
//// continue;
//// break label4;
//// continue label4;
////
//// break label3;
//// continue label3;
////
//// switch (10) {
//// case 1:
//// case 2:
//// break;
//// break label4;
//// default:
//// continue;
//// }
////
//// // these cross function boundaries
//// br/*5*/eak label1;
//// co/*6*/ntinue label1;
//// br/*7*/eak label2;
//// con/*8*/tinue label2;
//// () => { b/*9*/reak; }
//// } while (true)
//// }
//// }
//// }
////}
////
////label5: while (true) break label5;
////
////label7: while (true) co/*10*/ntinue label5;
test.markers().forEach(m => {
goTo.position(m.position);
verify.occurrencesAtPositionCount(0);
});

View File

@@ -19,7 +19,15 @@
//// return/*7*/ true;
////}
test.markers().forEach(m => {
goTo.position(m.position, m.fileName)
verify.occurrencesAtPositionCount(0);
});
function verifyOccurencesAtMarker(marker: string, count: number) {
goTo.marker(marker);
verify.occurrencesAtPositionCount(count);
}
verifyOccurencesAtMarker("1", 4);
verifyOccurencesAtMarker("2", 4);
verifyOccurencesAtMarker("3", 4);
verifyOccurencesAtMarker("4", 4);
verifyOccurencesAtMarker("5", 1);
verifyOccurencesAtMarker("6", 3);
verifyOccurencesAtMarker("7", 3);

View File

@@ -0,0 +1,40 @@
/// <reference path='fourslash.ts' />
////switch/*1*/ (10) {
//// case/*2*/ 1:
//// case/*3*/ 2:
//// case/*4*/ 4:
//// case/*5*/ 8:
//// foo: switch/*6*/ (20) {
//// case/*7*/ 1:
//// case/*8*/ 2:
//// break/*9*/;
//// default/*10*/:
//// break foo;
//// }
//// case/*11*/ 0xBEEF:
//// default/*12*/:
//// break/*13*/;
//// case 16/*14*/:
////}
function verifyOccurencesAtMarker(marker: string, count: number) {
goTo.marker(marker);
verify.occurrencesAtPositionCount(count);
}
verifyOccurencesAtMarker("1", 9);
verifyOccurencesAtMarker("2", 9);
verifyOccurencesAtMarker("3", 9);
verifyOccurencesAtMarker("4", 9);
verifyOccurencesAtMarker("5", 9);
verifyOccurencesAtMarker("6", 6);
verifyOccurencesAtMarker("7", 6);
verifyOccurencesAtMarker("8", 6);
verifyOccurencesAtMarker("9", 6);
verifyOccurencesAtMarker("10", 6);
verifyOccurencesAtMarker("11", 9);
verifyOccurencesAtMarker("12", 9);
verifyOccurencesAtMarker("13", 9);
verifyOccurencesAtMarker("14", 0);

View File

@@ -1,25 +0,0 @@
/// <reference path='fourslash.ts' />
////switch/*1*/ (10) {
//// case/*2*/ 1:
//// case/*3*/ 2:
//// case/*4*/ 4:
//// case/*5*/ 8:
//// foo: switch/*6*/ (20) {
//// case/*7*/ 1:
//// case/*8*/ 2:
//// break/*9*/;
//// default/*10*/:
//// break foo;
//// }
//// case/*11*/ 0xBEEF:
//// default/*12*/:
//// break/*13*/;
//// case 16/*14*/:
////}
for (var i = 1; i <= test.markers().length; i++) {
goTo.marker("" + i);
verify.occurrencesAtPositionCount(0);
}

View File

@@ -142,8 +142,14 @@
////}
test.markers().forEach(m => {
goTo.position(m.position, m.fileName)
function verifyOccurencesAtMarker(marker: string, count: number) {
goTo.marker(marker);
verify.occurrencesAtPositionCount(count);
}
verify.occurrencesAtPositionCount(0);
});
verifyOccurencesAtMarker("1", 2);
verifyOccurencesAtMarker("2", 6);
verifyOccurencesAtMarker("3", 1);
verifyOccurencesAtMarker("4", 1);
verifyOccurencesAtMarker("5", 1);
verifyOccurencesAtMarker("6", 0);

View File

@@ -0,0 +1,30 @@
/// <reference path='fourslash.ts' />
////try/*1*/ {
//// try/*2*/ {
//// }
//// catch/*3*/ (x) {
//// }
////
//// try/*4*/ {
//// }
//// finally/*5*/ {/*8*/
//// }
////}
////catch/*6*/ (e) {
////}
////finally/*7*/ {
////}
function verifyOccurencesAtMarker(marker: string, count: number) {
goTo.marker(marker);
verify.occurrencesAtPositionCount(count);
}
verifyOccurencesAtMarker("1", 3);
verifyOccurencesAtMarker("2", 2);
verifyOccurencesAtMarker("3", 2);
verifyOccurencesAtMarker("4", 2);
verifyOccurencesAtMarker("5", 2);
verifyOccurencesAtMarker("6", 3);
verifyOccurencesAtMarker("7", 3);
verifyOccurencesAtMarker("8", 0);

View File

@@ -1,23 +0,0 @@
/// <reference path='fourslash.ts' />
////try/*1*/ {
//// try/*2*/ {
//// }
//// catch/*3*/ (x) {
//// }
////
//// try/*4*/ {
//// }
//// finally/*5*/ {/*8*/
//// }
////}
////catch/*6*/ (e) {
////}
////finally/*7*/ {
////}
for (var i = 1; i <= test.markers().length; i++) {
goTo.marker("" + i);
verify.occurrencesAtPositionCount(0);
}

View File

@@ -5,7 +5,12 @@
// @Filename: Consumption.ts
//// var n = new /*1*/c();
//// var n = new c/*3*/();
goTo.marker('1');
goTo.definition();
verify.caretAtMarker('2');
goTo.marker('3');
goTo.definition();
verify.caretAtMarker('2');