From 709db24f23284baf25def525a2a3fc67ae08b665 Mon Sep 17 00:00:00 2001 From: bohdan-harniuk Date: Thu, 24 Mar 2022 13:13:53 +0200 Subject: [PATCH 1/2] 984: Filtered generated folder from reference resolving results --- resources/META-INF/plugin.xml | 2 + .../php/MagentoProxyDeclarationFilter.java | 53 +++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 src/com/magento/idea/magento2plugin/lang/php/MagentoProxyDeclarationFilter.java diff --git a/resources/META-INF/plugin.xml b/resources/META-INF/plugin.xml index f6af41125..6cf1e6eba 100644 --- a/resources/META-INF/plugin.xml +++ b/resources/META-INF/plugin.xml @@ -617,5 +617,7 @@ + + diff --git a/src/com/magento/idea/magento2plugin/lang/php/MagentoProxyDeclarationFilter.java b/src/com/magento/idea/magento2plugin/lang/php/MagentoProxyDeclarationFilter.java new file mode 100644 index 000000000..81acc6a3b --- /dev/null +++ b/src/com/magento/idea/magento2plugin/lang/php/MagentoProxyDeclarationFilter.java @@ -0,0 +1,53 @@ +/* + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ + +package com.magento.idea.magento2plugin.lang.php; + +import com.intellij.openapi.util.registry.Registry; +import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiFile; +import com.intellij.util.containers.ContainerUtil; +import com.jetbrains.php.lang.psi.PhpMultipleDeclarationFilter; +import com.jetbrains.php.lang.psi.elements.PhpNamedElement; +import com.magento.idea.magento2plugin.project.Settings; +import java.util.Collection; +import org.jetbrains.annotations.NotNull; + +public class MagentoProxyDeclarationFilter implements PhpMultipleDeclarationFilter { + + @SuppressWarnings({"PMD.CognitiveComplexity", "PMD.ConfusingTernary"}) + @Override + public Collection filter( + final @NotNull PsiElement psiElement, + final Collection candidates + ) { + if (!Settings.isEnabled(psiElement.getProject())) { + return candidates; + } else if (!Registry.is("php.use.multiproject.ref.resolver", true)) { + return candidates; + } else if (candidates.size() == 1) { // NOPMD + return candidates; + } else if (psiElement.getContainingFile() == null) { + return candidates; + } else { + return ContainerUtil.filter(candidates, + (candidate) -> { + final PsiFile file = candidate.getContainingFile(); + + if (file == null) { + return false; + } + final VirtualFile virtualFile = file.getVirtualFile(); + + if (virtualFile == null) { + return false; + } + + return !virtualFile.getPath().contains("/generated/"); + }); + } + } +} From feedf152b7d6a4e3fa9f474fefd67c47ffbe169d Mon Sep 17 00:00:00 2001 From: bohdan-harniuk Date: Thu, 24 Mar 2022 13:35:34 +0200 Subject: [PATCH 2/2] 984: Code refactoring after code review --- .../php/MagentoProxyDeclarationFilter.java | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/com/magento/idea/magento2plugin/lang/php/MagentoProxyDeclarationFilter.java b/src/com/magento/idea/magento2plugin/lang/php/MagentoProxyDeclarationFilter.java index 81acc6a3b..86705b138 100644 --- a/src/com/magento/idea/magento2plugin/lang/php/MagentoProxyDeclarationFilter.java +++ b/src/com/magento/idea/magento2plugin/lang/php/MagentoProxyDeclarationFilter.java @@ -32,22 +32,22 @@ public Collection filter( return candidates; } else if (psiElement.getContainingFile() == null) { return candidates; - } else { - return ContainerUtil.filter(candidates, - (candidate) -> { - final PsiFile file = candidate.getContainingFile(); - - if (file == null) { - return false; - } - final VirtualFile virtualFile = file.getVirtualFile(); - - if (virtualFile == null) { - return false; - } - - return !virtualFile.getPath().contains("/generated/"); - }); } + + return ContainerUtil.filter(candidates, + (candidate) -> { + final PsiFile file = candidate.getContainingFile(); + + if (file == null) { + return false; + } + final VirtualFile virtualFile = file.getVirtualFile(); + + if (virtualFile == null) { + return false; + } + + return !virtualFile.getPath().contains("/generated/"); + }); } }