diff --git a/src/dfmt/formatter.d b/src/dfmt/formatter.d index 159060c..7219123 100644 --- a/src/dfmt/formatter.d +++ b/src/dfmt/formatter.d @@ -730,6 +730,7 @@ private: else { writeToken(); + indents.popWrapIndents(); linebreakHints = []; while (indents.topIs(tok!"enum")) indents.pop(); @@ -1313,7 +1314,8 @@ private: { if (isWrapToken) { - pushWrapIndent(); + if (!indents.topIs(tok!"enum")) + pushWrapIndent(); write(" "); writeToken(); newline(); @@ -1330,7 +1332,8 @@ private: { if (isWrapToken) { - pushWrapIndent(); + if (!indents.topIs(tok!"enum")) + pushWrapIndent(); newline(); writeToken(); } diff --git a/tests/allman/issue0286.d.ref b/tests/allman/issue0286.d.ref new file mode 100644 index 0000000..1ee7afb --- /dev/null +++ b/tests/allman/issue0286.d.ref @@ -0,0 +1,16 @@ +void foo() +{ + if (true) + enum vectorizeable = aLongExpressionThatCausesWrapping() + && aLongExpressionThatCausesWrapping(); + else + enum vectorizeable = false; + + if (true) + { + enum vectorizeable = aLongExpressionThatCausesWrapping() + && aLongExpressionThatCausesWrapping(); + } + else + enum vectorizeable = false; +} diff --git a/tests/issue0286.d b/tests/issue0286.d new file mode 100644 index 0000000..e19e2e0 --- /dev/null +++ b/tests/issue0286.d @@ -0,0 +1,14 @@ +void foo() +{ + if (true) + enum vectorizeable = aLongExpressionThatCausesWrapping() + && aLongExpressionThatCausesWrapping(); + else + enum vectorizeable = false; + + if (true){ + enum vectorizeable = aLongExpressionThatCausesWrapping() + && aLongExpressionThatCausesWrapping();} + else + enum vectorizeable = false; +} diff --git a/tests/otbs/issue0286.d.ref b/tests/otbs/issue0286.d.ref new file mode 100644 index 0000000..a56988e --- /dev/null +++ b/tests/otbs/issue0286.d.ref @@ -0,0 +1,13 @@ +void foo() { + if (true) + enum vectorizeable = aLongExpressionThatCausesWrapping() + && aLongExpressionThatCausesWrapping(); + else + enum vectorizeable = false; + + if (true) { + enum vectorizeable = aLongExpressionThatCausesWrapping() + && aLongExpressionThatCausesWrapping(); + } else + enum vectorizeable = false; +}