Skip to content

Commit 3e14abd

Browse files
committed
move Symfony related Twig variable collector into its own package
1 parent 4823393 commit 3e14abd

18 files changed

+66
-58
lines changed

META-INF/plugin.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -597,13 +597,13 @@
597597

598598
<TwigVariableCollector implementation="fr.adrienbrault.idea.symfony2plugin.templating.variable.collector.StaticVariableCollector"/>
599599
<TwigVariableCollector implementation="fr.adrienbrault.idea.symfony2plugin.templating.variable.collector.GlobalExtensionVariableCollector"/>
600-
<TwigVariableCollector implementation="fr.adrienbrault.idea.symfony2plugin.templating.variable.collector.ControllerDocVariableCollector"/>
601-
<TwigVariableCollector implementation="fr.adrienbrault.idea.symfony2plugin.templating.variable.collector.ServiceContainerVariableCollector"/>
600+
<TwigVariableCollector implementation="fr.adrienbrault.idea.symfony2plugin.twig.variable.collector.ControllerDocVariableCollector"/>
601+
<TwigVariableCollector implementation="fr.adrienbrault.idea.symfony2plugin.twig.variable.collector.ServiceContainerGlobalVariableCollector"/>
602602
<TwigVariableCollector implementation="fr.adrienbrault.idea.symfony2plugin.templating.variable.collector.FileDocVariableCollector"/>
603-
<TwigVariableCollector implementation="fr.adrienbrault.idea.symfony2plugin.templating.variable.collector.ControllerVariableCollector"/>
603+
<TwigVariableCollector implementation="fr.adrienbrault.idea.symfony2plugin.twig.variable.collector.ControllerVariableCollector"/>
604604
<TwigVariableCollector implementation="fr.adrienbrault.idea.symfony2plugin.templating.variable.collector.IncludeVariableCollector"/>
605605
<TwigVariableCollector implementation="fr.adrienbrault.idea.symfony2plugin.templating.variable.collector.MarcoScopeVariableCollector"/>
606-
<TwigVariableCollector implementation="fr.adrienbrault.idea.symfony2plugin.templating.variable.collector.GlobalTwigConfigVariableCollector"/>
606+
<TwigVariableCollector implementation="fr.adrienbrault.idea.symfony2plugin.twig.variable.collector.GlobalTwigConfigVariableCollector"/>
607607
</extensions>
608608

