Skip to content

Commit 6f40269

Browse files
committed
add Symfony flex path for Twig templates #922
1 parent 590340f commit 6f40269

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

META-INF/plugin.xml

+1
Original file line numberDiff line numberDiff line change
@@ -594,6 +594,7 @@
594594
<TwigNamespaceExtension implementation="fr.adrienbrault.idea.symfony2plugin.templating.path.ContainerTwigNamespaceExtension"/>
595595
<TwigNamespaceExtension implementation="fr.adrienbrault.idea.symfony2plugin.templating.path.GlobalAppTwigNamespaceExtension"/>
596596
<TwigNamespaceExtension implementation="fr.adrienbrault.idea.symfony2plugin.templating.path.BundleTwigNamespaceExtension"/>
597+
<TwigNamespaceExtension implementation="fr.adrienbrault.idea.symfony2plugin.templating.path.FlexTwigNamespaceExtension"/>
597598

598599
<ServiceCollector implementation="fr.adrienbrault.idea.symfony2plugin.dic.DefaultServiceCollector"/>
599600

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package fr.adrienbrault.idea.symfony2plugin.templating.path;
2+
3+
import com.intellij.openapi.vfs.VfsUtil;
4+
import com.intellij.openapi.vfs.VirtualFile;
5+
import fr.adrienbrault.idea.symfony2plugin.extension.TwigNamespaceExtension;
6+
import fr.adrienbrault.idea.symfony2plugin.extension.TwigNamespaceExtensionParameter;
7+
import org.jetbrains.annotations.NotNull;
8+
;
9+
import java.util.Collection;
10+
import java.util.Collections;
11+
12+
/**
13+
* https://symfony.com/doc/current/setup/flex.html#upgrading-existing-applications-to-flex
14+
*
15+
* /templates
16+
*
17+
* @author Daniel Espendiller <daniel@espendiller.net>
18+
*/
19+
public class FlexTwigNamespaceExtension implements TwigNamespaceExtension {
20+
@NotNull
21+
@Override
22+
public Collection<TwigPath> getNamespaces(@NotNull TwigNamespaceExtensionParameter parameter) {
23+
VirtualFile templatesDirectory = VfsUtil.findRelativeFile(parameter.getProject().getBaseDir(), "templates");
24+
if(templatesDirectory == null) {
25+
return Collections.emptyList();
26+
}
27+
28+
String path = templatesDirectory.getPath();
29+
return Collections.singletonList(
30+
new TwigPath(path, TwigPathIndex.MAIN, TwigPathIndex.NamespaceType.ADD_PATH)
31+
);
32+
}
33+
}

0 commit comments

Comments
 (0)