~~ lineWidth: 60 ~~ == should print with no members == class Test {} [expect] class Test {} == should print with no name == export default class {} [expect] export default class {} == should not print on single line with member == class Test { prop; } [expect] class Test { prop; } == should print abstract == abstract class Test { } [expect] abstract class Test { } == should print declare == declare class Test { } [expect] declare class Test { } == should print declare and abstract == declare abstract class Test { } [expect] declare abstract class Test { } == should print an extends clause == export class Test extends Other { } [expect] export class Test extends Other { } == should print a verly long extends clause so that it goes to the next line == export class Test extends OtherOtherOtherOtherOtherOtherOtherOther { } [expect] export class Test extends OtherOtherOtherOtherOtherOtherOtherOther { } == should not split up within an extends == export class Test extends SomeClassWithAnotherClass { } [expect] export class Test extends SomeClassWithAnotherClass { } == should print an implements clause == export class Test implements Other { } [expect] export class Test implements Other { } == should print multiple implements == export class Test implements Other, Other2 { } [expect] export class Test implements Other, Other2 { } == should print multiple implements that go over the line width == export class Test implements Other, Other2, Other3, Other4, Other5 { } [expect] export class Test implements Other, Other2, Other3, Other4, Other5 { } == should not split up within an implements == export class Test implements Testing, ThisOutABitHere { } [expect] export class Test implements Testing, ThisOutABitHere { } == should print multiple implements that go over the line width twice == export class Test implements Other, Other2, Other3, Other4, Other5, Other6, Other7 { } [expect] export class Test implements Other, Other2, Other3, Other4, Other5, Other6, Other7 { } == should print long extends and then put implements on separate line == export class Test extends OtherOtherOtherOtherOtherOtherOtherOther implements Other { } [expect] export class Test extends OtherOtherOtherOtherOtherOtherOtherOther implements Other { } == should print with type parameters == export class Test< T > { } [expect] export class Test { } == should print type parameters when they go over the limit == export class Test { } [expect] export class Test< TestingThisOut, WithVeryLong, TypeParameterList, > { } == should print with type parameters and extends when they go over the limit == export class Test extends Test { } [expect] export class Test< TestingThisOut, WithVeryLong, TypeParameterList, > extends Test { } == should print with type parameters on multiple lines == export class Test< TestingThisOut, WithVeryLong, TypeParameterList> { } [expect] export class Test< TestingThisOut, WithVeryLong, TypeParameterList, > { } == should print with type parameters on multiple lines and extends == export class Test< TestingThisOut, WithVeryLong, TypeParameterList> extends Test { } [expect] export class Test< TestingThisOut, WithVeryLong, TypeParameterList, > extends Test { } == should print a super's type argument == export class Test extends Other { } [expect] export class Test extends Other { } == should print mixins == export class Test extends MyMixin(OtherMixin()) { } [expect] export class Test extends MyMixin(OtherMixin()) { } == header with comment after name and implements == export class Test // test implements Test1, Test2, Test3 { } [expect] export class Test // test implements Test1, Test2, Test3 { }