mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
notify wolf when there are javac errors from ant run; do not ignore files excluded from compilation (IDEA-127317)
This commit is contained in:
@@ -40,6 +40,7 @@ public abstract class WolfTheProblemSolver {
|
||||
public abstract boolean isProblemFile(VirtualFile virtualFile);
|
||||
|
||||
public abstract void weHaveGotProblems(@NotNull VirtualFile virtualFile, @NotNull List<Problem> problems);
|
||||
public abstract void weHaveGotNonIgnorableProblems(@NotNull VirtualFile virtualFile, @NotNull List<Problem> problems);
|
||||
public abstract void clearProblems(@NotNull VirtualFile virtualFile);
|
||||
|
||||
public abstract boolean hasProblemFilesBeneath(@NotNull Condition<VirtualFile> condition);
|
||||
|
||||
@@ -43,6 +43,11 @@ public class MockWolfTheProblemSolver extends WolfTheProblemSolver {
|
||||
if (myDelegate != null) myDelegate.weHaveGotProblems(virtualFile, problems);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void weHaveGotNonIgnorableProblems(@NotNull VirtualFile virtualFile, @NotNull List<Problem> problems) {
|
||||
if (myDelegate != null) myDelegate.weHaveGotNonIgnorableProblems(virtualFile, problems);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasProblemFilesBeneath(@NotNull final Condition<VirtualFile> condition) {
|
||||
return false;
|
||||
|
||||
@@ -413,6 +413,12 @@ public class WolfTheProblemSolverImpl extends WolfTheProblemSolver {
|
||||
public void weHaveGotProblems(@NotNull final VirtualFile virtualFile, @NotNull List<Problem> problems) {
|
||||
if (problems.isEmpty()) return;
|
||||
if (!isToBeHighlighted(virtualFile)) return;
|
||||
weHaveGotNonIgnorableProblems(virtualFile, problems);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void weHaveGotNonIgnorableProblems(@NotNull VirtualFile virtualFile, @NotNull List<Problem> problems) {
|
||||
if (problems.isEmpty()) return;
|
||||
boolean fireListener = false;
|
||||
synchronized (myProblems) {
|
||||
ProblemFileInfo storedProblems = myProblems.get(virtualFile);
|
||||
|
||||
@@ -25,6 +25,8 @@ import com.intellij.openapi.progress.ProgressIndicator;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.VirtualFileManager;
|
||||
import com.intellij.problems.Problem;
|
||||
import com.intellij.problems.WolfTheProblemSolver;
|
||||
import com.intellij.rt.ant.execution.IdeaAntLogger2;
|
||||
import com.intellij.util.text.StringTokenizer;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -32,6 +34,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class OutputParser{
|
||||
@@ -193,7 +196,7 @@ public class OutputParser{
|
||||
return -1;
|
||||
}
|
||||
|
||||
private static void processJavacMessages(final List<String> javacMessages, final AntBuildMessageView messageView, Project project) {
|
||||
private static void processJavacMessages(final List<String> javacMessages, final AntBuildMessageView messageView, final Project project) {
|
||||
if (javacMessages == null) {
|
||||
return;
|
||||
}
|
||||
@@ -241,6 +244,12 @@ public class OutputParser{
|
||||
public void run() {
|
||||
VirtualFile file = url == null ? null : VirtualFileManager.getInstance().findFileByUrl(url);
|
||||
messageView.outputJavacMessage(convertCategory(category), strings, file, url, lineNum, columnNum);
|
||||
|
||||
if (file != null && category == CompilerMessageCategory.ERROR) {
|
||||
final WolfTheProblemSolver wolf = WolfTheProblemSolver.getInstance(project);
|
||||
final Problem problem = wolf.convertToProblem(file, lineNum, columnNum, strings);
|
||||
wolf.weHaveGotNonIgnorableProblems(file, Collections.singletonList(problem));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user