fix(typescript): break on multiple interface extends, fixes #2043 (#2085)

master
Lucas Azzola 2017-06-11 00:46:59 +10:00 committed by Christopher Chedeau
parent f7819d5695
commit 1e08f03554
3 changed files with 82 additions and 1 deletions

View File

@ -826,7 +826,18 @@ function genericPrintNoParens(path, options, print, args) {
);
if (n.heritage.length) {
parts.push("extends ", join(", ", path.map(print, "heritage")), " ");
parts.push(
group(
indent(
concat([
softline,
"extends ",
indent(join(concat([",", line]), path.map(print, "heritage"))),
" "
])
)
)
);
}
parts.push(path.call(print, "body"));

View File

@ -22,6 +22,57 @@ interface ScreenObject {
`;
exports[`long-extends.ts 1`] = `
export interface I extends A, B, C {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName extends ALongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName extends ALongAndBoringInterfaceName, AnotherLongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName extends AVeryLongAndBoringInterfaceName, AnotherVeryLongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName extends A_AVeryLongAndBoringInterfaceName, B_AVeryLongAndBoringInterfaceName, C_AVeryLongAndBoringInterfaceName {
c: string;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export interface I extends A, B, C {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName
extends ALongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName
extends ALongAndBoringInterfaceName,
AnotherLongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName
extends AVeryLongAndBoringInterfaceName,
AnotherVeryLongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName
extends A_AVeryLongAndBoringInterfaceName,
B_AVeryLongAndBoringInterfaceName,
C_AVeryLongAndBoringInterfaceName {
c: string;
}
`;
exports[`separator.ts 1`] = `
declare module 'selenium-webdriver' {
export const until: {

View File

@ -0,0 +1,19 @@
export interface I extends A, B, C {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName extends ALongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName extends ALongAndBoringInterfaceName, AnotherLongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName extends AVeryLongAndBoringInterfaceName, AnotherVeryLongAndBoringInterfaceName {
c: string;
}
export interface ThirdVeryLongAndBoringInterfaceName extends A_AVeryLongAndBoringInterfaceName, B_AVeryLongAndBoringInterfaceName, C_AVeryLongAndBoringInterfaceName {
c: string;
}