Introduce CompilerMessageSeverity.STRONG_WARNING
This is a severity for mandatory warnings, i.e. those which should be reported in any case, even if there are compilation errors
This commit is contained in:
+27
-3
@@ -16,13 +16,16 @@
|
||||
|
||||
package org.jetbrains.kotlin.cli.common.messages;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.EnumSet;
|
||||
|
||||
public enum CompilerMessageSeverity {
|
||||
INFO,
|
||||
ERROR,
|
||||
WARNING,
|
||||
EXCEPTION,
|
||||
ERROR,
|
||||
STRONG_WARNING,
|
||||
WARNING,
|
||||
INFO,
|
||||
LOGGING,
|
||||
OUTPUT;
|
||||
|
||||
@@ -32,4 +35,25 @@ public enum CompilerMessageSeverity {
|
||||
public boolean isError() {
|
||||
return ERRORS.contains(this);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getPresentableName() {
|
||||
switch (this) {
|
||||
case EXCEPTION:
|
||||
return "exception";
|
||||
case ERROR:
|
||||
return "error";
|
||||
case STRONG_WARNING:
|
||||
case WARNING:
|
||||
return "warning";
|
||||
case INFO:
|
||||
return "info";
|
||||
case LOGGING:
|
||||
return "logging";
|
||||
case OUTPUT:
|
||||
return "output";
|
||||
default:
|
||||
throw new UnsupportedOperationException("Unknown severity: " + this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -68,7 +68,7 @@ public class GroupingMessageCollector implements MessageCollector {
|
||||
|
||||
for (String path : sortedKeys()) {
|
||||
for (Message message : groupedMessages.get(path)) {
|
||||
if (!hasErrors || message.severity.isError()) {
|
||||
if (!hasErrors || message.severity.isError() || message.severity == CompilerMessageSeverity.STRONG_WARNING) {
|
||||
delegate.report(message.severity, message.message, message.location);
|
||||
}
|
||||
}
|
||||
|
||||
+5
-3
@@ -49,7 +49,7 @@ public abstract class PlainTextMessageRenderer implements MessageRenderer {
|
||||
|
||||
private static final String LINE_SEPARATOR = LineSeparator.getSystemLineSeparator().getSeparatorString();
|
||||
|
||||
private static final Set<CompilerMessageSeverity> IMPORTANT_MESSAGE_SEVERITIES = EnumSet.of(EXCEPTION, ERROR, WARNING);
|
||||
private static final Set<CompilerMessageSeverity> IMPORTANT_MESSAGE_SEVERITIES = EnumSet.of(EXCEPTION, ERROR, STRONG_WARNING, WARNING);
|
||||
|
||||
@Override
|
||||
public String renderPreamble() {
|
||||
@@ -83,7 +83,7 @@ public abstract class PlainTextMessageRenderer implements MessageRenderer {
|
||||
Ansi ansi = Ansi.ansi()
|
||||
.bold()
|
||||
.fg(severityColor(severity))
|
||||
.a(severity.name().toLowerCase())
|
||||
.a(severity.getPresentableName())
|
||||
.a(": ")
|
||||
.reset();
|
||||
|
||||
@@ -102,7 +102,7 @@ public abstract class PlainTextMessageRenderer implements MessageRenderer {
|
||||
}
|
||||
}
|
||||
else {
|
||||
result.append(severity.name().toLowerCase());
|
||||
result.append(severity.getPresentableName());
|
||||
result.append(": ");
|
||||
result.append(decapitalizeIfNeeded(message));
|
||||
}
|
||||
@@ -141,6 +141,8 @@ public abstract class PlainTextMessageRenderer implements MessageRenderer {
|
||||
return Ansi.Color.RED;
|
||||
case ERROR:
|
||||
return Ansi.Color.RED;
|
||||
case STRONG_WARNING:
|
||||
return Ansi.Color.YELLOW;
|
||||
case WARNING:
|
||||
return Ansi.Color.YELLOW;
|
||||
case INFO:
|
||||
|
||||
@@ -28,7 +28,8 @@ public class XmlMessageRenderer implements MessageRenderer {
|
||||
@Override
|
||||
public String render(@NotNull CompilerMessageSeverity severity, @NotNull String message, @NotNull CompilerMessageLocation location) {
|
||||
StringBuilder out = new StringBuilder();
|
||||
out.append("<").append(severity.toString());
|
||||
String tagName = severity.getPresentableName();
|
||||
out.append("<").append(tagName);
|
||||
if (location.getPath() != null) {
|
||||
out.append(" path=\"").append(e(location.getPath())).append("\"");
|
||||
out.append(" line=\"").append(location.getLine()).append("\"");
|
||||
@@ -38,11 +39,11 @@ public class XmlMessageRenderer implements MessageRenderer {
|
||||
|
||||
out.append(e(message));
|
||||
|
||||
out.append("</").append(severity.toString()).append(">\n");
|
||||
out.append("</").append(tagName).append(">\n");
|
||||
return out.toString();
|
||||
}
|
||||
|
||||
private String e(String str) {
|
||||
private static String e(String str) {
|
||||
return StringUtil.escapeXml(str);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user