From 47ab4db8e2a084207c6850d766938d618029e10a Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 14 Feb 2020 22:35:13 +0100 Subject: [PATCH] remove unused property: show one clear status dialog IDEA-CR-58460 GitOrigin-RevId: d749e5f078b4d82f2348678b42c04f52033eb75b --- .../codeInspection/unused/UnusedPropertyUtil.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/plugins/properties/properties-resource-bundle-editor/src/com/intellij/codeInspection/unused/UnusedPropertyUtil.java b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/codeInspection/unused/UnusedPropertyUtil.java index a59b6f2673a7..f0f6196d534c 100644 --- a/plugins/properties/properties-resource-bundle-editor/src/com/intellij/codeInspection/unused/UnusedPropertyUtil.java +++ b/plugins/properties/properties-resource-bundle-editor/src/com/intellij/codeInspection/unused/UnusedPropertyUtil.java @@ -16,12 +16,13 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleUtilCore; import com.intellij.openapi.project.Project; -import com.intellij.psi.PsiElement; import com.intellij.psi.SmartPointerManager; import com.intellij.psi.SmartPsiElementPointer; +import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; +import java.util.List; import java.util.Objects; import java.util.function.Function; @@ -66,14 +67,18 @@ public class UnusedPropertyUtil { if (key == null) return; final PropertiesFile file = PropertiesImplUtil.getPropertiesFile(myRepresentativePointer.getContainingFile()); LOG.assertTrue(file != null); - file.getResourceBundle() - .getPropertiesFiles() + List propertiesFiles = file.getResourceBundle().getPropertiesFiles(); + if (!FileModificationService.getInstance() + .preparePsiElementsForWrite(ContainerUtil.map2List(propertiesFiles, p -> p.getContainingFile()))) { + return; + } + WriteAction.run(() -> propertiesFiles .stream() .flatMap(f -> f.findPropertiesByKey(key).stream()) .filter(Objects::nonNull) .map(IProperty::getPsiElement) - .filter(FileModificationService.getInstance()::preparePsiElementForWrite) - .forEach(e -> WriteAction.run(() -> e.delete())); + .forEach(e -> e.delete()) + ); } } }