• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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