From 2de7fc723a1bf0c9b896a3b725d35c83c3399c50 Mon Sep 17 00:00:00 2001 From: Daniel Espendiller Date: Mon, 18 Dec 2017 21:32:08 +0100 Subject: [PATCH] drop unused and unreachable code --- .../idea/symfony2plugin/SettingsForm.java | 1 - .../Symfony2ProjectComponent.java | 1 - .../action/ServiceActionUtil.java | 1 - .../config/yaml/YamlCompletionProvider.java | 21 ++--- .../config/yaml/YamlElementPatternHelper.java | 36 ------- .../dic/ServiceLookupElement.java | 34 ------- .../container/util/ServiceContainerUtil.java | 1 - .../dic/linemarker/XmlLineMarkerProvider.java | 6 +- .../linemarker/YamlLineMarkerProvider.java | 6 +- .../DoctrineRepositoryLookupElement.java | 3 - ...ositoryQueryBuilderRepositoryDetector.java | 33 ------- .../locator/TwigFileToolboxTargetLocator.java | 1 - .../provider/ControllerToolboxProvider.java | 1 - .../toolbox/provider/TwigToolboxProvider.java | 1 - .../xml/XmlServiceSuggestIntention.java | 1 - .../routing/XmlLineMarkerProvider.java | 2 - .../routing/YamlLineMarkerProvider.java | 1 - .../templating/TwigPattern.java | 34 ------- .../TwigTemplateGoToDeclarationHandler.java | 12 ++- .../templating/util/TwigExtensionParser.java | 17 +--- .../util/TwigHtmlCompletionUtil.java | 2 - .../templating/util/TwigUtil.java | 52 ---------- .../GlobalExtensionVariableCollector.java | 2 - .../ControllerDocVariableCollector.java | 1 - .../ControllerVariableCollector.java | 1 - .../util/AnnotationBackportUtil.java | 5 - .../util/EventDispatcherTypeProvider.java | 1 - .../symfony2plugin/util/PhpElementsUtil.java | 85 ----------------- .../util/RegexPsiElementFilter.java | 42 --------- .../util/controller/ControllerIndex.java | 11 --- .../util/dict/PhpTypeCache.java | 94 ------------------- .../symfony2plugin/util/dict/ServiceUtil.java | 2 +- 32 files changed, 18 insertions(+), 493 deletions(-) delete mode 100644 src/fr/adrienbrault/idea/symfony2plugin/dic/ServiceLookupElement.java delete mode 100644 src/fr/adrienbrault/idea/symfony2plugin/doctrine/querybuilder/detector/RepositoryQueryBuilderRepositoryDetector.java delete mode 100644 src/fr/adrienbrault/idea/symfony2plugin/util/RegexPsiElementFilter.java delete mode 100644 src/fr/adrienbrault/idea/symfony2plugin/util/dict/PhpTypeCache.java diff --git a/src/fr/adrienbrault/idea/symfony2plugin/SettingsForm.java b/src/fr/adrienbrault/idea/symfony2plugin/SettingsForm.java index e9ab49f33..f76a14a91 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/SettingsForm.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/SettingsForm.java @@ -4,7 +4,6 @@ import com.intellij.openapi.fileChooser.FileChooser; import com.intellij.openapi.fileChooser.FileChooserDescriptor; import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory; -import com.intellij.openapi.fileTypes.FileTypeManager; import com.intellij.openapi.options.Configurable; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.project.Project; diff --git a/src/fr/adrienbrault/idea/symfony2plugin/Symfony2ProjectComponent.java b/src/fr/adrienbrault/idea/symfony2plugin/Symfony2ProjectComponent.java index 921dd4c84..f218d9eb5 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/Symfony2ProjectComponent.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/Symfony2ProjectComponent.java @@ -7,7 +7,6 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.openapi.project.Project; -import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.wm.StatusBar; import com.intellij.openapi.wm.WindowManager; diff --git a/src/fr/adrienbrault/idea/symfony2plugin/action/ServiceActionUtil.java b/src/fr/adrienbrault/idea/symfony2plugin/action/ServiceActionUtil.java index dd1911886..1ea112499 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/action/ServiceActionUtil.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/action/ServiceActionUtil.java @@ -14,7 +14,6 @@ import com.intellij.psi.*; import com.intellij.psi.codeStyle.CodeStyleManager; import com.intellij.psi.util.PsiTreeUtil; -import com.intellij.psi.xml.XmlAttribute; import com.intellij.psi.xml.XmlTag; import com.jetbrains.php.lang.psi.elements.Method; import com.jetbrains.php.lang.psi.elements.Parameter; diff --git a/src/fr/adrienbrault/idea/symfony2plugin/config/yaml/YamlCompletionProvider.java b/src/fr/adrienbrault/idea/symfony2plugin/config/yaml/YamlCompletionProvider.java index ab18f8251..a4fda9b99 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/config/yaml/YamlCompletionProvider.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/config/yaml/YamlCompletionProvider.java @@ -9,6 +9,7 @@ import fr.adrienbrault.idea.symfony2plugin.Symfony2Icons; import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Map; @@ -18,25 +19,21 @@ */ public class YamlCompletionProvider extends CompletionProvider { - + @Nullable private List lookupList; + + @Nullable private Map lookupMap; - private String[] lookupArray; - public YamlCompletionProvider(List lookups) { + public YamlCompletionProvider(@Nullable List lookups) { this.lookupList = lookups; } - public YamlCompletionProvider(Map lookups) { + public YamlCompletionProvider(@Nullable Map lookups) { this.lookupMap = lookups; } - public YamlCompletionProvider(String[] lookups) { - this.lookupArray = lookups; - } - public void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet resultSet) { - if(!Symfony2ProjectComponent.isEnabled(parameters.getPosition())) { return; } @@ -52,12 +49,6 @@ public void addCompletions(@NotNull CompletionParameters parameters, ProcessingC resultSet.addElement(lookupElement); } - } else if(lookupArray != null) { - for (String lookup : lookupArray) { - resultSet.addElement(LookupElementBuilder.create(lookup).withIcon(Symfony2Icons.SYMFONY)); - } } - - } } diff --git a/src/fr/adrienbrault/idea/symfony2plugin/config/yaml/YamlElementPatternHelper.java b/src/fr/adrienbrault/idea/symfony2plugin/config/yaml/YamlElementPatternHelper.java index a46dd4299..7c459172d 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/config/yaml/YamlElementPatternHelper.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/config/yaml/YamlElementPatternHelper.java @@ -596,26 +596,6 @@ public static ElementPattern getAfterCommaPattern() { } - /** - * Get service before comma - * - * ["@service', createNewsletterManager|] - * [@service, createNewsletterManager|] - * ['@service', createNewsletterManager|] - */ - public static ElementPattern getPreviousCommaSibling() { - - return PlatformPatterns.or( - PlatformPatterns - .psiElement(YAMLScalar.class) - .beforeLeafSkipping( - PlatformPatterns.psiElement(PsiWhiteSpace.class), - PlatformPatterns.psiElement().withText(",") - ) - ); - - } - /** * parameters: * foo.example.class: | @@ -659,22 +639,6 @@ public static PsiElementPattern.Capture getInsideKeyValue(String... ); } - /** - * services: - * id: [] - */ - public static PsiElementPattern.Capture getServiceIdKeyPattern() { - return PlatformPatterns.psiElement(YAMLTokenTypes.SCALAR_KEY) - .withParent(PlatformPatterns.psiElement(YAMLKeyValue.class) - .withParent(PlatformPatterns.psiElement(YAMLCompoundValue.class) - .withParent( - PlatformPatterns.psiElement(YAMLKeyValue.class) - .withName(PlatformPatterns.string().oneOfIgnoreCase("services")) - ) - ) - ); - } - /** * services: * id: [] diff --git a/src/fr/adrienbrault/idea/symfony2plugin/dic/ServiceLookupElement.java b/src/fr/adrienbrault/idea/symfony2plugin/dic/ServiceLookupElement.java deleted file mode 100644 index a750ed65c..000000000 --- a/src/fr/adrienbrault/idea/symfony2plugin/dic/ServiceLookupElement.java +++ /dev/null @@ -1,34 +0,0 @@ -package fr.adrienbrault.idea.symfony2plugin.dic; - -import com.intellij.codeInsight.lookup.LookupElement; -import com.intellij.codeInsight.lookup.LookupElementPresentation; -import com.jetbrains.php.lang.psi.elements.PhpClass; -import fr.adrienbrault.idea.symfony2plugin.Symfony2Icons; -import org.jetbrains.annotations.NotNull; - -/** - * @author Adrien Brault - */ -public class ServiceLookupElement extends LookupElement { - - private String serviceId; - private PhpClass serviceClass; - - public ServiceLookupElement(String serviceId, PhpClass serviceClass) { - this.serviceId = serviceId; - this.serviceClass = serviceClass; - } - - @NotNull - @Override - public String getLookupString() { - return serviceId; - } - - public void renderElement(LookupElementPresentation presentation) { - presentation.setItemText(getLookupString()); - presentation.setTypeText(serviceClass.getPresentableFQN()); - presentation.setTypeGrayed(true); - presentation.setIcon(Symfony2Icons.SERVICE); - } -} diff --git a/src/fr/adrienbrault/idea/symfony2plugin/dic/container/util/ServiceContainerUtil.java b/src/fr/adrienbrault/idea/symfony2plugin/dic/container/util/ServiceContainerUtil.java index 68c5fc2ae..f49a580f9 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/dic/container/util/ServiceContainerUtil.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/dic/container/util/ServiceContainerUtil.java @@ -12,7 +12,6 @@ import com.jetbrains.php.PhpIndex; import com.jetbrains.php.lang.psi.elements.Field; import com.jetbrains.php.lang.psi.elements.Method; -import com.jetbrains.php.lang.psi.elements.Parameter; import com.jetbrains.php.lang.psi.elements.PhpClass; import fr.adrienbrault.idea.symfony2plugin.config.xml.XmlHelper; import fr.adrienbrault.idea.symfony2plugin.dic.attribute.value.AttributeValueInterface; diff --git a/src/fr/adrienbrault/idea/symfony2plugin/dic/linemarker/XmlLineMarkerProvider.java b/src/fr/adrienbrault/idea/symfony2plugin/dic/linemarker/XmlLineMarkerProvider.java index a83806bac..dd15a827e 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/dic/linemarker/XmlLineMarkerProvider.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/dic/linemarker/XmlLineMarkerProvider.java @@ -23,10 +23,6 @@ * @author Daniel Espendiller */ public class XmlLineMarkerProvider implements LineMarkerProvider { - - @Nullable - private Map> decoratedServiceCache; - @Nullable @Override public LineMarkerInfo getLineMarkerInfo(@NotNull PsiElement psiElement) { @@ -65,7 +61,7 @@ private void visitServiceId(@NotNull XmlTag xmlTag, @NotNull Collection String decorates = xmlTag.getAttributeValue("decorates"); if(decorates != null && StringUtils.isNotBlank(decorates)) { - result.add(ServiceUtil.getLineMarkerForDecoratesServiceId(xmlTag, decorates, result)); + result.add(ServiceUtil.getLineMarkerForDecoratesServiceId(xmlTag, decorates)); } NavigationGutterIconBuilder lineMarker = ServiceUtil.getLineMarkerForDecoratedServiceId( diff --git a/src/fr/adrienbrault/idea/symfony2plugin/dic/linemarker/YamlLineMarkerProvider.java b/src/fr/adrienbrault/idea/symfony2plugin/dic/linemarker/YamlLineMarkerProvider.java index bf836786c..2df3e0a4b 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/dic/linemarker/YamlLineMarkerProvider.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/dic/linemarker/YamlLineMarkerProvider.java @@ -22,10 +22,6 @@ * @author Daniel Espendiller */ public class YamlLineMarkerProvider implements LineMarkerProvider { - - @Nullable - private Map> decoratedServiceCache; - @Nullable @Override public LineMarkerInfo getLineMarkerInfo(@NotNull PsiElement psiElement) { @@ -61,7 +57,7 @@ private void visitServiceId(@NotNull YAMLKeyValue yamlKeyValue, @NotNull Collect // decorates: @foobar String decorates = YamlHelper.getYamlKeyValueAsString(yamlKeyValue, "decorates"); if(decorates != null && StringUtils.isNotBlank(decorates)) { - result.add(ServiceUtil.getLineMarkerForDecoratesServiceId(yamlKeyValue, decorates, result)); + result.add(ServiceUtil.getLineMarkerForDecoratesServiceId(yamlKeyValue, decorates)); } NavigationGutterIconBuilder lineMarker = ServiceUtil.getLineMarkerForDecoratedServiceId( diff --git a/src/fr/adrienbrault/idea/symfony2plugin/doctrine/metadata/lookup/DoctrineRepositoryLookupElement.java b/src/fr/adrienbrault/idea/symfony2plugin/doctrine/metadata/lookup/DoctrineRepositoryLookupElement.java index 978333ddf..056b482a7 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/doctrine/metadata/lookup/DoctrineRepositoryLookupElement.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/doctrine/metadata/lookup/DoctrineRepositoryLookupElement.java @@ -1,6 +1,5 @@ package fr.adrienbrault.idea.symfony2plugin.doctrine.metadata.lookup; -import com.intellij.codeInsight.completion.InsertHandler; import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.codeInsight.lookup.LookupElementPresentation; import com.jetbrains.php.lang.psi.elements.PhpClass; @@ -15,10 +14,8 @@ * @author Daniel Espendiller */ public class DoctrineRepositoryLookupElement extends LookupElement { - @NotNull private final PhpClass phpClass; - private InsertHandler insertHandler; private DoctrineRepositoryLookupElement(@NotNull PhpClass phpClass) { this.phpClass = phpClass; diff --git a/src/fr/adrienbrault/idea/symfony2plugin/doctrine/querybuilder/detector/RepositoryQueryBuilderRepositoryDetector.java b/src/fr/adrienbrault/idea/symfony2plugin/doctrine/querybuilder/detector/RepositoryQueryBuilderRepositoryDetector.java deleted file mode 100644 index b471a2cb6..000000000 --- a/src/fr/adrienbrault/idea/symfony2plugin/doctrine/querybuilder/detector/RepositoryQueryBuilderRepositoryDetector.java +++ /dev/null @@ -1,33 +0,0 @@ -package fr.adrienbrault.idea.symfony2plugin.doctrine.querybuilder.detector; - -import com.intellij.psi.util.PsiTreeUtil; -import com.jetbrains.php.lang.psi.elements.MethodReference; -import com.jetbrains.php.lang.psi.elements.PhpClass; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * @author Daniel Espendiller - */ -public class RepositoryQueryBuilderRepositoryDetector implements QueryBuilderRepositoryDetector { - - @Nullable - @Override - public String getRepository(@NotNull QueryBuilderRepositoryDetectorParameter parameter) { - - MethodReference qbMethodRef = parameter.getMethodReferenceByName("createQueryBuilder"); - if(qbMethodRef == null) { - return null; - } - - PhpClass parentOfType = PsiTreeUtil.getParentOfType(qbMethodRef, PhpClass.class); - if(parentOfType == null) { - return null; - } - - - - return null; - } - -} diff --git a/src/fr/adrienbrault/idea/symfony2plugin/external/locator/TwigFileToolboxTargetLocator.java b/src/fr/adrienbrault/idea/symfony2plugin/external/locator/TwigFileToolboxTargetLocator.java index e3cc736ba..050d0c079 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/external/locator/TwigFileToolboxTargetLocator.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/external/locator/TwigFileToolboxTargetLocator.java @@ -7,7 +7,6 @@ import fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil; import org.jetbrains.annotations.NotNull; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashSet; diff --git a/src/fr/adrienbrault/idea/symfony2plugin/external/toolbox/provider/ControllerToolboxProvider.java b/src/fr/adrienbrault/idea/symfony2plugin/external/toolbox/provider/ControllerToolboxProvider.java index 4177e2093..d9f371b14 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/external/toolbox/provider/ControllerToolboxProvider.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/external/toolbox/provider/ControllerToolboxProvider.java @@ -14,7 +14,6 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; diff --git a/src/fr/adrienbrault/idea/symfony2plugin/external/toolbox/provider/TwigToolboxProvider.java b/src/fr/adrienbrault/idea/symfony2plugin/external/toolbox/provider/TwigToolboxProvider.java index ca0cf563c..10f26e470 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/external/toolbox/provider/TwigToolboxProvider.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/external/toolbox/provider/TwigToolboxProvider.java @@ -13,7 +13,6 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashSet; diff --git a/src/fr/adrienbrault/idea/symfony2plugin/intentions/xml/XmlServiceSuggestIntention.java b/src/fr/adrienbrault/idea/symfony2plugin/intentions/xml/XmlServiceSuggestIntention.java index 7f421d87c..f96454d9c 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/intentions/xml/XmlServiceSuggestIntention.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/intentions/xml/XmlServiceSuggestIntention.java @@ -6,7 +6,6 @@ import com.intellij.openapi.project.Project; import com.intellij.psi.PsiElement; import com.intellij.psi.util.PsiTreeUtil; -import com.intellij.psi.xml.XmlAttribute; import com.intellij.psi.xml.XmlTag; import com.intellij.util.IncorrectOperationException; import com.intellij.util.containers.ContainerUtil; diff --git a/src/fr/adrienbrault/idea/symfony2plugin/routing/XmlLineMarkerProvider.java b/src/fr/adrienbrault/idea/symfony2plugin/routing/XmlLineMarkerProvider.java index ff28e70f8..9e7509b5d 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/routing/XmlLineMarkerProvider.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/routing/XmlLineMarkerProvider.java @@ -8,14 +8,12 @@ import com.intellij.patterns.XmlTagPattern; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; -import com.intellij.psi.xml.XmlAttribute; import com.intellij.psi.xml.XmlFile; import com.intellij.psi.xml.XmlTag; import fr.adrienbrault.idea.symfony2plugin.Symfony2Icons; import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent; import fr.adrienbrault.idea.symfony2plugin.config.xml.XmlHelper; import fr.adrienbrault.idea.symfony2plugin.util.resource.FileResourceUtil; -import org.apache.commons.lang.StringUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/src/fr/adrienbrault/idea/symfony2plugin/routing/YamlLineMarkerProvider.java b/src/fr/adrienbrault/idea/symfony2plugin/routing/YamlLineMarkerProvider.java index 01eb7e21b..4153700ac 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/routing/YamlLineMarkerProvider.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/routing/YamlLineMarkerProvider.java @@ -13,7 +13,6 @@ import fr.adrienbrault.idea.symfony2plugin.doctrine.metadata.util.DoctrineMetadataUtil; import fr.adrienbrault.idea.symfony2plugin.util.PhpElementsUtil; import fr.adrienbrault.idea.symfony2plugin.util.resource.FileResourceUtil; -import fr.adrienbrault.idea.symfony2plugin.util.yaml.YamlHelper; import org.apache.commons.lang.StringUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/src/fr/adrienbrault/idea/symfony2plugin/templating/TwigPattern.java b/src/fr/adrienbrault/idea/symfony2plugin/templating/TwigPattern.java index b15719843..b0105b652 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/templating/TwigPattern.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/templating/TwigPattern.java @@ -897,20 +897,6 @@ public static ElementPattern getTwigDocSeePattern() { ); } - public static ElementPattern getRoutePattern() { - //noinspection unchecked - return PlatformPatterns - .psiElement(TwigTokenTypes.IDENTIFIER).withText("path") - .beforeLeafSkipping( - PlatformPatterns.or( - PlatformPatterns.psiElement(TwigTokenTypes.WHITE_SPACE), - PlatformPatterns.psiElement(PsiWhiteSpace.class) - ), - PlatformPatterns.psiElement(TwigTokenTypes.LBRACE) - ) - .withLanguage(TwigLanguage.INSTANCE); - } - public static ElementPattern getAutocompletableRoutePattern() { //noinspection unchecked return PlatformPatterns @@ -1171,26 +1157,6 @@ public static ElementPattern getIfConditionVariablePattern() { .withLanguage(TwigLanguage.INSTANCE); } - public static ElementPattern getTwigMacroNamePattern() { - - // {% macro (user) %} - - //noinspection unchecked - return PlatformPatterns - .psiElement(TwigTokenTypes.IDENTIFIER) - .withParent(PlatformPatterns.psiElement( - TwigElementTypes.MACRO_TAG - )) - .afterLeafSkipping( - PlatformPatterns.or( - PlatformPatterns.psiElement(PsiWhiteSpace.class), - PlatformPatterns.psiElement(TwigTokenTypes.WHITE_SPACE) - ), - PlatformPatterns.psiElement(TwigTokenTypes.TAG_NAME).withText("macro") - ) - .withLanguage(TwigLanguage.INSTANCE); - } - public static ElementPattern getTwigTagUseNamePattern() { // {% use '' %} diff --git a/src/fr/adrienbrault/idea/symfony2plugin/templating/TwigTemplateGoToDeclarationHandler.java b/src/fr/adrienbrault/idea/symfony2plugin/templating/TwigTemplateGoToDeclarationHandler.java index b8bf58553..c7181dad3 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/templating/TwigTemplateGoToDeclarationHandler.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/templating/TwigTemplateGoToDeclarationHandler.java @@ -32,7 +32,6 @@ import fr.adrienbrault.idea.symfony2plugin.twig.variable.collector.ControllerDocVariableCollector; import fr.adrienbrault.idea.symfony2plugin.util.PhpElementsUtil; import fr.adrienbrault.idea.symfony2plugin.util.PsiElementUtils; -import fr.adrienbrault.idea.symfony2plugin.util.RegexPsiElementFilter; import org.apache.commons.lang.StringUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -460,14 +459,17 @@ private Collection getFunctions(@NotNull PsiElement psiElement) { return Arrays.asList(PhpElementsUtil.getPsiElementsBySignature(psiElement.getProject(), functions.get(funcName).getSignature())); } + @NotNull private Collection getSets(@NotNull PsiElement psiElement) { String funcName = psiElement.getText(); for(String twigSet: TwigUtil.getSetDeclaration(psiElement.getContainingFile())) { if(twigSet.equals(funcName)) { - return Arrays.asList(PsiTreeUtil.collectElements(psiElement.getContainingFile(), new RegexPsiElementFilter( - TwigTagWithFileReference.class, - "\\{%\\s?set\\s?" + Pattern.quote(funcName) + "\\s?.*") - )); + // @TODO: drop regex + return Arrays.asList(PsiTreeUtil.collectElements(psiElement.getContainingFile(), psiElement1 -> + PlatformPatterns.psiElement(TwigTagWithFileReference.class) + .accepts(psiElement1) && psiElement1.getText() + .matches("\\{%\\s?set\\s?" + Pattern.quote(funcName) + "\\s?.*")) + ); } } diff --git a/src/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigExtensionParser.java b/src/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigExtensionParser.java index abcdf0bdd..2f763b393 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigExtensionParser.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigExtensionParser.java @@ -182,7 +182,7 @@ private Map parseTests(@NotNull Collection phpC for(PhpClass phpClass : phpClasses) { Method method = phpClass.findMethodByName("getTests"); if(method != null) { - parseSimpleTest(method, extensions); + method.acceptChildren(new TwigSimpleTestVisitor(extensions)); } } @@ -312,15 +312,6 @@ private void parseOperators(@NotNull Method method, @NotNull Map filters) { - final PhpClass containingClass = method.getContainingClass(); - if(containingClass == null) { - return; - } - - method.acceptChildren(new TwigSimpleTestVisitor(method, filters)); - } - @NotNull public static Icon getIcon(@NotNull TwigExtensionType twigExtensionType) { if(twigExtensionType == TwigExtensionType.FUNCTION_NODE) { @@ -603,14 +594,10 @@ private void visitNewExpression(@NotNull NewExpression element) { } private static class TwigSimpleTestVisitor extends PsiRecursiveElementWalkingVisitor { - @NotNull - private final Method method; - @NotNull private final Map filters; - TwigSimpleTestVisitor(@NotNull Method method, @NotNull Map filters) { - this.method = method; + TwigSimpleTestVisitor(@NotNull Map filters) { this.filters = filters; } diff --git a/src/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigHtmlCompletionUtil.java b/src/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigHtmlCompletionUtil.java index 6bac83731..8c9413d22 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigHtmlCompletionUtil.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigHtmlCompletionUtil.java @@ -3,9 +3,7 @@ import com.intellij.patterns.*; import com.intellij.psi.PsiElement; import com.intellij.psi.html.HtmlTag; -import com.intellij.psi.xml.XmlTag; import com.intellij.psi.xml.XmlText; -import com.intellij.util.ProcessingContext; import org.jetbrains.annotations.NotNull; /** diff --git a/src/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigUtil.java b/src/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigUtil.java index f6636be8f..f36bbf010 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigUtil.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigUtil.java @@ -1295,58 +1295,6 @@ static String getTemplateNameForTwigPath(@NotNull Project project, @NotNull Twig return templateFinalName; } - /** - * Collects overwritten templates - * - * app/Resources/MyUserBundle/views/layout.html.twig - * src/Acme/UserBundle/Resources/views/layout.html.twig <- getParent = MyUserBundle - */ - private static Collection getTemplateOverwrites(@NotNull Project project, @NotNull String normalizedTemplateName) { - - // Bundle overwrite: - if(normalizedTemplateName.startsWith(":") || normalizedTemplateName.startsWith("@")) { - return Collections.emptyList(); - } - - String templatePath = StringUtils.strip(normalizedTemplateName.replace(":", "/").replace("//", "/"), "/"); - - int i = templatePath.indexOf("Bundle/"); - if( i == -1) { - return Collections.emptyList(); - } - - Collection files = new HashSet<>(); - - String bundle = templatePath.substring(0, i + 6); - - // invalid Bundle in path condition - if(bundle.contains("/")) { - return Collections.emptyList(); - } - - VirtualFile relativeFile = VfsUtil.findRelativeFile( - project.getBaseDir(), - String.format("app/Resources/%s/views/%s", bundle, templatePath.substring(i + 7)).split("/") - ); - - if(relativeFile != null) { - files.add(relativeFile); - } - - // find parent bundles - for (SymfonyBundle symfonyBundle : new SymfonyBundleUtil(project).getBundles()) { - String parentBundle = symfonyBundle.getParentBundleName(); - if(parentBundle != null && bundle.equals(parentBundle)) { - relativeFile = symfonyBundle.getRelative(String.format("Resources/views/%s", templatePath.substring(i + 7))); - if(relativeFile != null) { - files.add(relativeFile); - } - } - } - - return PsiElementUtils.convertVirtualFilesToPsiFiles(project, files); - } - private static void addFileInsideTwigPath(@NotNull Project project, @NotNull String templatePath, @NotNull Collection virtualFiles, @NotNull TwigPath twigPath) { VirtualFile virtualFile = VfsUtil.findRelativeFile(twigPath.getDirectory(project), templatePath.split("/")); diff --git a/src/fr/adrienbrault/idea/symfony2plugin/templating/variable/collector/GlobalExtensionVariableCollector.java b/src/fr/adrienbrault/idea/symfony2plugin/templating/variable/collector/GlobalExtensionVariableCollector.java index 084b78d3e..93fda4232 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/templating/variable/collector/GlobalExtensionVariableCollector.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/templating/variable/collector/GlobalExtensionVariableCollector.java @@ -1,7 +1,6 @@ package fr.adrienbrault.idea.symfony2plugin.templating.variable.collector; import com.intellij.psi.util.PsiTreeUtil; -import com.jetbrains.php.PhpIndex; import com.jetbrains.php.lang.psi.elements.*; import com.jetbrains.php.phpunit.PhpUnitUtil; import fr.adrienbrault.idea.symfony2plugin.templating.util.PhpMethodVariableResolveUtil; @@ -13,7 +12,6 @@ import java.util.Collection; import java.util.Map; -import java.util.Set; /** * @author Daniel Espendiller diff --git a/src/fr/adrienbrault/idea/symfony2plugin/twig/variable/collector/ControllerDocVariableCollector.java b/src/fr/adrienbrault/idea/symfony2plugin/twig/variable/collector/ControllerDocVariableCollector.java index 0c8aa2dc5..be2555d9f 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/twig/variable/collector/ControllerDocVariableCollector.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/twig/variable/collector/ControllerDocVariableCollector.java @@ -14,7 +14,6 @@ import java.util.ArrayList; import java.util.Map; -import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; diff --git a/src/fr/adrienbrault/idea/symfony2plugin/twig/variable/collector/ControllerVariableCollector.java b/src/fr/adrienbrault/idea/symfony2plugin/twig/variable/collector/ControllerVariableCollector.java index ee833c246..7e6792c84 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/twig/variable/collector/ControllerVariableCollector.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/twig/variable/collector/ControllerVariableCollector.java @@ -9,7 +9,6 @@ import org.jetbrains.annotations.NotNull; import java.util.Map; -import java.util.Set; /** * @author Daniel Espendiller diff --git a/src/fr/adrienbrault/idea/symfony2plugin/util/AnnotationBackportUtil.java b/src/fr/adrienbrault/idea/symfony2plugin/util/AnnotationBackportUtil.java index c04f2d6d1..a63fbe8d3 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/util/AnnotationBackportUtil.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/util/AnnotationBackportUtil.java @@ -1,16 +1,11 @@ package fr.adrienbrault.idea.symfony2plugin.util; -import com.intellij.patterns.PlatformPatterns; -import com.intellij.patterns.PsiElementPattern; import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiWhiteSpace; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.util.containers.ContainerUtil; import com.jetbrains.php.codeInsight.PhpCodeInsightUtil; import com.jetbrains.php.lang.PhpLangUtil; import com.jetbrains.php.lang.documentation.phpdoc.PhpDocUtil; -import com.jetbrains.php.lang.documentation.phpdoc.lexer.PhpDocTokenTypes; -import com.jetbrains.php.lang.documentation.phpdoc.parser.PhpDocElementTypes; import com.jetbrains.php.lang.documentation.phpdoc.psi.PhpDocComment; import com.jetbrains.php.lang.documentation.phpdoc.psi.tags.PhpDocTag; import com.jetbrains.php.lang.psi.PhpPsiUtil; diff --git a/src/fr/adrienbrault/idea/symfony2plugin/util/EventDispatcherTypeProvider.java b/src/fr/adrienbrault/idea/symfony2plugin/util/EventDispatcherTypeProvider.java index 98cbd7982..b1d7da9f5 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/util/EventDispatcherTypeProvider.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/util/EventDispatcherTypeProvider.java @@ -1,6 +1,5 @@ package fr.adrienbrault.idea.symfony2plugin.util; -import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiElement; import com.jetbrains.php.PhpIndex; diff --git a/src/fr/adrienbrault/idea/symfony2plugin/util/PhpElementsUtil.java b/src/fr/adrienbrault/idea/symfony2plugin/util/PhpElementsUtil.java index e1d8ac1e2..2c4e9d6bc 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/util/PhpElementsUtil.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/util/PhpElementsUtil.java @@ -198,29 +198,6 @@ static public Method getClassMethod(@NotNull Project project, @NotNull String ph return null; } - static public boolean isMethodWithFirstString(PsiElement psiElement, String... methodName) { - - // filter out method calls without parameter - // $this->methodName('service_name') - // withName is not working, so simulate it in a hack - if(!PlatformPatterns - .psiElement(PhpElementTypes.METHOD_REFERENCE) - .withChild(PlatformPatterns - .psiElement(PhpElementTypes.PARAMETER_LIST) - .withFirstChild(PlatformPatterns - .psiElement(PhpElementTypes.STRING) - ) - ).accepts(psiElement)) { - - return false; - } - - // cant we move it up to PlatformPatterns? withName condition dont looks working - String methodRefName = ((MethodReference) psiElement).getName(); - - return null != methodRefName && Arrays.asList(methodName).contains(methodRefName); - } - /** * $this->methodName('service_name') * $this->methodName(SERVICE::NAME) @@ -295,22 +272,6 @@ static public PsiElementPattern.Capture getClassNamePattern() { .withLanguage(PhpLanguage.INSTANCE); } - /** - * public function indexAction() - */ - static public PsiElementPattern.Capture getActionMethodPattern() { - return PlatformPatterns - .psiElement(PhpTokenTypes.IDENTIFIER).withText( - PlatformPatterns.string().endsWith("Action") - ) - .afterLeafSkipping( - PlatformPatterns.psiElement(PsiWhiteSpace.class), - PlatformPatterns.psiElement(PhpTokenTypes.kwFUNCTION) - ) - .inside(Method.class) - .withLanguage(PhpLanguage.INSTANCE); - } - /** * return 'value' inside class method */ @@ -325,20 +286,6 @@ static public ElementPattern getMethodReturnPattern() { ); } - /** - * Search for class with returns a string on a given method name - */ - @Nullable - static public PhpClass findSubclassWithMethodReturnString(@NotNull Project project, @NotNull String subClass, @NotNull String methodName, @NotNull String returnString) { - for (PhpClass phpClass : PhpIndex.getInstance(project).getAllSubclasses(subClass)) { - if(returnString.equals(getMethodReturnAsString(phpClass, methodName))) { - return phpClass; - } - } - - return null; - } - /** * Find a string return value of a method context "function() { return 'foo'}" * First match wins @@ -485,33 +432,6 @@ static public boolean isEqualMethodReferenceName(MethodReference methodReference return name != null && name.equals(methodName); } - static public PsiElement findArrayKeyValueInsideReference(PsiElement psiElement, String methodReferenceName, String keyName) { - - if(psiElement == null) { - return null; - } - - Collection tests = PsiTreeUtil.findChildrenOfType(psiElement, MethodReference.class); - for(MethodReference methodReference: tests) { - - // instance check - // methodReference.getSignature().equals("#M#C\\Symfony\\Component\\OptionsResolver\\OptionsResolverInterface.setDefaults") - if(PhpElementsUtil.isEqualMethodReferenceName(methodReference, methodReferenceName)) { - PsiElement[] parameters = methodReference.getParameters(); - if(parameters.length > 0 && parameters[0] instanceof ArrayCreationExpression) { - PsiElement keyValue = PhpElementsUtil.getArrayValue((ArrayCreationExpression) parameters[0], keyName); - if(keyValue != null) { - return keyValue; - } - } - - } - - } - - return null; - } - @Nullable static public PsiElement getArrayKeyValueInsideSignaturePsi(PsiElement psiElementInsideClass, String callTo[], String methodName, String keyName) { PhpClass phpClass = PsiTreeUtil.getParentOfType(psiElementInsideClass, PhpClass.class); @@ -1329,11 +1249,6 @@ public static Set getVariablesInScope(@NotNull PsiElement psiElement, return MyVariableRecursiveElementVisitor.visit(psiElement, variable.getName()); } - @NotNull - public static Set getVariablesInScope(@NotNull PsiElement psiElement, @NotNull String name) { - return MyVariableRecursiveElementVisitor.visit(psiElement, name); - } - /** * Provide array key pattern. we need incomplete array key support, too. * diff --git a/src/fr/adrienbrault/idea/symfony2plugin/util/RegexPsiElementFilter.java b/src/fr/adrienbrault/idea/symfony2plugin/util/RegexPsiElementFilter.java deleted file mode 100644 index 849793e63..000000000 --- a/src/fr/adrienbrault/idea/symfony2plugin/util/RegexPsiElementFilter.java +++ /dev/null @@ -1,42 +0,0 @@ -package fr.adrienbrault.idea.symfony2plugin.util; - -import com.intellij.patterns.PlatformPatterns; -import com.intellij.psi.PsiElement; -import com.intellij.psi.tree.IElementType; -import com.intellij.psi.util.PsiElementFilter; -import org.intellij.lang.annotations.RegExp; - -/** - * @author Daniel Espendiller - */ -public class RegexPsiElementFilter implements PsiElementFilter { - - private Class aClass; - private IElementType elementType; - - - @RegExp - private String regex; - - public RegexPsiElementFilter(Class aClass, @RegExp String regex) { - this.aClass = aClass; - this.regex = regex; - } - - public RegexPsiElementFilter(IElementType elementType, @RegExp String regex) { - this.elementType = elementType; - this.regex = regex; - } - - @Override - public boolean isAccepted(PsiElement psiElement) { - if(this.aClass != null) { - return PlatformPatterns.psiElement(this.aClass).accepts(psiElement) - && psiElement.getText().matches(this.regex); - } - - return PlatformPatterns.psiElement(this.elementType).accepts(psiElement) - && psiElement.getText().matches(this.regex); - } - -} \ No newline at end of file diff --git a/src/fr/adrienbrault/idea/symfony2plugin/util/controller/ControllerIndex.java b/src/fr/adrienbrault/idea/symfony2plugin/util/controller/ControllerIndex.java index 8ffd98021..be64e3f36 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/util/controller/ControllerIndex.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/util/controller/ControllerIndex.java @@ -68,17 +68,6 @@ public ControllerAction getControllerActionOnService(String shortcutName) { return new ControllerAction(serviceId, method); } - @Nullable - private ControllerAction getControllerAction(String shortcutName) { - for(ControllerAction controllerAction: this.getActions()) { - if(controllerAction.getShortcutName().equals(shortcutName)) { - return controllerAction; - } - } - - return null; - } - private List getActionMethods(SymfonyBundle symfonyBundle) { String namespaceName = symfonyBundle.getNamespaceName(); diff --git a/src/fr/adrienbrault/idea/symfony2plugin/util/dict/PhpTypeCache.java b/src/fr/adrienbrault/idea/symfony2plugin/util/dict/PhpTypeCache.java deleted file mode 100644 index 9c1ccac62..000000000 --- a/src/fr/adrienbrault/idea/symfony2plugin/util/dict/PhpTypeCache.java +++ /dev/null @@ -1,94 +0,0 @@ -package fr.adrienbrault.idea.symfony2plugin.util.dict; - -import com.intellij.psi.PsiElement; -import com.jetbrains.php.lang.psi.elements.MethodReference; -import com.jetbrains.php.lang.psi.resolve.types.PhpType; -import org.jetbrains.annotations.Nullable; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author Daniel Espendiller - */ -public class PhpTypeCache { - - private HashMap phpTypes = new HashMap<>(); - private HashMap lastCacheHit = new HashMap<>(); - private long lastCacheHitCheckTime; - - public PhpTypeCache() { - this.lastCacheHitCheckTime = System.currentTimeMillis(); - } - - public boolean hasSignature(Integer signature) { - return this.phpTypes.containsKey(signature); - } - - public boolean hasSignature(MethodReference methodReference) { - return this.hasSignature(methodReference.hashCode()); - } - - public boolean hasSignature(PsiElement psiElement) { - return psiElement instanceof MethodReference && this.hasSignature((MethodReference) psiElement); - } - - @Nullable - public PhpType getSignatureCache(Integer signature) { - this.lastCacheHit.put(signature, System.currentTimeMillis()); - return this.phpTypes.get(signature); - } - - @Nullable - public PhpType getSignatureCache(MethodReference methodReference) { - return this.getSignatureCache(methodReference.hashCode()); - } - @Nullable - public PhpType getSignatureCache(PsiElement psiElement) { - - if(psiElement instanceof MethodReference) { - return this.getSignatureCache((MethodReference) psiElement); - } - - return null; - } - - public void setSignatureCache(MethodReference methodReference, PhpType phpType) { - this.lastCacheHit.put(methodReference.hashCode(), System.currentTimeMillis()); - this.phpTypes.put(methodReference.hashCode(), phpType); - } - - public void setSignatureCache(PsiElement psiElement, PhpType phpType) { - if(psiElement instanceof MethodReference) { - this.setSignatureCache((MethodReference) psiElement, phpType); - } - } - - public PhpType addSignatureCache(PsiElement psiElement, PhpType phpType) { - if(psiElement instanceof MethodReference) { - this.setSignatureCache((MethodReference) psiElement, phpType); - } - - return phpType; - } - - public HashMap getCachedTypes() { - return this.phpTypes; - } - - public long getLastCacheHitCheckTime() { - return this.lastCacheHitCheckTime; - } - - public void removeExpiredTypes(Long expiredTime) { - - for(Map.Entry entrySet: this.lastCacheHit.entrySet()) { - if(entrySet.getValue() < expiredTime) { - this.phpTypes.remove(entrySet.getKey()); - } - } - - this.lastCacheHitCheckTime = System.currentTimeMillis(); - } - -} diff --git a/src/fr/adrienbrault/idea/symfony2plugin/util/dict/ServiceUtil.java b/src/fr/adrienbrault/idea/symfony2plugin/util/dict/ServiceUtil.java index 3351ce802..33a7412f8 100644 --- a/src/fr/adrienbrault/idea/symfony2plugin/util/dict/ServiceUtil.java +++ b/src/fr/adrienbrault/idea/symfony2plugin/util/dict/ServiceUtil.java @@ -645,7 +645,7 @@ private static Collection getParameterParametersInner(@NotNull Project p * */ @NotNull - public static RelatedItemLineMarkerInfo getLineMarkerForDecoratesServiceId(@NotNull PsiElement psiElement, @NotNull String decorates, @NotNull Collection result) { + public static RelatedItemLineMarkerInfo getLineMarkerForDecoratesServiceId(@NotNull PsiElement psiElement, @NotNull String decorates) { return NavigationGutterIconBuilder.create(PhpIcons.OVERRIDEN) .setTargets(ServiceIndexUtil.getServiceIdDefinitionLazyValue(psiElement.getProject(), Collections.singletonList(decorates))) .setTooltipText("Navigate to decorated service")