Skip to content

Commit 9a3462a

Browse files
committed
added handling for smart indentation in the beginning of list items, updated test baselines. TODO: smart indentation in the middle of list items (2 failing tests)
1 parent 563b92c commit 9a3462a

File tree

7 files changed

+193
-75
lines changed

7 files changed

+193
-75
lines changed

src/services/formatting/smartIndenter.ts

Lines changed: 140 additions & 71 deletions
Large diffs are not rendered by default.

tests/cases/fourslash/indentation.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@
154154
////
155155
////function argumentsListIndentation(bar,
156156
//// blah,
157-
////{| "indent": 0 |}
157+
//// {| "indent": 13 |}
158158
////);
159159
////
160160
////
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
/// <reference path='fourslash.ts'/>
22

33
////function foo(bar,
4-
//// blah,
4+
//// blah, baz,
55
//// /**/
66
////) { };
77

88
goTo.marker();
9-
verify.indentationIs(0);
9+
// keep indentation of 'blah'
10+
verify.indentationIs(13);
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/// <reference path='fourslash.ts'/>
2+
3+
////class A {
4+
//// {| "indentation": 0|} }
5+
////class B {
6+
//// var x = 1;
7+
//// {| "indentation": 0|} }
8+
9+
test.markers().forEach((marker) => {
10+
verify.indentationAtPositionIs(marker.fileName, marker.position, marker.data.indentation);
11+
});
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/// <reference path='fourslash.ts'/>
2+
//// do /*1*/ {
3+
//// } while (true)
4+
////
5+
//// do { /*2*/
6+
//// } /*3*/while (true)/*4*/
7+
8+
function verifyIndentationAfterNewLine(marker: string, indentation: number): void {
9+
goTo.marker(marker);
10+
edit.insert("\r\n");
11+
verify.indentationIs(indentation);
12+
}
13+
14+
verifyIndentationAfterNewLine("1", 0);
15+
verifyIndentationAfterNewLine("2", 4);
16+
verifyIndentationAfterNewLine("3", 0);
17+
verifyIndentationAfterNewLine("4", 0);
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/// <reference path='fourslash.ts'/>
2+
3+
//// if /*1*/(true) { }
4+
////
5+
//// if (true) /*2*/ { /*3*/
6+
//// } /*4*/
7+
////
8+
//// if (1 === /*5*/ 2) { }
9+
10+
function verifyIndentationAfterNewLine(marker: string, indentation: number): void {
11+
goTo.marker(marker);
12+
edit.insert("\r\n");
13+
verify.indentationIs(indentation);
14+
}
15+
16+
verifyIndentationAfterNewLine("1", 4);
17+
verifyIndentationAfterNewLine("2", 0);
18+
verifyIndentationAfterNewLine("3", 4);
19+
verifyIndentationAfterNewLine("4", 0);
20+
verifyIndentationAfterNewLine("5", 4);

tests/cases/fourslash/smartIndentOnFunctionParameters.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ goTo.marker("4");
2222
verify.currentLineContentIs(" c");
2323
goTo.marker("1");
2424
edit.insert("\r\n");
25-
verify.indentationIs(0);
25+
verify.indentationIs(4);
2626
goTo.marker("5");
2727
verify.currentLineContentIs(" //comment");
2828
goTo.marker("6");

0 commit comments

Comments
 (0)