diff --git a/java-coverage-impl/pom.xml b/java-coverage-impl/pom.xml
index 2c4fb6cb81..de738a7f5b 100644
--- a/java-coverage-impl/pom.xml
+++ b/java-coverage-impl/pom.xml
@@ -16,53 +16,71 @@
- limitations under the License.
-->
- 4.0.0
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ 4.0.0
-
- consulo
- arch.ide-api-provided
- 3-SNAPSHOT
-
-
+
+ consulo
+ arch.ide-api-provided
+ 3-SNAPSHOT
+
+
-
-
- consulo
- https://maven.consulo.io/repository/snapshots/
-
- true
- interval:60
-
-
-
+
+
+ consulo
+ https://maven.consulo.io/repository/snapshots/
+
+ true
+ interval:60
+
+
+
- consulo.plugin
- consulo.java-java.coverage.impl
- 3-SNAPSHOT
- jar
+ consulo.plugin
+ consulo.java-java.coverage.impl
+ 3-SNAPSHOT
+ jar
-
-
- ${project.groupId}
- consulo.java-java.language.impl
- ${project.version}
-
-
- ${project.groupId}
- consulo.java-java.execution.impl
- ${project.version}
-
-
- ${project.groupId}
- consulo.java-java.coverage.rt
- ${project.version}
-
+
+
+
+ consulo.maven
+ maven-consulo-plugin
+ true
+
+
+ generate-sources
+
+ generate-localize
+
+
+
+
+
+
-
- org.jacoco
- org.jacoco.core
- 0.7.9
-
-
+
+
+ ${project.groupId}
+ consulo.java-java.language.impl
+ ${project.version}
+
+
+ ${project.groupId}
+ consulo.java-java.execution.impl
+ ${project.version}
+
+
+ ${project.groupId}
+ consulo.java-java.coverage.rt
+ ${project.version}
+
+
+
+ org.jacoco
+ org.jacoco.core
+ 0.7.9
+
+
\ No newline at end of file
diff --git a/java-coverage-impl/src/main/java/com/intellij/java/coverage/view/JavaCoverageViewExtension.java b/java-coverage-impl/src/main/java/com/intellij/java/coverage/view/JavaCoverageViewExtension.java
index 47da235527..6d611c2068 100644
--- a/java-coverage-impl/src/main/java/com/intellij/java/coverage/view/JavaCoverageViewExtension.java
+++ b/java-coverage-impl/src/main/java/com/intellij/java/coverage/view/JavaCoverageViewExtension.java
@@ -6,11 +6,11 @@
import com.intellij.java.language.psi.*;
import consulo.annotation.access.RequiredReadAction;
import consulo.application.Application;
-import consulo.application.util.function.Computable;
import consulo.execution.coverage.CoverageSuite;
import consulo.execution.coverage.CoverageSuitesBundle;
import consulo.execution.coverage.CoverageViewManager;
import consulo.execution.coverage.view.*;
+import consulo.java.coverage.localize.JavaCoverageLocalize;
import consulo.language.psi.*;
import consulo.language.psi.scope.GlobalSearchScope;
import consulo.language.psi.util.PsiTreeUtil;
@@ -24,296 +24,325 @@
import java.util.function.Supplier;
/**
- * User: anna
- * Date: 1/5/12
+ * @author anna
+ * @since 2012-01-05
*/
public class JavaCoverageViewExtension extends CoverageViewExtension {
- private final JavaCoverageAnnotator myAnnotator;
+ private final JavaCoverageAnnotator myAnnotator;
- public JavaCoverageViewExtension(
- JavaCoverageAnnotator annotator,
- Project project,
- CoverageSuitesBundle suitesBundle,
- CoverageViewManager.StateBean stateBean
- ) {
- super(project, suitesBundle, stateBean);
- myAnnotator = annotator;
- }
+ public JavaCoverageViewExtension(
+ JavaCoverageAnnotator annotator,
+ Project project,
+ CoverageSuitesBundle suitesBundle,
+ CoverageViewManager.StateBean stateBean
+ ) {
+ super(project, suitesBundle, stateBean);
+ myAnnotator = annotator;
+ }
- @Override
- public String getSummaryForNode(AbstractTreeNode node) {
- final String coverageInformationString = myAnnotator
- .getPackageCoverageInformationString((PsiJavaPackage) node.getValue(), null, getCoverageDataManager(), getStateBean().myFlattenPackages);
- return "Coverage Summary for Package \'" + node.toString() + "\': " + getNotCoveredMessage(coverageInformationString);
- }
+ @Override
+ public String getSummaryForNode(AbstractTreeNode node) {
+ String coverageInformationString = myAnnotator.getPackageCoverageInformationString(
+ (PsiJavaPackage) node.getValue(),
+ null,
+ getCoverageDataManager(),
+ getStateBean().myFlattenPackages
+ );
+ return "Coverage Summary for Package \'" + node.toString() + "\': " + getNotCoveredMessage(coverageInformationString);
+ }
- @Override
- @RequiredReadAction
- public String getSummaryForRootNode(AbstractTreeNode childNode) {
- final Object value = childNode.getValue();
- String coverageInformationString =
- myAnnotator.getPackageCoverageInformationString((PsiPackage) value, null, getCoverageDataManager());
- if (coverageInformationString == null) {
- if (!getCoverageViewManager().isReady()) return "Loading...";
- PackageAnnotator.PackageCoverageInfo info = new PackageAnnotator.PackageCoverageInfo();
- final Collection children = childNode.getChildren();
- for (Object child : children) {
- final Object childValue = ((CoverageListNode) child).getValue();
- if (childValue instanceof PsiPackage psiPackage) {
- final PackageAnnotator.PackageCoverageInfo coverageInfo =
- myAnnotator.getPackageCoverageInfo(psiPackage, getStateBean().myFlattenPackages);
- if (coverageInfo != null) {
- info = JavaCoverageAnnotator.merge(info, coverageInfo);
- }
- } else {
- final PackageAnnotator.ClassCoverageInfo classCoverageInfo = getClassCoverageInfo(((PsiClass) childValue));
- if (classCoverageInfo != null) {
- info.coveredClassCount += classCoverageInfo.coveredMethodCount > 0 ? 1 : 0;
- info.totalClassCount++;
+ @Override
+ @RequiredReadAction
+ public String getSummaryForRootNode(AbstractTreeNode childNode) {
+ Object value = childNode.getValue();
+ String coverageInformationString =
+ myAnnotator.getPackageCoverageInformationString((PsiPackage) value, null, getCoverageDataManager());
+ if (coverageInformationString == null) {
+ if (!getCoverageViewManager().isReady()) {
+ return "Loading...";
+ }
+ PackageAnnotator.PackageCoverageInfo info = new PackageAnnotator.PackageCoverageInfo();
+ Collection children = childNode.getChildren();
+ for (Object child : children) {
+ Object childValue = ((CoverageListNode) child).getValue();
+ if (childValue instanceof PsiPackage psiPackage) {
+ PackageAnnotator.PackageCoverageInfo coverageInfo =
+ myAnnotator.getPackageCoverageInfo(psiPackage, getStateBean().myFlattenPackages);
+ if (coverageInfo != null) {
+ info = JavaCoverageAnnotator.merge(info, coverageInfo);
+ }
+ }
+ else {
+ PackageAnnotator.ClassCoverageInfo classCoverageInfo = getClassCoverageInfo(((PsiClass) childValue));
+ if (classCoverageInfo != null) {
+ info.coveredClassCount += classCoverageInfo.coveredMethodCount > 0 ? 1 : 0;
+ info.totalClassCount++;
- info.coveredMethodCount += classCoverageInfo.coveredMethodCount;
- info.totalMethodCount += classCoverageInfo.totalMethodCount;
+ info.coveredMethodCount += classCoverageInfo.coveredMethodCount;
+ info.totalMethodCount += classCoverageInfo.totalMethodCount;
- info.coveredLineCount += classCoverageInfo.partiallyCoveredLineCount + classCoverageInfo.fullyCoveredLineCount;
- info.totalLineCount += classCoverageInfo.totalLineCount;
- }
+ info.coveredLineCount += classCoverageInfo.partiallyCoveredLineCount + classCoverageInfo.fullyCoveredLineCount;
+ info.totalLineCount += classCoverageInfo.totalLineCount;
+ }
+ }
+ }
+ coverageInformationString = JavaCoverageAnnotator.getCoverageInformationString(info, false);
}
- }
- coverageInformationString = JavaCoverageAnnotator.getCoverageInformationString(info, false);
+ return "Coverage Summary for \'all classes in scope\': " + getNotCoveredMessage(coverageInformationString);
}
- return "Coverage Summary for \'all classes in scope\': " + getNotCoveredMessage(coverageInformationString);
- }
- private static String getNotCoveredMessage(String coverageInformationString) {
- if (coverageInformationString == null) {
- coverageInformationString = "not covered";
+ private static String getNotCoveredMessage(String coverageInformationString) {
+ if (coverageInformationString == null) {
+ coverageInformationString = "not covered";
+ }
+ return coverageInformationString;
}
- return coverageInformationString;
- }
- @Override
- public String getPercentage(int columnIndex, AbstractTreeNode node) {
- final Object value = node.getValue();
- if (value instanceof PsiClass psiClass) {
+ @Override
+ public String getPercentage(int columnIndex, AbstractTreeNode node) {
+ Object value = node.getValue();
+ if (value instanceof PsiClass psiClass) {
- //no coverage gathered
- if (psiClass.isInterface()) return null;
+ //no coverage gathered
+ if (psiClass.isInterface()) {
+ return null;
+ }
- final String qualifiedName = psiClass.getQualifiedName();
- if (columnIndex == 1) {
- return myAnnotator.getClassCoveredPercentage(qualifiedName);
- } else if (columnIndex == 2) {
- return myAnnotator.getClassMethodPercentage(qualifiedName);
- }
+ String qualifiedName = psiClass.getQualifiedName();
+ if (columnIndex == 1) {
+ return myAnnotator.getClassCoveredPercentage(qualifiedName);
+ }
+ else if (columnIndex == 2) {
+ return myAnnotator.getClassMethodPercentage(qualifiedName);
+ }
- return myAnnotator.getClassLinePercentage(qualifiedName);
- }
- if (value instanceof PsiPackage psiPackage) {
- final boolean flatten = getStateBean().myFlattenPackages;
- if (columnIndex == 1) {
- return myAnnotator.getPackageClassPercentage(psiPackage, flatten);
- } else if (columnIndex == 2) {
- return myAnnotator.getPackageMethodPercentage(psiPackage, flatten);
- }
- return myAnnotator.getPackageLinePercentage(psiPackage, flatten);
+ return myAnnotator.getClassLinePercentage(qualifiedName);
+ }
+ if (value instanceof PsiPackage psiPackage) {
+ boolean flatten = getStateBean().myFlattenPackages;
+ if (columnIndex == 1) {
+ return myAnnotator.getPackageClassPercentage(psiPackage, flatten);
+ }
+ else if (columnIndex == 2) {
+ return myAnnotator.getPackageMethodPercentage(psiPackage, flatten);
+ }
+ return myAnnotator.getPackageLinePercentage(psiPackage, flatten);
+ }
+ return null;
}
- return null;
- }
- @Override
- public PsiElement getElementToSelect(Object object) {
- PsiElement psiElement = super.getElementToSelect(object);
- if (psiElement != null) {
- final PsiFile containingFile = psiElement.getContainingFile();
- if (containingFile instanceof PsiClassOwner classOwner) {
- final PsiClass[] classes = classOwner.getClasses();
- if (classes.length == 1) return classes[0];
- for (PsiClass aClass : classes) {
- if (PsiTreeUtil.isAncestor(aClass, psiElement, false)) return aClass;
+ @Override
+ @RequiredReadAction
+ public PsiElement getElementToSelect(Object object) {
+ PsiElement psiElement = super.getElementToSelect(object);
+ if (psiElement != null) {
+ PsiFile containingFile = psiElement.getContainingFile();
+ if (containingFile instanceof PsiClassOwner classOwner) {
+ PsiClass[] classes = classOwner.getClasses();
+ if (classes.length == 1) {
+ return classes[0];
+ }
+ for (PsiClass aClass : classes) {
+ if (PsiTreeUtil.isAncestor(aClass, psiElement, false)) {
+ return aClass;
+ }
+ }
+ }
}
- }
+ return psiElement;
}
- return psiElement;
- }
- @Override
- public VirtualFile getVirtualFile(Object object) {
- if (object instanceof PsiPackage psiPackage) {
- final PsiDirectory[] directories = psiPackage.getDirectories();
- return directories.length > 0 ? directories[0].getVirtualFile() : null;
+ @Override
+ public VirtualFile getVirtualFile(Object object) {
+ if (object instanceof PsiPackage psiPackage) {
+ PsiDirectory[] directories = psiPackage.getDirectories();
+ return directories.length > 0 ? directories[0].getVirtualFile() : null;
+ }
+ return super.getVirtualFile(object);
}
- return super.getVirtualFile(object);
- }
- @Nullable
- @Override
- public PsiElement getParentElement(PsiElement element) {
- if (element instanceof PsiClass) {
- final PsiDirectory containingDirectory = element.getContainingFile().getContainingDirectory();
- return containingDirectory != null ? JavaDirectoryService.getInstance().getPackage(containingDirectory) : null;
+ @Nullable
+ @Override
+ public PsiElement getParentElement(PsiElement element) {
+ if (element instanceof PsiClass) {
+ PsiDirectory containingDirectory = element.getContainingFile().getContainingDirectory();
+ return containingDirectory != null ? JavaDirectoryService.getInstance().getPackage(containingDirectory) : null;
+ }
+ return ((PsiPackage) element).getParentPackage();
}
- return ((PsiPackage) element).getParentPackage();
- }
- @Override
- public AbstractTreeNode createRootNode() {
- return new CoverageListRootNode(
- getProject(),
- JavaPsiFacade.getInstance(getProject()).findPackage(""),
- getSuitesBundle(),
- getStateBean()
- );
- }
-
- @Override
- public List createTopLevelNodes() {
- final List topLevelNodes = new ArrayList<>();
- final LinkedHashSet packages = new LinkedHashSet<>();
- final LinkedHashSet classes = new LinkedHashSet<>();
- for (CoverageSuite suite : getSuitesBundle().getSuites()) {
- packages.addAll(((JavaCoverageSuite) suite).getCurrentSuitePackages(getProject()));
- classes.addAll(((JavaCoverageSuite) suite).getCurrentSuiteClasses(getProject()));
+ @Override
+ public AbstractTreeNode createRootNode() {
+ return new CoverageListRootNode(
+ getProject(),
+ JavaPsiFacade.getInstance(getProject()).findPackage(""),
+ getSuitesBundle(),
+ getStateBean()
+ );
}
- final Set packs = new HashSet<>();
- for (PsiPackage aPackage : packages) {
- final String qualifiedName = aPackage.getQualifiedName();
- for (PsiPackage psiPackage : packages) {
- if (psiPackage.getQualifiedName().startsWith(qualifiedName + ".")) {
- packs.add(psiPackage);
- break;
+ @Override
+ public List createTopLevelNodes() {
+ List topLevelNodes = new ArrayList<>();
+ Set packages = new LinkedHashSet<>();
+ Set classes = new LinkedHashSet<>();
+ for (CoverageSuite suite : getSuitesBundle().getSuites()) {
+ JavaCoverageSuite javaCoverageSuite = (JavaCoverageSuite) suite;
+ packages.addAll(javaCoverageSuite.getCurrentSuitePackages(getProject()));
+ classes.addAll(javaCoverageSuite.getCurrentSuiteClasses(getProject()));
}
- }
- }
- packages.removeAll(packs);
- for (PsiJavaPackage aPackage : packages) {
- final GlobalSearchScope searchScope = getSuitesBundle().getSearchScope(getProject());
- if (aPackage.getDirectories(searchScope).length == 0) continue;
- if (aPackage.getClasses(searchScope).length != 0) {
- final CoverageListNode node = new CoverageListNode(getProject(), aPackage, getSuitesBundle(), getStateBean());
- topLevelNodes.add(node);
- }
- collectSubPackages(topLevelNodes, aPackage, getSuitesBundle(), getStateBean());
- }
+ Set packs = new HashSet<>();
+ for (PsiPackage aPackage : packages) {
+ String qualifiedName = aPackage.getQualifiedName();
+ for (PsiPackage psiPackage : packages) {
+ if (psiPackage.getQualifiedName().startsWith(qualifiedName + ".")) {
+ packs.add(psiPackage);
+ break;
+ }
+ }
+ }
+ packages.removeAll(packs);
- for (PsiClass aClass : classes) {
- if (getClassCoverageInfo(aClass) == null) continue;
- topLevelNodes.add(new CoverageListNode(getProject(), aClass, getSuitesBundle(), getStateBean()));
+ for (PsiJavaPackage aPackage : packages) {
+ GlobalSearchScope searchScope = getSuitesBundle().getSearchScope(getProject());
+ if (aPackage.getDirectories(searchScope).length == 0) {
+ continue;
+ }
+ if (aPackage.getClasses(searchScope).length != 0) {
+ CoverageListNode node = new CoverageListNode(getProject(), aPackage, getSuitesBundle(), getStateBean());
+ topLevelNodes.add(node);
+ }
+ collectSubPackages(topLevelNodes, aPackage, getSuitesBundle(), getStateBean());
+ }
+
+ for (PsiClass aClass : classes) {
+ if (getClassCoverageInfo(aClass) == null) {
+ continue;
+ }
+ topLevelNodes.add(new CoverageListNode(getProject(), aClass, getSuitesBundle(), getStateBean()));
+ }
+ return topLevelNodes;
}
- return topLevelNodes;
- }
- private static void collectSubPackages(
- List children,
- final PsiPackage rootPackage,
- final CoverageSuitesBundle data,
- final CoverageViewManager.StateBean stateBean
- ) {
- final GlobalSearchScope searchScope = data.getSearchScope(rootPackage.getProject());
- final Application application = Application.get();
- final PsiPackage[] subPackages = application.runReadAction((Computable)() -> rootPackage.getSubPackages(searchScope));
- for (final PsiPackage aPackage : subPackages) {
- final PsiDirectory[] directories = application.runReadAction((Computable)() -> aPackage.getDirectories(searchScope));
- if (directories.length == 0 && !application.runReadAction(
- (Computable)() -> JavaPsiFacade.getInstance(aPackage.getProject())
- .isPartOfPackagePrefix(aPackage.getQualifiedName())
- )) {
- continue;
- }
- if (application.runReadAction((Computable)() -> isInCoverageScope(aPackage, data))) {
- final CoverageListNode node = new CoverageListNode(rootPackage.getProject(), aPackage, data, stateBean);
- children.add(node);
- } else if (!stateBean.myFlattenPackages) {
- collectSubPackages(children, aPackage, data, stateBean);
- }
- if (stateBean.myFlattenPackages) {
- collectSubPackages(children, aPackage, data, stateBean);
- }
+ private static void collectSubPackages(
+ List children,
+ PsiPackage rootPackage,
+ CoverageSuitesBundle data,
+ CoverageViewManager.StateBean stateBean
+ ) {
+ GlobalSearchScope searchScope = data.getSearchScope(rootPackage.getProject());
+ Application application = rootPackage.getApplication();
+ PsiPackage[] subPackages = application.runReadAction((Supplier) () -> rootPackage.getSubPackages(searchScope));
+ for (PsiPackage aPackage : subPackages) {
+ PsiDirectory[] directories = application.runReadAction((Supplier) () -> aPackage.getDirectories(searchScope));
+ if (directories.length == 0 && !application.runReadAction(
+ (Supplier) () -> JavaPsiFacade.getInstance(aPackage.getProject())
+ .isPartOfPackagePrefix(aPackage.getQualifiedName())
+ )) {
+ continue;
+ }
+ if (application.runReadAction((Supplier) () -> isInCoverageScope(aPackage, data))) {
+ CoverageListNode node = new CoverageListNode(rootPackage.getProject(), aPackage, data, stateBean);
+ children.add(node);
+ }
+ else if (!stateBean.myFlattenPackages) {
+ collectSubPackages(children, aPackage, data, stateBean);
+ }
+ if (stateBean.myFlattenPackages) {
+ collectSubPackages(children, aPackage, data, stateBean);
+ }
+ }
}
- }
- @Override
- public List getChildrenNodes(final AbstractTreeNode node) {
- List children = new ArrayList<>();
- if (node instanceof CoverageListNode) {
- final Object val = node.getValue();
- if (val instanceof PsiClass) return Collections.emptyList();
+ @Override
+ public List getChildrenNodes(AbstractTreeNode node) {
+ List children = new ArrayList<>();
+ if (node instanceof CoverageListNode) {
+ Object val = node.getValue();
+ if (val instanceof PsiClass) {
+ return Collections.emptyList();
+ }
- //append package classes
- if (val instanceof PsiJavaPackage javaPackage) {
- if (!getStateBean().myFlattenPackages) {
- collectSubPackages(children, javaPackage, getSuitesBundle(), getStateBean());
- }
- Application application = Application.get();
- if (application.runReadAction((Computable)() -> isInCoverageScope(javaPackage, getSuitesBundle()))) {
- final PsiClass[] classes = application.runReadAction(
- (Computable)() -> javaPackage.getClasses(getSuitesBundle().getSearchScope(node.getProject()))
- );
- for (PsiClass aClass : classes) {
- if (!(node instanceof CoverageListRootNode) && getClassCoverageInfo(aClass) == null) continue;
- children.add(new CoverageListNode(getProject(), aClass, getSuitesBundle(), getStateBean()));
- }
+ //append package classes
+ if (val instanceof PsiJavaPackage javaPackage) {
+ if (!getStateBean().myFlattenPackages) {
+ collectSubPackages(children, javaPackage, getSuitesBundle(), getStateBean());
+ }
+ Application application = javaPackage.getApplication();
+ if (application.runReadAction((Supplier) () -> isInCoverageScope(javaPackage, getSuitesBundle()))) {
+ PsiClass[] classes = application.runReadAction(
+ (Supplier) () -> javaPackage.getClasses(getSuitesBundle().getSearchScope(node.getProject()))
+ );
+ for (PsiClass aClass : classes) {
+ if (!(node instanceof CoverageListRootNode) && getClassCoverageInfo(aClass) == null) {
+ continue;
+ }
+ children.add(new CoverageListNode(getProject(), aClass, getSuitesBundle(), getStateBean()));
+ }
+ }
+ }
+ if (node instanceof CoverageListRootNode) {
+ for (CoverageSuite suite : getSuitesBundle().getSuites()) {
+ List classes = ((JavaCoverageSuite) suite).getCurrentSuiteClasses(getProject());
+ for (PsiClass aClass : classes) {
+ children.add(new CoverageListNode(getProject(), aClass, getSuitesBundle(), getStateBean()));
+ }
+ }
+ }
+ for (AbstractTreeNode childNode : children) {
+ childNode.setParent(node);
+ }
}
- }
- if (node instanceof CoverageListRootNode) {
- for (CoverageSuite suite : getSuitesBundle().getSuites()) {
- final List classes = ((JavaCoverageSuite) suite).getCurrentSuiteClasses(getProject());
- for (PsiClass aClass : classes) {
- children.add(new CoverageListNode(getProject(), aClass, getSuitesBundle(), getStateBean()));
- }
- }
- }
- for (AbstractTreeNode childNode : children) {
- childNode.setParent(node);
- }
+ return children;
}
- return children;
- }
- @Nullable
- private PackageAnnotator.ClassCoverageInfo getClassCoverageInfo(final PsiClass aClass) {
- return myAnnotator.getClassCoverageInfo(aClass.getApplication().runReadAction(new Supplier<>() {
- public String get() {
- return aClass.getQualifiedName();
- }
- }));
- }
+ @Nullable
+ private PackageAnnotator.ClassCoverageInfo getClassCoverageInfo(final PsiClass aClass) {
+ return myAnnotator.getClassCoverageInfo(aClass.getApplication().runReadAction(new Supplier<>() {
+ @Override
+ public String get() {
+ return aClass.getQualifiedName();
+ }
+ }));
+ }
- @Override
- public ColumnInfo[] createColumnInfos() {
- return new ColumnInfo[]{
- new ElementColumnInfo(),
- new PercentageCoverageColumnInfo(1, "Class, %", getSuitesBundle(), getStateBean()),
- new PercentageCoverageColumnInfo(2, "Method, %", getSuitesBundle(), getStateBean()),
- new PercentageCoverageColumnInfo(3, "Line, %", getSuitesBundle(), getStateBean())
- };
- }
+ @Override
+ public ColumnInfo[] createColumnInfos() {
+ return new ColumnInfo[]{
+ new ElementColumnInfo(),
+ new PercentageCoverageColumnInfo(1, JavaCoverageLocalize.coverageViewColumnClass(), getSuitesBundle(), getStateBean()),
+ new PercentageCoverageColumnInfo(2, JavaCoverageLocalize.coverageViewColumnMethod(), getSuitesBundle(), getStateBean()),
+ new PercentageCoverageColumnInfo(3, JavaCoverageLocalize.coverageViewColumnLine(), getSuitesBundle(), getStateBean())
+ };
+ }
- private static boolean isInCoverageScope(PsiElement element, CoverageSuitesBundle suitesBundle) {
- if (element instanceof PsiPackage psiPackage) {
- final String qualifiedName = psiPackage.getQualifiedName();
- for (CoverageSuite suite : suitesBundle.getSuites()) {
- if (((JavaCoverageSuite) suite).isPackageFiltered(qualifiedName)) return true;
- }
+ private static boolean isInCoverageScope(PsiElement element, CoverageSuitesBundle suitesBundle) {
+ if (element instanceof PsiPackage psiPackage) {
+ String qualifiedName = psiPackage.getQualifiedName();
+ for (CoverageSuite suite : suitesBundle.getSuites()) {
+ if (((JavaCoverageSuite) suite).isPackageFiltered(qualifiedName)) {
+ return true;
+ }
+ }
+ }
+ return false;
}
- return false;
- }
- @Override
- @RequiredReadAction
- public boolean canSelectInCoverageView(Object object) {
- final PsiFile psiFile = object instanceof VirtualFile ? PsiManager.getInstance(getProject()).findFile((VirtualFile) object) : null;
- if (psiFile instanceof PsiClassOwner classOwner) {
- final String packageName = classOwner.getPackageName();
- return isInCoverageScope(JavaPsiFacade.getInstance(getProject()).findPackage(packageName), getSuitesBundle());
+ @Override
+ @RequiredReadAction
+ public boolean canSelectInCoverageView(Object object) {
+ PsiFile psiFile = object instanceof VirtualFile virtualFile ? PsiManager.getInstance(getProject()).findFile(virtualFile) : null;
+ if (psiFile instanceof PsiClassOwner classOwner) {
+ String packageName = classOwner.getPackageName();
+ return isInCoverageScope(JavaPsiFacade.getInstance(getProject()).findPackage(packageName), getSuitesBundle());
+ }
+ return object instanceof PsiPackage psiPackage && isInCoverageScope(psiPackage, getSuitesBundle());
}
- return object instanceof PsiPackage psiPackage && isInCoverageScope(psiPackage, getSuitesBundle());
- }
- @Override
- public boolean supportFlattenPackages() {
- return true;
- }
+ @Override
+ public boolean supportFlattenPackages() {
+ return true;
+ }
}
diff --git a/java-coverage-impl/src/main/java/module-info.java b/java-coverage-impl/src/main/java/module-info.java
index 2716646ec1..8d9f024b5c 100644
--- a/java-coverage-impl/src/main/java/module-info.java
+++ b/java-coverage-impl/src/main/java/module-info.java
@@ -1,6 +1,6 @@
/**
* @author VISTALL
- * @since 07/12/2022
+ * @since 2022-12-07
*/
module consulo.java.coverage.impl {
requires consulo.java.execution.api;
@@ -19,4 +19,5 @@
exports com.intellij.java.coverage;
exports com.intellij.java.coverage.info;
exports com.intellij.java.coverage.view;
+ exports consulo.java.coverage.localize;
}
\ No newline at end of file
diff --git a/java-coverage-impl/src/main/resources/LOCALIZE-LIB/en_US/consulo.java.coverage.JavaCoverageLocalize.yaml b/java-coverage-impl/src/main/resources/LOCALIZE-LIB/en_US/consulo.java.coverage.JavaCoverageLocalize.yaml
new file mode 100644
index 0000000000..fbb71577b3
--- /dev/null
+++ b/java-coverage-impl/src/main/resources/LOCALIZE-LIB/en_US/consulo.java.coverage.JavaCoverageLocalize.yaml
@@ -0,0 +1,78 @@
+coverage.button.add.package:
+ text: Add Package…
+coverage.classes:
+ text: classes
+coverage.classes.capitalised:
+ text: Classes
+coverage.error.jacoco.report.corrupted:
+ text: Jacoco report file {0} may be corrupted, try to rerun
+coverage.error.jacoco.report.format:
+ text: 'File is not in Jacoco report format: {0}'
+coverage.pattern.filter.editor.choose.package.title:
+ text: Choose Package
+coverage.recompile:
+ text: Recompile
+coverage.settings:
+ text: Show code coverage options
+coverage.settings.exclude:
+ text: Exclude classes and packages
+coverage.settings.group:
+ text: Code Coverage
+coverage.settings.include:
+ text: Specify classes and packages
+coverage.settings.menu:
+ text: Coverage settings
+coverage.view.column.branch:
+ text: Branch, %
+coverage.view.column.class:
+ text: Class, %
+coverage.view.column.line:
+ text: Line, %
+coverage.view.column.method:
+ text: Method, %
+coverage.view.text.classes.covered:
+ text: '{0}% classes'
+coverage.view.text.methods.covered:
+ text: '{0}% methods'
+coverage.xml.report.title:
+ text: XML Report
+do.not.show.coverage.data.in.specified.classes.and.packages:
+ text: Do not show coverage data in specified classes and packages
+download.coverage.report.from.target.failed:
+ text: Couldn't download coverage report from target
+download.coverage.report.from.target.progress.title:
+ text: Downloading coverage report from target…
+exclude.coverage.filters.title:
+ text: Packages and classes to exclude from coverage data
+generating.coverage.report:
+ text: Generating coverage report…
+java.coverage.engine.presentable.text:
+ text: Java Coverage
+notification.group.coverage:
+ text: Error loading or collecting coverage data
+project.class.files.are.out.of.date:
+ text: Project class files are out of date, this may lead to incomplete coverage information
+project.is.out.of.date:
+ text: Project Is out of Date
+record.coverage.filters.title:
+ text: Packages and classes to include in coverage data
+report.unknown.outcome:
+ text: 'Unknown outcome: {0}'
+run.configuration.choose.coverage.runner:
+ text: 'Choose coverage runner:'
+run.configuration.coverage.branches:
+ text: Branch coverage
+run.configuration.coverage.branches.comment:
+ text: Collect coverage for all branches of if/switch statements
+run.configuration.enable.coverage.in.test.folders:
+ text: Collect coverage in test folders
+run.configuration.track.per.test.coverage:
+ text: Track per test coverage
+run.configuration.track.per.test.coverage.comment:
+ text: Collect data about which code lines were covered by specific tests
+settings.coverage.java.ignore.implicitly.declared.default.constructors:
+ text: Ignore implicitly declared default constructors
+settings.coverage.java.java.coverage:
+ text: Java Coverage
+show.coverage.data.only.in.specified.classes.and.packages:
+ text: Show coverage data only in specified classes and packages