import com.intellij.openapi.project.DumbService;
import com.intellij.openapi.project.Project;
+import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
myDumbService = DumbService.getInstance(project);
}
+ @Nullable
public Result applyFilter(final String line, final int entireLength) {
final boolean dumb = myDumbService.isDumb();
List<Filter> filters = myFilters;
return null;
}
+ public boolean isEmpty() {
+ return myFilters.isEmpty();
+ }
+
public void addFilter(final Filter filter) {
myFilters.add(filter);
}
private final CopyOnWriteArraySet<ChangeListener> myListeners = new CopyOnWriteArraySet<ChangeListener>();
private final ArrayList<AnAction> customActions = new ArrayList<AnAction>();
private final ConsoleBuffer myBuffer = new ConsoleBuffer();
+ private boolean myUpdateFoldingsEnabled = true;
@TestOnly
public Editor getEditor() {
myHelpId = helpId;
}
+ public void setUpdateFoldingsEnabled(boolean updateFoldingsEnabled) {
+ myUpdateFoldingsEnabled = updateFoldingsEnabled;
+ }
+
public void addMessageFilter(final Filter filter) {
myCustomFilter.addFilter(filter);
}
}
private void highlightHyperlinksAndFoldings(final int line1, final int endLine) {
+ boolean canHighlightHyperlinks = !myCustomFilter.isEmpty() || !myPredefinedMessageFilter.isEmpty();
+
+ if (!canHighlightHyperlinks && myUpdateFoldingsEnabled) {
+ return;
+ }
ApplicationManager.getApplication().assertIsDispatchThread();
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
- highlightHyperlinks(myEditor, myHyperlinks, myCustomFilter, myPredefinedMessageFilter, line1, endLine);
- updateFoldings(line1, endLine, true);
+ if (canHighlightHyperlinks) {
+ highlightHyperlinks(myEditor, myHyperlinks, myCustomFilter, myPredefinedMessageFilter, line1, endLine);
+ }
+ if (myUpdateFoldingsEnabled) {
+ updateFoldings(line1, endLine, true);
+ }
}
private void updateFoldings(final int line1, final int endLine, boolean immediately) {