TypeScript/tests/cases/fourslash/quickInfoDisplayPartsParameters.ts
2014-11-21 00:48:30 -08:00

46 lines
3 KiB
TypeScript

/// <reference path='fourslash.ts'/>
////function /*1*/foo(/*2*/param: string, /*3*/optionalParam?: string, /*4*/paramWithInitializer = "hello", .../*5*/restParam: string[]) {
//// /*6*/param = "Hello";
//// /*7*/optionalParam = "World";
//// /*8*/paramWithInitializer = "Hello";
//// /*9*/restParam[0] = "World";
////}
goTo.marker("1");
verify.verifyQuickInfoDisplayParts("function", "", { start: test.markerByName('1').position, length: "foo".length },
[{ text: "(", kind: "punctuation" }, { text: "function", kind: "text" }, { text: ")", kind: "punctuation" },
{ text: " ", kind: "space" }, { text: "foo", kind: "functionName" }, { text: "(", kind: "punctuation" },
{ text: "param", kind: "parameterName" }, { text: ":", kind: "punctuation" }, { text: " ", kind: "space" }, { text: "string", kind: "keyword" },
{ text: ",", kind: "punctuation" }, { text: " ", kind: "space" },
{ text: "optionalParam", kind: "parameterName" }, { text: "?", kind: "punctuation" }, { text: ":", kind: "punctuation" }, { text: " ", kind: "space" }, { text: "string", kind: "keyword" },
{ text: ",", kind: "punctuation" }, { text: " ", kind: "space" },
{ text: "paramWithInitializer", kind: "parameterName" }, { text: "?", kind: "punctuation" }, { text: ":", kind: "punctuation" }, { text: " ", kind: "space" }, { text: "string", kind: "keyword" },
{ text: ",", kind: "punctuation" }, { text: " ", kind: "space" },
{ text: "...", kind: "punctuation" }, { text: "restParam", kind: "parameterName" }, { text: ":", kind: "punctuation" },
{ text: " ", kind: "space" }, { text: "string", kind: "keyword" } , { text: "[", kind: "punctuation" }, { text: "]", kind: "punctuation" },
{ text: ")", kind: "punctuation" }, { text: ":", kind: "punctuation" }, { text: " ", kind: "space" }, { text: "void", kind: "keyword" }],
[]);
var marker = 1;
function verifyParam(parameterName: string, isRest: boolean) {
marker++;
goTo.marker(marker.toString());
var displayParts = [{ text: "(", kind: "punctuation" }, { text: "parameter", kind: "text" }, { text: ")", kind: "punctuation" }, { text: " ", kind: "space" },
{ text: parameterName, kind: "parameterName" }, { text: ":", kind: "punctuation" }, { text: " ", kind: "space" }, { text: "string", kind: "keyword" }];
if (isRest) {
displayParts.push({ text: "[", kind: "punctuation" }, { text: "]", kind: "punctuation" });
}
verify.verifyQuickInfoDisplayParts("parameter", "", { start: test.markerByName(marker.toString()).position, length: parameterName.length }, displayParts, []);
}
verifyParam('param', /*isRest*/false);
verifyParam('optionalParam', /*isRest*/false);
verifyParam('paramWithInitializer', /*isRest*/false);
verifyParam('restParam', /*isRest*/true);
verifyParam('param', /*isRest*/false);
verifyParam('optionalParam', /*isRest*/false);
verifyParam('paramWithInitializer', /*isRest*/false);
verifyParam('restParam', /*isRest*/true);