1/// <reference path='fourslash.ts'/> 2 3// @noLib: true 4 5////namespace mod1 { 6//// var mod1var = 1; 7//// function mod1fn() { 8//// var bar = 1; 9//// function foob() { } 10//// } 11//// class mod1cls { 12//// public cFunc() { } 13//// public ceFunc() { } 14//// public ceVar = 1; 15//// static csVar = 1; 16//// static csFunc() { } 17//// } 18//// interface mod1int { 19//// (bar: any): any; 20//// new (bar: any): any; 21//// bar: any; 22//// foob(bar: any): any; 23//// } 24//// namespace mod1mod { 25//// var m1X = 1; 26//// function m1Func() { 27//// var bar = 1; 28//// function foob() { } 29//// } 30//// class m1Class { 31//// private cVar = 1; 32//// public cFunc() { } 33//// public ceFunc() { } 34//// public ceVar = 1; 35//// static csVar = 1; 36//// static csFunc() { } 37//// } 38//// interface m1Int { 39//// (bar: any): any; 40//// new (bar: any): any; 41//// bar: any; 42//// foob(bar: any): any; 43//// } 44//// export var m1eX = 1; 45//// export function m1eFunc() { 46//// } 47//// export class m1eClass { 48//// private cVar = 1; 49//// public cFunc() { } 50//// public ceFunc() { } 51//// public ceVar = 1; 52//// static csVar = 1; 53//// static csFunc() { } 54//// } 55//// export interface m1eInt { 56//// (bar: any): any; 57//// new (bar: any): any; 58//// bar: any; 59//// foob(bar: any): any; 60//// } 61//// namespace m1Mod { } 62//// export namespace m1eMod { } 63//// } 64//// export var mod1evar = 1; 65//// export function mod1efn() { 66//// var bar = 1; 67//// function foob() { } 68//// } 69//// export class mod1ecls { 70//// private cVar = 1; 71//// public cFunc() { } 72//// public ceFunc() { } 73//// public ceVar = 1; 74//// static csVar = 1; 75//// static csFunc() { } 76//// } 77//// export interface mod1eint { 78//// (bar: any): any; 79//// new (bar: any): any; 80//// bar: any; 81//// foob(bar: any): any; 82//// } 83//// export namespace mod1emod { 84//// var mX = 1; 85//// function mFunc() { 86//// var bar = 1; 87//// function foob() { } 88//// } 89//// class mClass { 90//// public cFunc() { } 91//// public ceFunc() { } 92//// public ceVar = 1; 93//// static csVar = 1; 94//// static csFunc() { } 95//// } 96//// interface mInt { 97//// (bar: any): any; 98//// new (bar: any): any; 99//// bar: any; 100//// foob(bar: any): any; 101//// } 102//// export var meX = 1; 103//// export function meFunc() { 104//// } 105//// export class meClass { 106//// private cVar = 1; 107//// public cFunc() { } 108//// public ceFunc() { } 109//// public ceVar = 1; 110//// static csVar = 1; 111//// static csFunc() { } 112//// } 113//// export interface meInt { 114//// (bar: any): any; 115//// new (bar: any): any; 116//// bar: any; 117//// foob(bar: any): any; 118//// } 119//// namespace mMod { } 120//// export namespace meMod { } 121//// } 122////} 123//// 124////// EXTENDING NAMESPACE 1 125////namespace mod1 { 126//// export var mod1eexvar = 1; 127//// var mod1exvar = 2; 128////} 129//// 130////namespace mod2 { 131//// var mod2var = "shadow"; 132//// function mod2fn() { 133//// var bar = 1; 134//// function foob() { } 135//// } 136//// class mod2cls { 137//// private cVar = 1; 138//// public cFunc() { } 139//// public ceFunc() { } 140//// public ceVar = 1; 141//// static csVar = 1; 142//// static csFunc() { } 143//// } 144//// namespace mod2mod { } 145//// interface mod2int { 146//// (bar: any): any; 147//// new (bar: any): any; 148//// bar: any; 149//// foob(bar: any): any; 150//// } 151//// export var mod2evar = 1; 152//// export function mod2efn() { 153//// } 154//// export class mod2ecls { 155//// public cFunc() { } 156//// public ceFunc() { } 157//// public ceVar = 1; 158//// static csVar = 1; 159//// static csFunc() { } 160//// } 161//// export interface mod2eint { 162//// (bar: any): any; 163//// new (bar: any): any; 164//// bar: any; 165//// foob(bar: any): any; 166//// } 167//// export namespace mod2emod { } 168////} 169//// 170////namespace mod2 { 171//// export var mod2eexvar = 1; 172////} 173//// 174////namespace mod3 { 175//// var shwvar = "shadow"; 176//// function shwfn(shadow: any) { 177//// var bar = 1; 178//// function foob() { } 179//// } 180//// class shwcls { 181//// constructor(public shadow: any) { } 182//// private cVar = 1; 183//// public cFunc() { } 184//// public ceFunc() { } 185//// public ceVar = 1; 186//// static csVar = 1; 187//// static csFunc() { } 188//// } 189//// interface shwint { 190//// (bar: any): any; 191//// new (bar: any): any; 192//// sivar: string; 193//// sifn(shadow: any): any; 194//// } 195//// /*shadowNamespaceWithNoExport*/ 196//// var tmp: /*shadowNamespaceWithNoExportType*/ 197////} 198//// 199////namespace mod4 { 200//// export var shwvar = "shadow"; 201//// export function shwfn(shadow: any) { 202//// var bar = 1; 203//// function foob(){ } 204//// } 205//// export class shwcls { 206//// constructor(shadow: any) { } 207//// public cFunc() { } 208//// public ceFunc() { } 209//// public ceVar = 1; 210//// static csVar = 1; 211//// static csFunc() { } 212//// } 213//// export interface shwint { 214//// (bar: any): any; 215//// new (bar: any): any; 216//// sivar: string; 217//// sifn(shadow: any): any; 218//// } 219//// /*shadowNamespaceWithExport*/ 220//// var tmp: /*shadowNamespaceWithExportType*/ 221////} 222//// 223////namespace mod5 { 224//// import Mod1 = mod1; 225//// import iMod1 = mod1.mod1emod; 226//// /*namespaceWithImport*/ 227//// var tmp: /*namespaceWithImportType*/ 228////} 229//// 230////function shwfn() { 231//// var sfvar = 1; 232//// function sffn() { } 233////} 234//// 235////class shwcls { 236//// private scvar = 1; 237//// private scfn() { } 238//// public scpfn() { } 239//// public scpvar = 1; 240//// static scsvar = 1; 241//// static scsfn() { } 242////} 243//// 244////interface shwint { 245//// (bar: any): any; 246//// new (bar: any): any; 247//// sivar: any; 248//// sifn(bar: any): any; 249////} 250//// 251////var shwvar = 1; 252 253const commonValues: ReadonlyArray<FourSlashInterface.ExpectedCompletionEntry> = 254 [1, 2, 3, 4, 5].map(n => ({ name: `mod${n}`, text: `namespace mod${n}` })); 255const commonTypes: ReadonlyArray<FourSlashInterface.ExpectedCompletionEntry> = 256 [1, 2, 4].map(n => ({ name: `mod${n}`, text: `namespace mod${n}` })); 257 258verify.completions( 259 { 260 marker: ["shadowNamespaceWithNoExport", "shadowNamespaceWithExport"], 261 unsorted: completion.globalsPlus([ 262 ...commonValues, 263 { name: "shwfn", text: "function shwfn(shadow: any): void" }, 264 { name: "shwvar", text: "var shwvar: string" }, 265 { name: "shwcls", text: "class shwcls" }, 266 "tmp", 267 ], { noLib: true }), 268 }, { 269 marker: ["shadowNamespaceWithNoExportType", "shadowNamespaceWithExportType"], 270 unsorted: completion.typeKeywordsPlus([ 271 completion.globalThisEntry, 272 { name: "shwcls", text: "class shwcls" }, 273 { name: "shwint", text: "interface shwint" }, 274 ...commonTypes, 275 ]), 276 }, 277 { 278 marker: "namespaceWithImport", 279 unsorted: completion.globalsPlus([ 280 "Mod1", 281 "iMod1", 282 "tmp", 283 { name: "shwfn", text: "function shwfn(): void" }, 284 ...commonValues, 285 { name: "shwcls", text: "class shwcls" }, 286 { name: "shwvar", text: "var shwvar: number" }, 287 ], { noLib: true }), 288 }, 289 { 290 marker: "namespaceWithImportType", 291 unsorted: completion.typeKeywordsPlus([ 292 completion.globalThisEntry, 293 "Mod1", 294 "iMod1", 295 ...commonTypes, 296 { name: "shwcls", text: "class shwcls" }, 297 { name: "shwint", text: "interface shwint" }, 298 ]), 299 } 300); 301