coverage: ability to avoid traversing library roots
authorSergey Simonchik <sergey.simonchik@jetbrains.com>
Fri, 26 Jun 2015 13:30:16 +0000 (16:30 +0300)
committerSergey Simonchik <sergey.simonchik@jetbrains.com>
Fri, 26 Jun 2015 13:30:16 +0000 (16:30 +0300)
plugins/coverage-common/src/com/intellij/coverage/SimpleCoverageAnnotator.java

index 82c4e717ba22bb9e73141c063356a77989d52558..d0cbba803fbf550596b7f212534ddc3dafb2dbb9 100644 (file)
@@ -181,6 +181,11 @@ public abstract class SimpleCoverageAnnotator extends BaseCoverageAnnotator {
       return null;
     }
 
+    if (!shouldCollectCoverageInsideLibraryDirs()) {
+      if (index.isInLibrarySource(dir) || index.isInLibraryClasses(dir)) {
+        return null;
+      }
+    }
     visitedDirs.add(dir);
 
     final boolean isInTestSrcContent = index.isInTestSourceContent(dir);
@@ -252,6 +257,11 @@ public abstract class SimpleCoverageAnnotator extends BaseCoverageAnnotator {
     return dirCoverageInfo;
   }
 
+  protected boolean shouldCollectCoverageInsideLibraryDirs() {
+    // By default returns "true" for backward compatibility
+    return true;
+  }
+
   public void annotate(@NotNull final VirtualFile contentRoot,
                        @NotNull final CoverageSuitesBundle suite,
                        final @NotNull CoverageDataManager dataManager, @NotNull final ProjectData data,