609609
<depends>com.jetbrains.twig</depends>

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
* @author Daniel Espendiller <daniel@espendiller.net>
1414
*/
1515
public class PhpTwigMethodLookupElement extends PhpLookupElement {
16+
PhpTwigMethodLookupElement(@NotNull PhpNamedElement namedElement) {
17+
super(namedElement);
18+
}
1619

1720
@Override
1821
public void handleInsert(InsertionContext context) {
@@ -32,10 +35,6 @@ public void renderElement(LookupElementPresentation presentation) {
3235

3336
}
3437

35-
public PhpTwigMethodLookupElement(@NotNull PhpNamedElement namedElement) {
36-
super(namedElement);
37-
}
38-
3938
@NotNull
4039
public String getLookupString() {
4140
String lookupString = super.getLookupString();

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@
2626
import fr.adrienbrault.idea.symfony2plugin.routing.RouteHelper;
2727
import fr.adrienbrault.idea.symfony2plugin.templating.completion.QuotedInsertionLookupElement;
2828
import fr.adrienbrault.idea.symfony2plugin.templating.dict.*;
29-
import fr.adrienbrault.idea.symfony2plugin.templating.globals.TwigGlobalEnum;
30-
import fr.adrienbrault.idea.symfony2plugin.templating.globals.TwigGlobalVariable;
31-
import fr.adrienbrault.idea.symfony2plugin.templating.globals.TwigGlobalsServiceParser;
29+
import fr.adrienbrault.idea.symfony2plugin.twig.variable.globals.TwigGlobalEnum;
30+
import fr.adrienbrault.idea.symfony2plugin.twig.variable.globals.TwigGlobalVariable;
31+
import fr.adrienbrault.idea.symfony2plugin.twig.variable.globals.TwigGlobalsServiceParser;
3232
import fr.adrienbrault.idea.symfony2plugin.templating.util.TwigExtensionParser;
3333
import fr.adrienbrault.idea.symfony2plugin.templating.util.TwigTypeResolveUtil;
3434
import fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil;
3535
import fr.adrienbrault.idea.symfony2plugin.templating.variable.TwigTypeContainer;
36-
import fr.adrienbrault.idea.symfony2plugin.templating.variable.collector.ControllerDocVariableCollector;
36+
import fr.adrienbrault.idea.symfony2plugin.twig.variable.collector.ControllerDocVariableCollector;
3737
import fr.adrienbrault.idea.symfony2plugin.templating.variable.dict.PsiVariable;
3838
import fr.adrienbrault.idea.symfony2plugin.translation.dict.TranslationUtil;
3939
import fr.adrienbrault.idea.symfony2plugin.util.PhpElementsUtil;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import fr.adrienbrault.idea.symfony2plugin.templating.util.TwigTypeResolveUtil;
3030
import fr.adrienbrault.idea.symfony2plugin.templating.util.TwigUtil;
3131
import fr.adrienbrault.idea.symfony2plugin.templating.variable.TwigTypeContainer;
32-
import fr.adrienbrault.idea.symfony2plugin.templating.variable.collector.ControllerDocVariableCollector;
32+
import fr.adrienbrault.idea.symfony2plugin.twig.variable.collector.ControllerDocVariableCollector;
3333
import fr.adrienbrault.idea.symfony2plugin.translation.dict.TranslationUtil;
3434
import fr.adrienbrault.idea.symfony2plugin.util.PhpElementsUtil;
3535
import fr.adrienbrault.idea.symfony2plugin.util.PsiElementUtils;
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package fr.adrienbrault.idea.symfony2plugin.templating.variable;
22

33
import fr.adrienbrault.idea.symfony2plugin.templating.variable.dict.PsiVariable;
4+
import org.jetbrains.annotations.NotNull;
45

56
import java.util.Map;
67
import java.util.Set;
@@ -10,10 +11,9 @@
1011
*/
1112
public interface TwigFileVariableCollector {
1213

13-
default void collect(TwigFileVariableCollectorParameter parameter, Map<String, Set<String>> variables) {}
14+
default void collect(@NotNull TwigFileVariableCollectorParameter parameter, @NotNull Map<String, Set<String>> variables) {}
1415

1516
interface TwigFileVariableCollectorExt {
16-
void collectVars(TwigFileVariableCollectorParameter parameter, Map<String, PsiVariable> variables);
17+
void collectVars(@NotNull TwigFileVariableCollectorParameter parameter, @NotNull Map<String, PsiVariable> variables);
1718
}
18-
1919
}

src/fr/adrienbrault/idea/symfony2plugin/templating/variable/collector/FileDocVariableCollector.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import fr.adrienbrault.idea.symfony2plugin.templating.util.TwigTypeResolveUtil;
55
import fr.adrienbrault.idea.symfony2plugin.templating.variable.TwigFileVariableCollector;
66
import fr.adrienbrault.idea.symfony2plugin.templating.variable.TwigFileVariableCollectorParameter;
7+
import org.jetbrains.annotations.NotNull;
78

89
import java.util.*;
910

@@ -13,7 +14,7 @@
1314
public class FileDocVariableCollector implements TwigFileVariableCollector {
1415

1516
@Override
16-
public void collect(TwigFileVariableCollectorParameter parameter, Map<String, Set<String>> variables) {
17+
public void collect(@NotNull TwigFileVariableCollectorParameter parameter, @NotNull Map<String, Set<String>> variables) {
1718
if(!(parameter.getElement().getContainingFile() instanceof TwigFile)) {
1819
return;
1920
}

src/fr/adrienbrault/idea/symfony2plugin/templating/variable/collector/GlobalExtensionVariableCollector.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import fr.adrienbrault.idea.symfony2plugin.templating.variable.TwigFileVariableCollector;
1010
import fr.adrienbrault.idea.symfony2plugin.templating.variable.TwigFileVariableCollectorParameter;
1111
import fr.adrienbrault.idea.symfony2plugin.templating.variable.dict.PsiVariable;
12+
import org.jetbrains.annotations.NotNull;
1213

1314
import java.util.Collection;
1415
import java.util.Map;
@@ -19,7 +20,7 @@
1920
*/
2021
public class GlobalExtensionVariableCollector implements TwigFileVariableCollector, TwigFileVariableCollector.TwigFileVariableCollectorExt {
2122
@Override
22-
public void collectVars(TwigFileVariableCollectorParameter parameter, Map<String, PsiVariable> variables) {
23+
public void collectVars(@NotNull TwigFileVariableCollectorParameter parameter, @NotNull Map<String, PsiVariable> variables) {
2324
for(PhpClass phpClass : TwigUtil.getTwigExtensionClasses(parameter.getProject())) {
2425
if(!PhpUnitUtil.isPhpUnitTestFile(phpClass.getContainingFile())) {
2526
Method method = phpClass.findMethodByName("getGlobals");

src/fr/adrienbrault/idea/symfony2plugin/templating/variable/collector/IncludeVariableCollector.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
public class IncludeVariableCollector implements TwigFileVariableCollector, TwigFileVariableCollector.TwigFileVariableCollectorExt {
3737

3838
@Override
39-
public void collectVars(final TwigFileVariableCollectorParameter parameter, final Map<String, PsiVariable> variables) {
39+
public void collectVars(@NotNull final TwigFileVariableCollectorParameter parameter, @NotNull final Map<String, PsiVariable> variables) {
4040

4141
final PsiFile psiFile = parameter.getElement().getContainingFile();
4242
if(!(psiFile instanceof TwigFile) || PsiTreeUtil.getChildOfType(psiFile, TwigExtendsTag.class) != null) {
@@ -49,15 +49,13 @@ public void collectVars(final TwigFileVariableCollectorParameter parameter, fina
4949
}
5050

5151
for(VirtualFile virtualFile: files) {
52-
5352
PsiFile twigFile = PsiManager.getInstance(parameter.getProject()).findFile(virtualFile);
5453
if(!(twigFile instanceof TwigFile)) {
5554
continue;
5655
}
5756

5857
twigFile.acceptChildren(new MyPsiRecursiveElementWalkingVisitor(psiFile, variables, parameter));
5958
}
60-
6159
}
6260

6361
private void collectIncludeContextVars(IElementType iElementType, PsiElement tag, PsiElement templatePsiName, Map<String, PsiVariable> variables, Set<VirtualFile> visitedFiles) {
@@ -134,10 +132,10 @@ private void collectIncludeContextVars(IElementType iElementType, PsiElement tag
134132
}
135133
}
136134
}
137-
138135
}
139136

140-
public static Map<String, String> getIncludeWithVarNames(String includeText) {
137+
@NotNull
138+
private static Map<String, String> getIncludeWithVarNames(String includeText) {
141139

142140
String regex = "with\\s*\\{\\s*(.*[^%])\\}\\s*";
143141
Matcher matcher = Pattern.compile(regex).matcher(includeText.replace("\r\n", " ").replace("\n", " "));
@@ -150,7 +148,8 @@ public static Map<String, String> getIncludeWithVarNames(String includeText) {
150148
return new HashMap<>();
151149
}
152150

153-
private static Map<String, String> getVariableAliasMap(String jsonLike) {
151+
@NotNull
152+
private static Map<String, String> getVariableAliasMap(@NotNull String jsonLike) {
154153
Map<String, String> map = new HashMap<>();
155154

156155
String[] parts = jsonLike.replaceAll("^\\{|\\}$","").split("\"?(:|,)(?![^\\{]*\\})\"?");
@@ -164,7 +163,7 @@ private static Map<String, String> getVariableAliasMap(String jsonLike) {
164163

165164

166165
@Override
167-
public void collect(TwigFileVariableCollectorParameter parameter, Map<String, Set<String>> variables) {
166+
public void collect(@NotNull TwigFileVariableCollectorParameter parameter, @NotNull Map<String, Set<String>> variables) {
168167
}
169168

170169
private Collection<VirtualFile> getImplements(TwigFile twigFile) {
@@ -190,7 +189,7 @@ private class MyPsiRecursiveElementWalkingVisitor extends PsiRecursiveElementWal
190189
@NotNull
191190
private final TwigFileVariableCollectorParameter parameter;
192191

193-
private MyPsiRecursiveElementWalkingVisitor(@NotNull PsiFile psiFile, Map<String, PsiVariable> variables, @NotNull TwigFileVariableCollectorParameter parameter) {
192+
private MyPsiRecursiveElementWalkingVisitor(@NotNull PsiFile psiFile, @NotNull Map<String, PsiVariable> variables, @NotNull TwigFileVariableCollectorParameter parameter) {
194193
this.psiFile = psiFile;
195194
this.variables = variables;
196195
this.parameter = parameter;
@@ -225,17 +224,15 @@ public void visitElement(PsiElement element) {
225224
}
226225

227226
private void collectContextVars(IElementType iElementType, @NotNull PsiElement element, @NotNull PsiElement includeTag) {
228-
229227
String templateName = includeTag.getText();
228+
230229
if(StringUtils.isNotBlank(templateName)) {
231230
for(PsiFile templateFile: TwigHelper.getTemplatePsiElements(element.getProject(), templateName)) {
232231
if(templateFile.equals(psiFile)) {
233232
collectIncludeContextVars(iElementType, element, includeTag, variables, parameter.getVisitedFiles());
234233
}
235234
}
236-
237235
}
238-
239236
}
240237
}
241238
}

src/fr/adrienbrault/idea/symfony2plugin/templating/variable/collector/MarcoScopeVariableCollector.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import fr.adrienbrault.idea.symfony2plugin.templating.variable.TwigFileVariableCollector;
1010
import fr.adrienbrault.idea.symfony2plugin.templating.variable.TwigFileVariableCollectorParameter;
1111
import org.apache.commons.lang.StringUtils;
12+
import org.jetbrains.annotations.NotNull;
1213

1314
import java.util.Collections;
1415
import java.util.Map;
@@ -19,7 +20,7 @@
1920
*/
2021
public class MarcoScopeVariableCollector implements TwigFileVariableCollector {
2122
@Override
22-
public void collect(TwigFileVariableCollectorParameter parameter, Map<String, Set<String>> variables) {
23+
public void collect(@NotNull TwigFileVariableCollectorParameter parameter, @NotNull Map<String, Set<String>> variables) {
2324
ASTNode macroStatement = TreeUtil.findParent(parameter.getElement().getNode(), TwigElementTypes.MACRO_STATEMENT);
2425
if(macroStatement == null) {
2526
return;

src/fr/adrienbrault/idea/symfony2plugin/templating/variable/collector/StaticVariableCollector.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,16 @@
22

33
import fr.adrienbrault.idea.symfony2plugin.templating.variable.TwigFileVariableCollector;
44
import fr.adrienbrault.idea.symfony2plugin.templating.variable.TwigFileVariableCollectorParameter;
5+
import org.jetbrains.annotations.NotNull;
56

67
import java.util.*;
78

89
/**
910
* @author Daniel Espendiller <daniel@espendiller.net>
1011
*/
1112
public class StaticVariableCollector implements TwigFileVariableCollector {
12-
1313
@Override
14-
public void collect(TwigFileVariableCollectorParameter parameter, Map<String, Set<String>> variables) {
14+
public void collect(@NotNull TwigFileVariableCollectorParameter parameter, @NotNull Map<String, Set<String>> variables) {
1515
variables.put("app", new HashSet<>(Collections.singletonList("\\Symfony\\Bundle\\FrameworkBundle\\Templating\\GlobalVariables")));
1616
}
17-
1817
}

0 commit comments

Comments
 (0)