|
19 | 19 | import fr.adrienbrault.idea.symfony2plugin.codeInsight.utils.GotoCompletionUtil;
|
20 | 20 | import fr.adrienbrault.idea.symfony2plugin.completion.DecoratedServiceCompletionProvider;
|
21 | 21 | import fr.adrienbrault.idea.symfony2plugin.config.xml.XmlHelper;
|
| 22 | +import fr.adrienbrault.idea.symfony2plugin.dic.ServiceCompletionProvider; |
22 | 23 | import fr.adrienbrault.idea.symfony2plugin.routing.RouteGotoCompletionProvider;
|
| 24 | +import fr.adrienbrault.idea.symfony2plugin.stubs.ContainerCollectionResolver; |
23 | 25 | import fr.adrienbrault.idea.symfony2plugin.templating.TemplateGotoCompletionRegistrar;
|
24 | 26 | import fr.adrienbrault.idea.symfony2plugin.util.PhpElementsUtil;
|
25 | 27 | import fr.adrienbrault.idea.symfony2plugin.util.completion.PhpClassCompletionProvider;
|
@@ -54,6 +56,12 @@ public void register(GotoCompletionRegistrarParameter registrar) {
|
54 | 56 | ServiceIdCompletionProvider::new
|
55 | 57 | );
|
56 | 58 |
|
| 59 | + // <service alias="<caret>"/> |
| 60 | + registrar.register( |
| 61 | + XmlPatterns.psiElement().withParent(XmlHelper.getServiceAliasPattern()), |
| 62 | + ServiceAliasCompletionProvider::new |
| 63 | + ); |
| 64 | + |
57 | 65 | // <factory class="AppBundle\Trivago\ConfigFactory" method="create"/>
|
58 | 66 | // <factory service="foo" method="create"/>
|
59 | 67 | registrar.register(
|
@@ -141,6 +149,10 @@ public Collection<PsiElement> getPsiTargets(PsiElement element) {
|
141 | 149 | }
|
142 | 150 | }
|
143 | 151 |
|
| 152 | + /** |
| 153 | + * <service id="Foo\Bar"/> |
| 154 | + * <service id="<caret>" class="MyFoo\Foo\Apple"/> |
| 155 | + */ |
144 | 156 | private static class ServiceIdCompletionProvider extends GotoCompletionProvider {
|
145 | 157 | private ServiceIdCompletionProvider(PsiElement element) {
|
146 | 158 | super(element);
|
@@ -183,6 +195,22 @@ public void getLookupElements(@NotNull GotoCompletionProviderLookupArguments arg
|
183 | 195 | }
|
184 | 196 | }
|
185 | 197 |
|
| 198 | + /** |
| 199 | + * <service alias="<caret>"/> |
| 200 | + */ |
| 201 | + private static class ServiceAliasCompletionProvider extends GotoCompletionProvider { |
| 202 | + private ServiceAliasCompletionProvider(PsiElement element) { |
| 203 | + super(element); |
| 204 | + } |
| 205 | + |
| 206 | + @Override |
| 207 | + public void getLookupElements(@NotNull GotoCompletionProviderLookupArguments arguments) { |
| 208 | + arguments.getResultSet().addAllElements( |
| 209 | + ServiceCompletionProvider.getLookupElements(null, ContainerCollectionResolver.getServices(getProject()).values()).getLookupElements() |
| 210 | + ); |
| 211 | + } |
| 212 | + } |
| 213 | + |
186 | 214 | private static class ServiceFactoryMethodCompletionProvider extends GotoCompletionProvider {
|
187 | 215 | ServiceFactoryMethodCompletionProvider(PsiElement element) {
|
188 | 216 | super(element);
|
|
0 commit comments