diff options
Diffstat (limited to 'platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/PassExecutorService.java')
-rw-r--r-- | platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/PassExecutorService.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/PassExecutorService.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/PassExecutorService.java index 44df90322011..24c3d8b4a6fb 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/PassExecutorService.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/PassExecutorService.java @@ -34,6 +34,7 @@ import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.fileEditor.FileEditor; import com.intellij.openapi.fileEditor.FileEditorManager; import com.intellij.openapi.fileEditor.TextEditor; +import com.intellij.openapi.fileEditor.ex.FileEditorManagerEx; import com.intellij.openapi.progress.ProcessCanceledException; import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.progress.ProgressManager; @@ -95,6 +96,12 @@ public class PassExecutorService implements Disposable { catch (ProcessCanceledException ignored) { } + catch (Error e) { + throw e; + } + catch (RuntimeException e) { + throw e; + } catch (Throwable throwable) { LOG.error(throwable); } @@ -118,6 +125,10 @@ public class PassExecutorService implements Disposable { LOG.assertTrue(!(editor instanceof EditorWindow)); document = editor.getDocument(); } + else { + VirtualFile virtualFile = ((FileEditorManagerEx)FileEditorManager.getInstance(myProject)).getFile(fileEditor); + document = virtualFile == null ? null : FileDocumentManager.getInstance().getDocument(virtualFile); + } int prevId = 0; for (final HighlightingPass pass : passes) { @@ -534,7 +545,7 @@ public class PassExecutorService implements Disposable { return result; } - private void sortById(@NotNull List<TextEditorHighlightingPass> result) { + private static void sortById(@NotNull List<TextEditorHighlightingPass> result) { ContainerUtil.quickSort(result, new Comparator<TextEditorHighlightingPass>() { @Override public int compare(TextEditorHighlightingPass o1, TextEditorHighlightingPass o2) { @@ -548,7 +559,7 @@ public class PassExecutorService implements Disposable { return ConcurrencyUtil.cacheOrGet(threads, Thread.currentThread(), threads.size()); } - public static void log(ProgressIndicator progressIndicator, TextEditorHighlightingPass pass, @NonNls Object... info) { + public static void log(ProgressIndicator progressIndicator, TextEditorHighlightingPass pass, @NonNls @NotNull Object... info) { if (LOG.isDebugEnabled()) { CharSequence docText = pass == null ? "" : StringUtil.first(pass.getDocument().getCharsSequence(), 10, true); synchronized (PassExecutorService.class) { |