diff --git a/src/dfmt/formatter.d b/src/dfmt/formatter.d index 05b5ae4..57aae77 100644 --- a/src/dfmt/formatter.d +++ b/src/dfmt/formatter.d @@ -431,11 +431,10 @@ private: parenDepth--; if (parenDepth == 0) indents.popWrapIndents(); - if (parenDepth == 0 && (peekIs(tok!"in") || peekIs(tok!"out") || peekIs(tok!"body"))) + if (parenDepth == 0 && (currentIs(tok!"out") || currentIs(tok!"body"))) { - writeToken(); // ) + writeToken(); newline(); - writeToken(); // in/out/body } else if (peekIsLiteralOrIdent() || peekIsBasicType()) { @@ -443,7 +442,7 @@ private: if (spaceAfterParens || parenDepth > 0) write(" "); } - else if ((peekIsKeyword() || peekIs(tok!"@")) && spaceAfterParens) + else if ((peekIsKeyword() || peekIs(tok!"@")) && spaceAfterParens && !peekIs(tok!"in")) { writeToken(); write(" "); @@ -791,7 +790,13 @@ private: write(" "); writeToken(); if (!isContract) - write(" "); + { + if (config.dfmt_brace_style == BraceStyle.allman) + newline(); + else + write(" "); + } + break; case tok!"is": if (!peekBackIsOneOf(false, tok!"!", tok!"(", tok!",", tok!"}", tok!"=", diff --git a/tests/allman/issue0189.d.ref b/tests/allman/issue0189.d.ref new file mode 100644 index 0000000..dfe72b5 --- /dev/null +++ b/tests/allman/issue0189.d.ref @@ -0,0 +1,21 @@ +unittest +{ + Test("Something") in + { + abcde_abcde_abcde(); + abcde_abcde_abcde(); + abcde_abcde_abcde(); + abcde_abcde_abcde(); + abcde_abcde_abcde(); + abcde_abcde_abcde(); + }; +} + +void aFunction(ParamType param) +in +{ + assert(stuff); +} +body +{ +} diff --git a/tests/issue0189.d b/tests/issue0189.d new file mode 100644 index 0000000..ae5f9c8 --- /dev/null +++ b/tests/issue0189.d @@ -0,0 +1,11 @@ +unittest +{ + Test("Something") in { abcde_abcde_abcde(); abcde_abcde_abcde();abcde_abcde_abcde();abcde_abcde_abcde();abcde_abcde_abcde();abcde_abcde_abcde();}; +} + +void aFunction(ParamType param) +in +{ +assert (stuff); +} +body{} diff --git a/tests/otbs/issue0189.d.ref b/tests/otbs/issue0189.d.ref new file mode 100644 index 0000000..ff680f2 --- /dev/null +++ b/tests/otbs/issue0189.d.ref @@ -0,0 +1,17 @@ +unittest { + Test("Something") in { + abcde_abcde_abcde(); + abcde_abcde_abcde(); + abcde_abcde_abcde(); + abcde_abcde_abcde(); + abcde_abcde_abcde(); + abcde_abcde_abcde(); + }; +} + +void aFunction(ParamType param) +in { + assert(stuff); +} +body { +}