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..86705b138
--- /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;
+ }
+
+ 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/");
+ });
+ }
+}