• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/// <reference path="fourslash.ts"/>
2
3////
4////module classes {
5////{| "indent": 4 |}
6////    class Bar {
7////{| "indent": 8 |}
8////
9////        constructor() {
10////{| "indent": 12 |}
11////        }
12////
13////        private foo: string = "";
14////{| "indent": 8 |}
15////
16////        private f() {
17////            var a: any[] = [[1, 2], [3, 4], 5];
18////{| "indent": 12 |}
19////            return ((1 + 1));
20////        }
21////
22////{| "indent": 8 |}
23////        private f2() {
24////            if (true) { } { };
25////        }
26////    }
27////}
28////
29////
30////module interfaces {
31////{| "indent": 4 |}
32////    interface Foo {
33////{| "indent": 8 |}
34////
35////        x: number;
36////{| "indent": 8 |}
37////
38////        foo(): number;
39////{| "indent": 8 |}
40////    }
41////}
42////
43////
44////module nestedModules {
45////    module Foo2 {
46////{| "indent": 8 |}
47////        function f() {
48////        }
49////{| "indent": 8 |}
50////        var x: number;
51////{| "indent": 8 |}
52////    }
53////}
54////
55////
56////module Enums {
57////    enum Foo3 {
58////{| "indent": 8 |}
59////        val1,
60////{| "indent": 8 |}
61////        val2,
62////{| "indent": 8 |}
63////    }
64////{| "indent": 4 |}
65////}
66////
67////
68////function controlStatements() {
69////    for (var i = 0; i < 10; i++) {
70////{| "indent": 8 |}
71////    }
72////
73////    for (var e in foo.bar) {
74////{| "indent": 8 |}
75////    }
76////
77////    with (foo.bar) {
78////{| "indent": 8 |}
79////    }
80////
81////    while (false) {
82////{| "indent": 8 |}
83////    }
84////
85////    do {
86////{| "indent": 8 |}
87////    } while (false);
88////
89////    switch (foo.bar) {
90////{| "indent": 8 |}
91////    }
92////
93////    switch (foo.bar) {
94////{| "indent": 8 |}
95////        case 1:
96////{| "indent": 12 |}
97////            break;
98////        default:
99////{| "indent": 12 |}
100////            break;
101////    }
102////}
103////
104////
105////function tryCatch() {
106////{| "indent": 4 |}
107////    try {
108////{| "indent": 8 |}
109////    }
110////{| "indent": 4 |}
111////    catch (err) {
112////{| "indent": 8 |}
113////    }
114////{| "indent": 4 |}
115////}
116////
117////
118////function tryFinally() {
119////{| "indent": 4 |}
120////    try {
121////{| "indent": 8 |}
122////    }
123////{| "indent": 4 |}
124////    finally {
125////{| "indent": 8 |}
126////    }
127////{| "indent": 4 |}
128////}
129////
130////
131////function tryCatchFinally() {
132////{| "indent": 4 |}
133////    try {
134////{| "indent": 8 |}
135////    }
136////{| "indent": 4 |}
137////    catch (err) {
138////{| "indent": 8 |}
139////    }
140////{| "indent": 4 |}
141////    finally {
142////{| "indent": 8 |}
143////    }
144////{| "indent": 4 |}
145////}
146////
147////
148////class indentBeforeCurly
149////{| "indent": 0 |}
150////{| "indent": 0 |}{
151////{| "indent": 4 |}
152////}
153////
154////
155////function argumentsListIndentation(bar,
156////             blah,
157////             {| "indent": 13 |}
158////);
159////
160////
161////function blockIndentAfterIndentedParameter1(bar,
162////             blah) {
163////{| "indent": 4 |}
164////}
165////
166////
167////function blockIndentAfterIndentedParameter2(bar,
168////             blah) {
169////    if (foo) {
170////{| "indent": 8 |}
171////    }
172////}
173////
174////
175////// Note: Do not add more tests at the end of this file, as
176//////       the purpose of this test is to verity smart indent
177//////       works for unterminated function arguments at the end of a file.
178////function unterminatedListIndentation(a,
179////{| "indent": 4 |}
180
181test.markers().forEach(marker => {
182    verify.indentationAtPositionIs(marker.fileName, marker.position, marker.data.indent);
183});
184