From a802366929c09ecd4af8309a2ed0376cfb7ef77e Mon Sep 17 00:00:00 2001 From: Vyacheslav Rusakov Date: Fri, 30 Apr 2021 03:30:11 +0700 Subject: [PATCH] fix console output on windows (remove special unicode separator characters, appearing incorrectly) --- CHANGELOG.md | 1 + .../plugin/quality/report/CheckstyleReporter.groovy | 4 ++-- .../gradle/plugin/quality/report/CodeNarcReporter.groovy | 6 +++--- .../gradle/plugin/quality/report/CpdReporter.groovy | 4 ++-- .../gradle/plugin/quality/report/PmdReporter.groovy | 4 ++-- .../vyarus/gradle/plugin/quality/report/Reporter.groovy | 6 ------ .../gradle/plugin/quality/report/SpotbugsReporter.groovy | 8 ++++---- .../vyarus/gradle/plugin/quality/AbstractKitTest.groovy | 2 -- 8 files changed, 14 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 041ff8c..6433d16 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ * Fix gradle 7 compatibility (for checkstyle plugin) +* Fix console output on windows (remove special unicode separator characters, appearing incorrectly) * Update checkstyle 8.39 -> 8.42 * Update checkstyle config: - Add [RecordComponentName](https://checkstyle.sourceforge.io/config_naming.html#RecordComponentName) diff --git a/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/CheckstyleReporter.groovy b/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/CheckstyleReporter.groovy index b15e78f..26fec9e 100644 --- a/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/CheckstyleReporter.groovy +++ b/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/CheckstyleReporter.groovy @@ -33,7 +33,7 @@ class CheckstyleReporter implements Reporter { int cnt = result.file.error.size() if (cnt > 0) { int filesCnt = result.file.findAll { it.error.size() > 0 }.size() - task.logger.error "$NO_TRIM$NL$cnt Checkstyle rule violations were found in $filesCnt files$NL$NO_TRIM" + task.logger.error "$NL$cnt Checkstyle rule violations were found in $filesCnt files$NL" result.file.each { file -> String filePath = file.@name @@ -47,7 +47,7 @@ class CheckstyleReporter implements Reporter { // part in braces recognized by intellij IDEA and shown as link task.logger.error "[${group.capitalize()} | $check] $name.($sourceFile:$srcPointer)" + "$NL ${it.@message}" + - "$NL http://checkstyle.sourceforge.io/config_${group}.html#$check$NL$NO_TRIM" + "$NL http://checkstyle.sourceforge.io/config_${group}.html#$check$NL" } } } diff --git a/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/CodeNarcReporter.groovy b/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/CodeNarcReporter.groovy index db0297c..9fd5c65 100644 --- a/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/CodeNarcReporter.groovy +++ b/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/CodeNarcReporter.groovy @@ -31,8 +31,8 @@ class CodeNarcReporter implements Reporter { Integer p2 = summary.@priority2 as Integer Integer p3 = summary.@priority3 as Integer Integer count = p1 + p2 + p3 - task.logger.error "$NO_TRIM$NL$count ($p1 / $p2 / $p3) CodeNarc violations were found in ${fileCnt} " + - "files$NL$NO_TRIM" + task.logger.error "$NL$count ($p1 / $p2 / $p3) CodeNarc violations were found in ${fileCnt} " + + "files$NL" Map desc = [:] result.Rules.Rule.each { @@ -59,7 +59,7 @@ class CodeNarcReporter implements Reporter { "$NL ${message}" + "$NL ${desc[rule]}" + "$NL https://codenarc.github.io/CodeNarc/codenarc-rules-" + - "${group.toLowerCase()}.html#${rule.toLowerCase()}-rule$NL$NO_TRIM" + "${group.toLowerCase()}.html#${rule.toLowerCase()}-rule$NL" } } } diff --git a/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/CpdReporter.groovy b/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/CpdReporter.groovy index f3b99ef..2a79219 100644 --- a/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/CpdReporter.groovy +++ b/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/CpdReporter.groovy @@ -34,7 +34,7 @@ class CpdReporter implements Reporter, HtmlReportGenerator 0) { - task.logger.error "$NO_TRIM$NL$cnt ${task.language} duplicates were found by CPD$NL$NO_TRIM" + task.logger.error "$NL$cnt ${task.language} duplicates were found by CPD$NL" result.duplication.each { dupl -> int lines = dupl.@lines as Integer int start = 0 @@ -63,7 +63,7 @@ class CpdReporter implements Reporter, HtmlReportGenerator { Node result = new XmlParser().parse(reportFile) int cnt = result.file.violation.size() if (cnt > 0) { - task.logger.error "$NO_TRIM$NL$cnt PMD rule violations were found in ${result.file.size()} files$NL$NO_TRIM" + task.logger.error "$NL$cnt PMD rule violations were found in ${result.file.size()} files$NL" result.file.each { file -> String filePath = file.@name @@ -34,7 +34,7 @@ class PmdReporter implements Reporter { // part in braces recognized by intellij IDEA and shown as link task.logger.error "[${violation.@ruleset} | ${violation.@rule}] $name.($sourceFile:${srcPos})" + "$NL ${violation.text().trim()}" + - "$NL ${violation.@externalInfoUrl}$NL$NO_TRIM" + "$NL ${violation.@externalInfoUrl}$NL" } } } diff --git a/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/Reporter.groovy b/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/Reporter.groovy index 91fb947..5968e75 100644 --- a/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/Reporter.groovy +++ b/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/Reporter.groovy @@ -18,12 +18,6 @@ interface Reporter { */ String NL = String.format('%n') - /** - * Special invisible symbol (ZERO WIDTH SPACE) to prevent removing of empty separator lines in IDEA output. - * Should be used before NL at the beginning and after last NL. - */ - String NO_TRIM = '\u200B' - /** * Called after quality tool task to report violations. * diff --git a/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/SpotbugsReporter.groovy b/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/SpotbugsReporter.groovy index 73cbe8f..1abf6fa 100644 --- a/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/SpotbugsReporter.groovy +++ b/src/main/groovy/ru/vyarus/gradle/plugin/quality/report/SpotbugsReporter.groovy @@ -40,8 +40,8 @@ class SpotbugsReporter implements Reporter, HtmlReportGenerator desc = buildDescription(result) Map cat = buildCategories(result) @@ -60,7 +60,7 @@ class SpotbugsReporter implements Reporter, HtmlReportGenerator> ${msg.text()}" + - "$NL ${description}$NL$NO_TRIM" + "$NL ${description}$NL" } // html report will be generated before console reporting String htmlReportUrl = ReportUtils.toConsoleLink(task.project @@ -97,7 +97,7 @@ class SpotbugsReporter implements Reporter, HtmlReportGenerator', '') // remove empty lines after tags remove (only one separator line remain) - .replaceAll('([ \t]*\n){3,}', "$NL$NO_TRIM$NL") + .replaceAll('([ \t]*\n){3,}', "$NL$NL") // reduce left indents .replaceAll('\n\t+', "$NL ").replaceAll(' {2,}', ' ') // indent all not indented lines diff --git a/src/test/groovy/ru/vyarus/gradle/plugin/quality/AbstractKitTest.groovy b/src/test/groovy/ru/vyarus/gradle/plugin/quality/AbstractKitTest.groovy index c80e51e..1bf7ef6 100644 --- a/src/test/groovy/ru/vyarus/gradle/plugin/quality/AbstractKitTest.groovy +++ b/src/test/groovy/ru/vyarus/gradle/plugin/quality/AbstractKitTest.groovy @@ -84,7 +84,5 @@ abstract class AbstractKitTest extends Specification { return input // cleanup win line break for simpler comparisons .replaceAll("\r", '') - // remove invisible symbols to simplify comparison - .replaceAll(Reporter.NO_TRIM, '') } }