~~ lineWidth: 65 ~~ == should print with no members == const t = class Test { // test }; [expect] const t = class Test { // test }; == should print with no name == const t = class {}; [expect] const t = class {}; == should print an extends clause == const t = class Test extends Other {}; [expect] const t = class Test extends Other {}; == should print a verly long extends clause so that it goes to the next line == const t = class Test extends OtherOtherOtherOtherOtherOtherOtherOther { }; [expect] const t = class Test extends OtherOtherOtherOtherOtherOtherOtherOther { }; == should print an implements clause == const t = class Test implements Other { }; [expect] const t = class Test implements Other { }; == should print multiple implements == const t = class Test implements Other, Other2 { }; [expect] const t = class Test implements Other, Other2 { }; == should print multiple implements that go over the line width == const t = class Test implements Other, Other2, Other3, Other4, Other5 { }; [expect] const t = class Test implements Other, Other2, Other3, Other4, Other5 { }; == should print multiple implements that go over the line width twice == const t = class Test implements Other, Other2, Other3, Other4, Other5, Other6, Other7 { } [expect] const t = class Test implements Other, Other2, Other3, Other4, Other5, Other6, Other7 { }; == should print long extends and then put implements on separate line == const t = class Test extends OtherOtherOtherOtherOtherOtherOtherOther implements Other { }; [expect] const t = class Test extends OtherOtherOtherOtherOtherOtherOtherOther implements Other { }; == should print with type parameters == const t = class Test< T > { }; [expect] const t = class Test { }; == should print with type parameters on new lines when they go over the limit == const t = class Test { }; [expect] const t = class Test< TestingThisOut, WithVeryLong, TypeParameterList, > { }; == should print with type parameters on new lines and extends when they go over the limit == const t = class Test extends Test { }; [expect] const t = class Test< TestingThisOut, WithVeryLong, TypeParameterList, > extends Test { }; == should print with type parameters on multiple lines == const t = class Test< TestingThisOut, WithVeryLong, TypeParameterList> { }; [expect] const t = class Test< TestingThisOut, WithVeryLong, TypeParameterList, > { }; == should print with type parameters on multiple lines and extends == const t = class Test< TestingThisOut, WithVeryLong, TypeParameterList> extends Test { }; [expect] const t = class Test< TestingThisOut, WithVeryLong, TypeParameterList, > extends Test { }; == should print a super's type argument == const t = class Test extends Other { }; [expect] const t = class Test extends Other { }; == should print mixins == const t = class Test extends MyMixin(OtherMixin()) { }; [expect] const t = class Test extends MyMixin(OtherMixin()) { }; == should handle comments before expression == const t = /* test */ // testing class Test extends MyMixin(OtherMixin()) { }; [expect] const t = /* test */ // testing class Test extends MyMixin(OtherMixin()) { }; == should handle comment that starts on assignment and ends on same line before expression on different line == const t = /* starting here and ending here */ class Test { }; [expect] const t = /* starting here and ending here */ class Test { }; == should handle comments before with comment block on same line as expr == const t = // test /* test */ class Test { }; [expect] const t = // test /* test */ class Test { };