|
23 | 23 | import fr.adrienbrault.idea.symfony2plugin.dic.ClassServiceDefinitionTargetLazyValue;
|
24 | 24 | import fr.adrienbrault.idea.symfony2plugin.dic.ContainerService;
|
25 | 25 | import fr.adrienbrault.idea.symfony2plugin.dic.container.ServiceInterface;
|
26 |
| -import fr.adrienbrault.idea.symfony2plugin.doctrine.EntityHelper; |
27 | 26 | import fr.adrienbrault.idea.symfony2plugin.doctrine.metadata.util.DoctrineMetadataUtil;
|
28 | 27 | import fr.adrienbrault.idea.symfony2plugin.form.util.FormUtil;
|
29 | 28 | import fr.adrienbrault.idea.symfony2plugin.stubs.ContainerCollectionResolver;
|
30 | 29 | import fr.adrienbrault.idea.symfony2plugin.stubs.ServiceIndexUtil;
|
31 | 30 | import fr.adrienbrault.idea.symfony2plugin.translation.ConstraintMessageGotoCompletionRegistrar;
|
32 | 31 | import fr.adrienbrault.idea.symfony2plugin.translation.dict.TranslationUtil;
|
33 | 32 | import fr.adrienbrault.idea.symfony2plugin.util.PhpElementsUtil;
|
34 |
| -import fr.adrienbrault.idea.symfony2plugin.util.dict.DoctrineModel; |
| 33 | +import fr.adrienbrault.idea.symfony2plugin.util.PsiElementUtils; |
35 | 34 | import fr.adrienbrault.idea.symfony2plugin.util.dict.ServiceUtil;
|
36 | 35 | import icons.ExternalSystemIcons;
|
37 | 36 | import org.apache.commons.lang3.StringUtils;
|
@@ -157,31 +156,22 @@ private void classNameMarker(@NotNull Project project, @NotNull PsiElement psiEl
|
157 | 156 | }
|
158 | 157 |
|
159 | 158 | private void entityClassMarker(@NotNull Project project, PsiElement psiElement, Collection<? super RelatedItemLineMarkerInfo<?>> result) {
|
160 |
| - |
161 | 159 | PsiElement phpClassContext = psiElement.getContext();
|
162 |
| - if(!(phpClassContext instanceof PhpClass)) { |
| 160 | + if (!(phpClassContext instanceof PhpClass phpClass)) { |
163 | 161 | return;
|
164 | 162 | }
|
165 | 163 |
|
166 | 164 | Collection<PsiFile> psiFiles = new ArrayList<>();
|
167 |
| - // @TODO: use DoctrineMetadataUtil, for single resolve; we have collecting overhead here |
168 |
| - for(DoctrineModel doctrineModel: EntityHelper.getModelClasses(project)) { |
169 |
| - PhpClass phpClass = doctrineModel.getPhpClass(); |
170 |
| - if(!PhpElementsUtil.isEqualClassName(phpClass, (PhpClass) phpClassContext)) { |
171 |
| - continue; |
172 |
| - } |
173 |
| - |
174 |
| - PsiFile psiFile = EntityHelper.getModelConfigFile(phpClass); |
175 |
| - |
| 165 | + for (PsiFile metadataFile : PsiElementUtils.convertVirtualFilesToPsiFiles(project, DoctrineMetadataUtil.findMetadataFiles(project, phpClass.getFQN()))) { |
176 | 166 | // prevent self navigation for line marker
|
177 |
| - if(psiFile == null || psiFile instanceof PhpFile) { |
| 167 | + if (metadataFile instanceof PhpFile) { |
178 | 168 | continue;
|
179 | 169 | }
|
180 | 170 |
|
181 |
| - psiFiles.add(psiFile); |
| 171 | + psiFiles.add(metadataFile); |
182 | 172 | }
|
183 | 173 |
|
184 |
| - if(psiFiles.isEmpty()) { |
| 174 | + if (psiFiles.isEmpty()) { |
185 | 175 | return;
|
186 | 176 | }
|
187 | 177 |
|
|
0 commit comments