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