From 3e583d72b21ca708a42a5c080c648e211dcaad91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Dessoude?= Date: Mon, 14 Oct 2019 16:29:50 +0200 Subject: [PATCH] better display of localVariableDeclarationStatement modifiers --- .../src/printers/blocks-and-statements.js | 20 ++++++++---- .../test/unit-test/variables/_input.java | 21 ++++++++++++ .../test/unit-test/variables/_output.java | 32 +++++++++++++++++++ 3 files changed, 66 insertions(+), 7 deletions(-) diff --git a/packages/prettier-plugin-java/src/printers/blocks-and-statements.js b/packages/prettier-plugin-java/src/printers/blocks-and-statements.js index 39175fae0..5480c526f 100644 --- a/packages/prettier-plugin-java/src/printers/blocks-and-statements.js +++ b/packages/prettier-plugin-java/src/printers/blocks-and-statements.js @@ -18,7 +18,8 @@ const { rejectSeparators, putIntoBraces, putIntoCurlyBraces, - isStatementEmptyStatement + isStatementEmptyStatement, + sortModifiers } = require("./printer-utils"); class BlocksAndStatementPrettierVisitor { @@ -54,15 +55,20 @@ class BlocksAndStatementPrettierVisitor { } localVariableDeclaration(ctx) { - const variableModifiers = this.mapVisit(ctx.variableModifier); + const modifiers = sortModifiers(ctx.variableModifier); + const firstAnnotations = this.mapVisit(modifiers[0]); + const finalModifiers = this.mapVisit(modifiers[1]); + const localVariableType = this.visit(ctx.localVariableType); const variableDeclaratorList = this.visit(ctx.variableDeclaratorList); - return group( - rejectAndJoin(line, [ - rejectAndJoin(" ", variableModifiers), - rejectAndJoin(" ", [localVariableType, variableDeclaratorList]) + return rejectAndJoin(hardline, [ + rejectAndJoin(hardline, firstAnnotations), + rejectAndJoin(" ", [ + rejectAndJoin(" ", finalModifiers), + localVariableType, + variableDeclaratorList ]) - ); + ]); } localVariableType(ctx) { diff --git a/packages/prettier-plugin-java/test/unit-test/variables/_input.java b/packages/prettier-plugin-java/test/unit-test/variables/_input.java index 0eeb0bbf6..d6297e174 100644 --- a/packages/prettier-plugin-java/test/unit-test/variables/_input.java +++ b/packages/prettier-plugin-java/test/unit-test/variables/_input.java @@ -52,4 +52,25 @@ public void multipleVariableDeclaration() { Map map = new HashMap<>(); } + public boolean localVariableDeclarationWhichBreak() { + @Nullable final BackupStatus lastStatus = BackupStatus.fromDbValue(backupRepository.getLastStatus()); + + final BackupStatus lastStatus = BackupStatus.fromDbValue(backupRepository.getLastStatus()); + + @Nullable + BackupStatus lastStatus = BackupStatus.fromDbValue(backupRepository.getLastStatus()); + + BackupStatus lastStatus = BackupStatus.fromDbValue(backupRepository.getLastStatus()); + } + + public boolean localVariableDeclarationWhichDoNotBreak() { + @Nullable final BackupStatus lastStatus = value; + + final BackupStatus lastStatus = value; + + @Nullable BackupStatus lastStatus = value; + + BackupStatus lastStatus = value; + } + } diff --git a/packages/prettier-plugin-java/test/unit-test/variables/_output.java b/packages/prettier-plugin-java/test/unit-test/variables/_output.java index 5788eea77..bf29079ee 100644 --- a/packages/prettier-plugin-java/test/unit-test/variables/_output.java +++ b/packages/prettier-plugin-java/test/unit-test/variables/_output.java @@ -65,4 +65,36 @@ public void multipleVariableDeclaration() { String str = new String(); Map map = new HashMap<>(); } + + public boolean localVariableDeclarationWhichBreak() { + @Nullable + final BackupStatus lastStatus = BackupStatus.fromDbValue( + backupRepository.getLastStatus() + ); + + final BackupStatus lastStatus = BackupStatus.fromDbValue( + backupRepository.getLastStatus() + ); + + @Nullable + BackupStatus lastStatus = BackupStatus.fromDbValue( + backupRepository.getLastStatus() + ); + + BackupStatus lastStatus = BackupStatus.fromDbValue( + backupRepository.getLastStatus() + ); + } + + public boolean localVariableDeclarationWhichDoNotBreak() { + @Nullable + final BackupStatus lastStatus = value; + + final BackupStatus lastStatus = value; + + @Nullable + BackupStatus lastStatus = value; + + BackupStatus lastStatus = value; + } }