/// /////** Namespace comment*/ ////namespace m/*1*/1 { //// /** b's comment*/ //// export var b: number; //// /** foo's comment*/ //// function foo() { //// return /*2*/b; //// } //// /** m2 comments*/ //// export namespace m2 { //// /** class comment;*/ //// export class c { //// }; //// /** i*/ //// export var i = new c(); //// } //// /** exported function*/ //// export function fooExport() { //// return fo/*3q*/o(/*3*/); //// } ////} /////*4*/m1./*5*/fooExport(/*6*/); ////var my/*7*/var = new m1.m2./*8*/c(); /////** namespace comment of m2.m3*/ ////namespace m2.m3 { //// /** Exported class comment*/ //// export class c { //// } ////} ////new /*9*/m2./*10*/m3./*11*/c(); /////** namespace comment of m3.m4.m5*/ ////namespace m3.m4.m5 { //// /** Exported class comment*/ //// export class c { //// } ////} ////new /*12*/m3./*13*/m4./*14*/m5./*15*/c(); /////** namespace comment of m4.m5.m6*/ ////namespace m4.m5.m6 { //// export namespace m7 { //// /** Exported class comment*/ //// export class c { //// } //// } ////} ////new /*16*/m4./*17*/m5./*18*/m6./*19*/m7./*20*/c(); /////** namespace comment of m5.m6.m7*/ ////namespace m5.m6.m7 { //// /** namespace m8 comment*/ //// export namespace m8 { //// /** Exported class comment*/ //// export class c { //// } //// } ////} ////new /*21*/m5./*22*/m6./*23*/m7./*24*/m8./*25*/c(); ////namespace m6.m7 { //// export namespace m8 { //// /** Exported class comment*/ //// export class c { //// } //// } ////} ////new /*26*/m6./*27*/m7./*28*/m8./*29*/c(); ////namespace m7.m8 { //// /** namespace m9 comment*/ //// export namespace m9 { //// /** Exported class comment*/ //// export class c { //// } //// } ////} ////new /*30*/m7./*31*/m8./*32*/m9./*33*/c(); ////declare module "quotedM" { //// export class c { //// } //// export var b: /*34*/c; ////} ////namespace complexM { //// export namespace m1 { //// export class c { //// public foo() { //// return 30; //// } //// } //// } //// export namespace m2 { //// export class c { //// public foo2() { //// return new complexM.m1.c(); //// } //// } //// } ////} ////var myComp/*35*/lexVal = new compl/*36*/exM.m/*37*/2./*38*/c().f/*39*/oo2().f/*40*/oo(); verify.quickInfoAt("1", "namespace m1", "Namespace comment"); verify.completions({ marker: "2", includes: [ { name: "b", text: "var b: number", documentation: "b's comment" }, { name: "foo", text: "function foo(): number", documentation: "foo's comment" }, ], }); verify.signatureHelp({ marker: "3", docComment: "foo's comment" }); verify.quickInfoAt("3q", "function foo(): number", "foo's comment"); verify.completions( { marker: "4", includes: { name: "m1", text: "namespace m1", documentation: "Namespace comment" } }, { marker: "5", includes: [ { name: "b", text: "var m1.b: number", documentation: "b's comment" }, { name: "fooExport", text: "function m1.fooExport(): number", documentation: "exported function" }, { name: "m2", text: "namespace m1.m2", documentation: "m2 comments" }, ], }, ); verify.quickInfoAt("5", "function m1.fooExport(): number", "exported function"); verify.signatureHelp({ marker: "6", docComment: "exported function" }); verify.quickInfoAt("7", "var myvar: m1.m2.c"); verify.quickInfoAt("8", "constructor m1.m2.c(): m1.m2.c", "class comment;"); verify.completions( { marker: "8", includes: [ { name: "c", text: "constructor m1.m2.c(): m1.m2.c", documentation: "class comment;" }, { name: "i", text: "var m1.m2.i: m1.m2.c", documentation: "i" }, ], } ); function both(marker: string, name: string, text: string, documentation?: string) { verify.completions({ marker, includes: { name, text, documentation } }); verify.quickInfoAt(marker, text, documentation); } both("9", "m2", "namespace m2", "namespace comment of m2.m3"); both("10", "m3", "namespace m2.m3", "namespace comment of m2.m3"); both("11", "c", "constructor m2.m3.c(): m2.m3.c", "Exported class comment"); both("12", "m3", "namespace m3", "namespace comment of m3.m4.m5"); both("13", "m4", "namespace m3.m4", "namespace comment of m3.m4.m5"); both("14", "m5", "namespace m3.m4.m5", "namespace comment of m3.m4.m5"); both("15", "c", "constructor m3.m4.m5.c(): m3.m4.m5.c", "Exported class comment"); both("16", "m4", "namespace m4", "namespace comment of m4.m5.m6"); both("17", "m5", "namespace m4.m5", "namespace comment of m4.m5.m6"); both("18", "m6", "namespace m4.m5.m6", "namespace comment of m4.m5.m6"); both("19", "m7", "namespace m4.m5.m6.m7"); verify.completions({ marker: "20", includes: { name: "c", text: "constructor m4.m5.m6.m7.c(): m4.m5.m6.m7.c", documentation: "Exported class comment" }, }); verify.quickInfoAt("20", "constructor m4.m5.m6.m7.c(): m4.m5.m6.m7.c", "Exported class comment"); both("21", "m5", "namespace m5", "namespace comment of m5.m6.m7"); both("22", "m6", "namespace m5.m6", "namespace comment of m5.m6.m7"); both("23", "m7", "namespace m5.m6.m7", "namespace comment of m5.m6.m7"); both("24", "m8", "namespace m5.m6.m7.m8", "namespace m8 comment"); both("25", "c", "constructor m5.m6.m7.m8.c(): m5.m6.m7.m8.c", "Exported class comment"); both("26", "m6", "namespace m6"); both("27", "m7", "namespace m6.m7"); both("28", "m8", "namespace m6.m7.m8"); both("29", "c", "constructor m6.m7.m8.c(): m6.m7.m8.c", "Exported class comment"); both("30", "m7", "namespace m7"); both("31", "m8", "namespace m7.m8"); both("32", "m9", "namespace m7.m8.m9", "namespace m9 comment"); both("33", "c", "constructor m7.m8.m9.c(): m7.m8.m9.c", "Exported class comment"); both("34", "c", "class c"); verify.quickInfos({ 35: "var myComplexVal: number", 36: "namespace complexM", 37: "namespace complexM.m2", 38: "constructor complexM.m2.c(): complexM.m2.c", 39: "(method) complexM.m2.c.foo2(): complexM.m1.c", 40: "(method) complexM.m1.c.foo(): number", });