From b762d88d54bfd01f089d26feb58ba73165f518d7 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Tue, 20 Sep 2016 16:55:25 +0700 Subject: [PATCH] CreateHtmlDescriptionFix: minor refactoring, fix failing tests (quick-fix name was changed, tests were not updated correspondingly) --- .../quickfix/CreateHtmlDescriptionFix.java | 43 +++++-------------- ...tionDescriptionNotFoundInspectionTest.java | 4 +- ...lateDescriptionNotFoundInspectionTest.java | 4 +- 3 files changed, 14 insertions(+), 37 deletions(-) diff --git a/plugins/devkit/src/inspections/quickfix/CreateHtmlDescriptionFix.java b/plugins/devkit/src/inspections/quickfix/CreateHtmlDescriptionFix.java index 03520ea2df51..3a0d8bcf18d6 100644 --- a/plugins/devkit/src/inspections/quickfix/CreateHtmlDescriptionFix.java +++ b/plugins/devkit/src/inspections/quickfix/CreateHtmlDescriptionFix.java @@ -40,6 +40,7 @@ import com.intellij.psi.PsiManager; import com.intellij.ui.LayeredIcon; import com.intellij.ui.components.JBList; import com.intellij.util.ArrayUtil; +import one.util.streamex.StreamEx; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.idea.devkit.DevKitBundle; @@ -50,7 +51,7 @@ import org.jetbrains.jps.model.java.JavaResourceRootType; import javax.swing.*; import java.io.File; -import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -77,12 +78,7 @@ public class CreateHtmlDescriptionFix implements LocalQuickFix, Iconable { private static List getPotentialRoots(Module module, PsiDirectory[] dirs) { if (dirs.length != 0) { - final List result = new ArrayList<>(); - for (PsiDirectory dir : dirs) { - final PsiDirectory parent = dir.getParentDirectory(); - if (parent != null) result.add(parent.getVirtualFile()); - } - return result; + return StreamEx.of(dirs).map(PsiDirectory::getParentDirectory).nonNull().map(PsiDirectory::getVirtualFile).toList(); } else { ModuleRootManager rootManager = ModuleRootManager.getInstance(module); @@ -100,7 +96,7 @@ public class CreateHtmlDescriptionFix implements LocalQuickFix, Iconable { @NotNull public String getName() { - return DevKitBundle.message("create.description.file", myFilename); + return DevKitBundle.message("create.description.file", getNewFileName()); } @NotNull @@ -116,11 +112,7 @@ public class CreateHtmlDescriptionFix implements LocalQuickFix, Iconable { ApplicationManager.getApplication().runWriteAction(() -> createDescription(roots[0])); } else { - List options = new ArrayList<>(); - for (VirtualFile file : roots) { - String path = getPath(file); - options.add(path); - } + List options = StreamEx.of(roots).map(this::getPath).toList(); final JBList files = new JBList(ArrayUtil.toStringArray(options)); files.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); final JBPopup popup = JBPopupFactory.getInstance() @@ -154,14 +146,9 @@ public class CreateHtmlDescriptionFix implements LocalQuickFix, Iconable { if (!root.isDirectory()) return; final PsiManager psiManager = PsiManager.getInstance(myModule.getProject()); final PsiDirectory psiRoot = psiManager.findDirectory(root); - PsiDirectory descrRoot = null; if (psiRoot == null) return; - for (PsiDirectory dir : psiRoot.getSubdirectories()) { - if (getDescriptionFolderName().equals(dir.getName())) { - descrRoot = dir; - break; - } - } + PsiDirectory descrRoot = + StreamEx.of(psiRoot.getSubdirectories()).findFirst(dir -> getDescriptionFolderName().equals(dir.getName())).orElse(null); try { descrRoot = descrRoot == null ? psiRoot.createSubdirectory(getDescriptionFolderName()) : descrRoot; @@ -194,23 +181,13 @@ public class CreateHtmlDescriptionFix implements LocalQuickFix, Iconable { } private VirtualFile[] prepare(VirtualFile[] roots) { - List found = new ArrayList<>(); - for (VirtualFile root : roots) { - if (containsDescriptionDir(root)) { - found.add(root); - } - } - return found.size() > 0 ? VfsUtilCore.toVirtualFileArray(found) : roots; + VirtualFile[] found = Arrays.stream(roots).filter(this::containsDescriptionDir).toArray(VirtualFile[]::new); + return found.length > 0 ? found : roots; } private boolean containsDescriptionDir(VirtualFile root) { if (!root.isDirectory()) return false; - for (VirtualFile file : root.getChildren()) { - if (file.isDirectory() && getDescriptionFolderName().equals(file.getName())) { - return true; - } - } - return false; + return Arrays.stream(root.getChildren()).anyMatch(file -> file.isDirectory() && getDescriptionFolderName().equals(file.getName())); } private String getDescriptionFolderName() { diff --git a/plugins/devkit/testSources/inspections/IntentionDescriptionNotFoundInspectionTest.java b/plugins/devkit/testSources/inspections/IntentionDescriptionNotFoundInspectionTest.java index 359e2631b520..1d1cdf48db09 100644 --- a/plugins/devkit/testSources/inspections/IntentionDescriptionNotFoundInspectionTest.java +++ b/plugins/devkit/testSources/inspections/IntentionDescriptionNotFoundInspectionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -52,7 +52,7 @@ public class IntentionDescriptionNotFoundInspectionTest extends LightCodeInsight public void testQuickFix() { myFixture.configureByFile("MyQuickFixIntentionAction.java"); - IntentionAction item = myFixture.findSingleIntention("Create Description File"); + IntentionAction item = myFixture.findSingleIntention("Create description file description.html"); myFixture.launchAction(item); VirtualFile path = myFixture.findFileInTempDir("intentionDescriptions/MyQuickFixIntentionAction/description.html"); diff --git a/plugins/devkit/testSources/inspections/PostfixTemplateDescriptionNotFoundInspectionTest.java b/plugins/devkit/testSources/inspections/PostfixTemplateDescriptionNotFoundInspectionTest.java index 4a29645ab7bf..59dd761ae9a0 100644 --- a/plugins/devkit/testSources/inspections/PostfixTemplateDescriptionNotFoundInspectionTest.java +++ b/plugins/devkit/testSources/inspections/PostfixTemplateDescriptionNotFoundInspectionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -52,7 +52,7 @@ public class PostfixTemplateDescriptionNotFoundInspectionTest extends LightCodeI public void testQuickFix() { myFixture.configureByFiles("MyQuickFixTemplate.java"); - IntentionAction item = myFixture.findSingleIntention("Create Description File"); + IntentionAction item = myFixture.findSingleIntention("Create description file description.html"); myFixture.launchAction(item); VirtualFile path = myFixture.findFileInTempDir("postfixTemplates/MyQuickFixTemplate/description.html");