public List<HighlightInfo> runMainPasses( @NotNull PsiFile psiFile, @NotNull Document document, @NotNull final ProgressIndicator progress) { final List<HighlightInfo> result = new ArrayList<HighlightInfo>(); final VirtualFile virtualFile = psiFile.getVirtualFile(); if (virtualFile != null && !virtualFile.getFileType().isBinary()) { final List<TextEditorHighlightingPass> passes = TextEditorHighlightingPassRegistrarEx.getInstanceEx(myProject) .instantiateMainPasses(psiFile, document); Collections.sort( passes, new Comparator<TextEditorHighlightingPass>() { @Override public int compare(TextEditorHighlightingPass o1, TextEditorHighlightingPass o2) { if (o1 instanceof GeneralHighlightingPass) return -1; if (o2 instanceof GeneralHighlightingPass) return 1; return 0; } }); for (TextEditorHighlightingPass pass : passes) { pass.doCollectInformation(progress); result.addAll(pass.getInfos()); } } return result; }
public final void collectInformation(ProgressIndicator progress) { if (!isValid()) return; // Document has changed. myDumb = DumbService.getInstance(myProject).isDumb(); doCollectInformation(progress); }