Skip to content

Commit 3048700

Browse files
authored
Merge pull request #1115 from Haehnchen/feature/twig-array-usage
cleanup Twig file array usage
2 parents 15a695b + 2f1d53b commit 3048700

18 files changed

+79
-81
lines changed

src/fr/adrienbrault/idea/symfony2plugin/completion/xml/XmlGotoCompletionRegistrar.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,7 @@
3434
import org.jetbrains.annotations.NotNull;
3535
import org.jetbrains.annotations.Nullable;
3636

37-
import java.util.ArrayList;
38-
import java.util.Arrays;
39-
import java.util.Collection;
40-
import java.util.Collections;
37+
import java.util.*;
4138
import java.util.stream.Collectors;
4239

4340
/**
@@ -312,9 +309,7 @@ public Collection<PsiElement> getPsiTargets(PsiElement element) {
312309
return Collections.emptyList();
313310
}
314311

315-
return Arrays.asList(
316-
TwigUtil.getTemplatePsiElements(getElement().getProject(), xmlAttributeValue)
317-
);
312+
return new HashSet<>(TwigUtil.getTemplatePsiElements(getElement().getProject(), xmlAttributeValue));
318313
}
319314
};
320315
}

src/fr/adrienbrault/idea/symfony2plugin/config/yaml/YamlGoToDeclarationHandler.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public PsiElement[] getGotoDeclarationTargets(PsiElement psiElement, int i, Edit
7474
}
7575

7676
if(psiText.endsWith(".twig") || psiText.endsWith(".php")) {
77-
targets.addAll(templateGoto(psiElement, psiText));
77+
targets.addAll(TwigUtil.getTemplatePsiElements(psiElement.getProject(), psiText));
7878
}
7979

8080
if(psiText.matches("^[\\w_.]+") && getGlobalServiceStringPattern().accepts(psiElement)) {
@@ -224,11 +224,6 @@ private Collection<PsiElement> parameterGoToDeclaration(@NotNull PsiElement psiE
224224
return targets;
225225
}
226226

227-
@NotNull
228-
private Collection<PsiFile> templateGoto(@NotNull PsiElement psiElement, @NotNull String templateName) {
229-
return Arrays.asList(TwigUtil.getTemplatePsiElements(psiElement.getProject(), templateName));
230-
}
231-
232227
@NotNull
233228
private Collection<PsiElement> constantGoto(@NotNull PsiElement psiElement, @NotNull String tagName) {
234229
String constantName = tagName.substring(11);

src/fr/adrienbrault/idea/symfony2plugin/external/locator/TwigFileToolboxTargetLocator.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil;
88
import org.jetbrains.annotations.NotNull;
99

10+
import java.util.Arrays;
1011
import java.util.Collection;
1112
import java.util.Collections;
1213
import java.util.HashSet;
@@ -27,8 +28,6 @@ public Collection<PsiElement> getTargets(@NotNull TargetLocatorParameter paramet
2728
return Collections.emptyList();
2829
}
2930

30-
Collection<PsiElement> psiElements = new HashSet<>();
31-
Collections.addAll(psiElements, TwigUtil.getTemplatePsiElements(parameter.getProject(), target));
32-
return psiElements;
31+
return new HashSet<>(TwigUtil.getTemplatePsiElements(parameter.getProject(), target));
3332
}
3433
}

src/fr/adrienbrault/idea/symfony2plugin/external/toolbox/provider/TwigToolboxProvider.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.jetbrains.annotations.Nullable;
1414

1515
import javax.swing.*;
16+
import java.util.Arrays;
1617
import java.util.Collection;
1718
import java.util.Collections;
1819
import java.util.HashSet;
@@ -38,9 +39,7 @@ public Collection<PsiElement> getPsiTargets(@NotNull PhpToolboxDeclarationHandle
3839
return Collections.emptyList();
3940
}
4041

41-
Collection<PsiElement> psiElements = new HashSet<>();
42-
Collections.addAll(psiElements, TwigUtil.getTemplatePsiElements(parameter.getProject(), parameter.getContents()));
43-
return psiElements;
42+
return new HashSet<>(TwigUtil.getTemplatePsiElements(parameter.getProject(), parameter.getContents()));
4443
}
4544

4645
@NotNull
@@ -59,7 +58,6 @@ public Icon getIcon() {
5958
return TwigIcons.TwigFileIcon;
6059
}
6160

62-
@Nullable
6361
@Override
6462
public String getDescription() {
6563
return "Templates";

src/fr/adrienbrault/idea/symfony2plugin/navigation/TemplateFileContributor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import icons.TwigIcons;
99
import org.jetbrains.annotations.NotNull;
1010

11-
import java.util.Arrays;
1211
import java.util.Collection;
1312

1413
/**
@@ -33,7 +32,8 @@ public NavigationItem[] getItemsByName(String templateName, String s2, Project p
3332
return new NavigationItem[0];
3433
}
3534

36-
return Arrays.stream(TwigUtil.getTemplatePsiElements(project, templateName))
35+
return TwigUtil.getTemplatePsiElements(project, templateName)
36+
.stream()
3737
.map(psiFile ->
3838
new NavigationItemEx(psiFile, templateName, TwigIcons.TwigFileIcon, "Template", false)
3939
)

src/fr/adrienbrault/idea/symfony2plugin/navigation/controller/TemplatesControllerRelatedGotoCollector.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.intellij.openapi.util.Pair;
44
import com.intellij.psi.PsiElement;
5+
import com.intellij.psi.PsiFile;
56
import com.intellij.psi.util.PsiTreeUtil;
67
import com.jetbrains.php.lang.documentation.phpdoc.psi.PhpDocComment;
78
import com.jetbrains.php.lang.documentation.phpdoc.psi.tags.PhpDocTag;
@@ -19,10 +20,7 @@
1920
import icons.TwigIcons;
2021
import org.jetbrains.annotations.NotNull;
2122

22-
import java.util.Collection;
23-
import java.util.HashSet;
24-
import java.util.Map;
25-
import java.util.Set;
23+
import java.util.*;
2624
import java.util.function.Consumer;
2725

2826
/**
@@ -57,7 +55,7 @@ public void collectGotoRelatedItems(ControllerActionGotoRelatedCollectorParamete
5755
String resolveString = PhpElementsUtil.getStringValue(psiElement);
5856
if(resolveString != null && !uniqueTemplates.contains(resolveString)) {
5957
uniqueTemplates.add(resolveString);
60-
for(PsiElement templateTarget: TwigUtil.getTemplatePsiElements(parameter.getProject(), resolveString)) {
58+
for(PsiFile templateTarget: TwigUtil.getTemplatePsiElements(parameter.getProject(), resolveString)) {
6159
parameter.add(new RelatedPopupGotoLineMarker.PopupGotoRelatedItem(templateTarget, resolveString).withIcon(TwigIcons.TwigFileIcon, Symfony2Icons.TWIG_LINE_MARKER));
6260
}
6361
}
@@ -68,7 +66,7 @@ public void collectGotoRelatedItems(ControllerActionGotoRelatedCollectorParamete
6866
/**
6967
* Visit every possible template on given method: eg Annotations @Template()
7068
*/
71-
public static void visitMethodTemplateNames(@NotNull Method method, @NotNull Consumer<Pair<String, PsiElement[]>> consumer) {
69+
public static void visitMethodTemplateNames(@NotNull Method method, @NotNull Consumer<Pair<String, Collection<PsiElement>>> consumer) {
7270
// on @Template annotation
7371
PhpDocComment phpDocComment = method.getDocComment();
7472
if(phpDocComment != null) {
@@ -81,7 +79,7 @@ public static void visitMethodTemplateNames(@NotNull Method method, @NotNull Con
8179
// resolve annotation and check for template
8280
PhpClass phpClass = AnnotationBackportUtil.getAnnotationReference(phpDocTag, importMap);
8381
if(phpClass != null && PhpElementsUtil.isEqualClassName(phpClass, TwigUtil.TEMPLATE_ANNOTATION_CLASS)) {
84-
Pair<String, PsiElement[]> templateAnnotationFiles = TwigUtil.getTemplateAnnotationFiles(phpDocTag);
82+
Pair<String, Collection<PsiElement>> templateAnnotationFiles = TwigUtil.getTemplateAnnotationFiles(phpDocTag);
8583
if(templateAnnotationFiles != null) {
8684
consumer.accept(Pair.create(templateAnnotationFiles.getFirst(), templateAnnotationFiles.getSecond()));
8785
}
@@ -93,7 +91,10 @@ public static void visitMethodTemplateNames(@NotNull Method method, @NotNull Con
9391

9492
// on method name
9593
for (String templateName : TwigUtil.getControllerMethodShortcut(method)) {
96-
consumer.accept(Pair.create(templateName, TwigUtil.getTemplatePsiElements(method.getProject(), templateName)));
94+
consumer.accept(Pair.create(
95+
templateName,
96+
new HashSet<>(TwigUtil.getTemplatePsiElements(method.getProject(), templateName))
97+
));
9798
}
9899
}
99100
}

src/fr/adrienbrault/idea/symfony2plugin/profiler/widget/action/SymfonyProfilerWidgetActions.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@
2020
import javax.swing.*;
2121
import java.awt.*;
2222
import java.net.URL;
23-
import java.util.Arrays;
24-
import java.util.List;
23+
import java.util.Collection;
2524

2625
/**
2726
* @author Daniel Espendiller <daniel@espendiller.net>
@@ -41,11 +40,11 @@ public TemplateAction(Project project, @Nullable String text) {
4140

4241
@Override
4342
public void actionPerformed(AnActionEvent e) {
44-
List<PsiFile> psiFiles = Arrays.asList(TwigUtil.getTemplatePsiElements(project, templateName));
43+
Collection<PsiFile> psiFiles = TwigUtil.getTemplatePsiElements(project, templateName);
4544

4645
// @TODO: multiple targets?
4746
if(psiFiles.size() > 0) {
48-
IdeHelper.navigateToPsiElement(psiFiles.get(0));
47+
IdeHelper.navigateToPsiElement(psiFiles.iterator().next());
4948
}
5049
}
5150
}

src/fr/adrienbrault/idea/symfony2plugin/templating/PhpTemplateMissingInspection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ private String getTemplateNameIfMissing(@NotNull PsiElement psiElement) {
6868
return null;
6969
}
7070

71-
if(TwigUtil.getTemplatePsiElements(psiElement.getProject(), templateName).length > 0) {
71+
if(TwigUtil.getTemplateFiles(psiElement.getProject(), templateName).size() > 0) {
7272
return null;
7373
}
7474

src/fr/adrienbrault/idea/symfony2plugin/templating/TemplateGotoCompletionRegistrar.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
import fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil;
88
import org.jetbrains.annotations.NotNull;
99

10-
import java.util.Arrays;
1110
import java.util.Collection;
1211
import java.util.Collections;
12+
import java.util.HashSet;
1313

1414
/**
1515
* @author Daniel Espendiller <daniel@espendiller.net>
@@ -33,8 +33,6 @@ public Collection<PsiElement> getPsiTargets(PsiElement element) {
3333
return Collections.emptyList();
3434
}
3535

36-
return Arrays.asList(
37-
TwigUtil.getTemplatePsiElements(getElement().getProject(), templateName)
38-
);
36+
return new HashSet<>(TwigUtil.getTemplatePsiElements(getElement().getProject(), templateName));
3937
}
4038
}

src/fr/adrienbrault/idea/symfony2plugin/templating/TwigTemplateCompletionContributor.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,7 @@
4949
import org.apache.commons.lang.StringUtils;
5050
import org.jetbrains.annotations.NotNull;
5151

52-
import java.util.Arrays;
53-
import java.util.List;
54-
import java.util.Map;
52+
import java.util.*;
5553
import java.util.function.Function;
5654
import java.util.stream.Collectors;
5755

@@ -138,7 +136,7 @@ public void addCompletions(@NotNull CompletionParameters parameters, ProcessingC
138136

139137
// {% from _self
140138
if(psiElement.getNode().getElementType() == TwigTokenTypes.RESERVED_ID) {
141-
attachLookupElements(resultSet, new PsiFile[]{psiElement.getContainingFile()});
139+
attachLookupElements(resultSet, Collections.singletonList(psiElement.getContainingFile()));
142140
return;
143141
}
144142

@@ -147,15 +145,15 @@ public void addCompletions(@NotNull CompletionParameters parameters, ProcessingC
147145
return;
148146
}
149147

150-
PsiFile[] twigFilesByName = TwigUtil.getTemplatePsiElements(parameters.getPosition().getProject(), templateName);
151-
if(twigFilesByName.length == 0) {
148+
Collection<PsiFile> twigFilesByName = TwigUtil.getTemplatePsiElements(parameters.getPosition().getProject(), templateName);
149+
if(twigFilesByName.size() == 0) {
152150
return;
153151
}
154152

155153
attachLookupElements(resultSet, twigFilesByName);
156154
}
157155

158-
private void attachLookupElements(@NotNull CompletionResultSet resultSet, PsiFile[] psiFiles) {
156+
private void attachLookupElements(@NotNull CompletionResultSet resultSet, Collection<PsiFile> psiFiles) {
159157
for (PsiFile psiFile : psiFiles) {
160158
for (TwigMacroTagInterface entry: TwigUtil.getMacros(psiFile)) {
161159
resultSet.addElement(LookupElementBuilder.create(entry.getName()).withTypeText(entry.getParameters(), true).withIcon(TwigIcons.TwigFileIcon));
@@ -576,7 +574,7 @@ public void addCompletions(@NotNull CompletionParameters parameters, ProcessingC
576574
CompletionResultSet myResultSet = resultSet.withPrefixMatcher(blockNamePrefix);
577575

578576
// collect blocks in all related files
579-
Pair<PsiFile[], Boolean> scopedContext = TwigUtil.findScopedFile(position);
577+
Pair<Collection<PsiFile>, Boolean> scopedContext = TwigUtil.findScopedFile(position);
580578

581579
myResultSet.addAllElements(TwigUtil.getBlockLookupElements(
582580
position.getProject(),

0 commit comments

Comments
 (0)