Skip to content

Commit a94c5bb

Browse files
committed
fixup! Added service name reference contributor for YAML DIC files
1 parent d2819d9 commit a94c5bb

File tree

2 files changed

+54
-1
lines changed

2 files changed

+54
-1
lines changed

src/main/java/fr/adrienbrault/idea/symfony2plugin/config/yaml/YamlReferenceContributor.java

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public void registerReferenceProviders(@NotNull PsiReferenceRegistrar registrar)
108108
.withParent(
109109
PlatformPatterns
110110
.psiElement(YAMLKeyValue.class)
111-
.withName("alias", "decorates", "parent")
111+
.withName("alias", "decorates", "parent")
112112
),
113113
new YAMLScalarServiceReferenceProvider(false)
114114
);
@@ -183,6 +183,46 @@ public boolean accepts(@NotNull YAMLSequenceItem element, ProcessingContext cont
183183
),
184184
new YAMLScalarServiceReferenceProvider()
185185
);
186+
187+
// services:
188+
// app.service.foo:
189+
// calls:
190+
// - setBar: [ '@app.service.bar' ]
191+
registrar.registerReferenceProvider(
192+
PlatformPatterns
193+
.psiElement(YAMLScalar.class)
194+
.withParent(
195+
PlatformPatterns
196+
.psiElement(YAMLSequenceItem.class)
197+
.withParent(
198+
PlatformPatterns
199+
.psiElement(YAMLSequence.class)
200+
.withParent(
201+
PlatformPatterns
202+
.psiElement(YAMLKeyValue.class)
203+
.withParent(
204+
PlatformPatterns
205+
.psiElement(YAMLMapping.class)
206+
.withParent(
207+
PlatformPatterns
208+
.psiElement(YAMLSequenceItem.class)
209+
.withParent(
210+
PlatformPatterns
211+
.psiElement(YAMLSequence.class)
212+
.withParent(
213+
PlatformPatterns
214+
.psiElement(YAMLKeyValue.class)
215+
.withName("calls")
216+
)
217+
)
218+
)
219+
)
220+
221+
)
222+
)
223+
),
224+
new YAMLScalarServiceReferenceProvider()
225+
);
186226
}
187227

188228
private static class YAMLScalarServiceReferenceProvider extends PsiReferenceProvider {

src/test/java/fr/adrienbrault/idea/symfony2plugin/tests/config/yaml/YamlReferenceContributorTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,19 @@ public void testConfiguratorProvidesReferences() {
171171
);
172172
}
173173

174+
public void testCallsArgsProvidesReferences() {
175+
assertReferenceMatchOnParent(
176+
YAMLFileType.YML,
177+
"services:\n" +
178+
" app.service.foo: ~\n" +
179+
"\n" +
180+
" app.service.bar:\n" +
181+
" calls: " +
182+
" - setFoo: ['@app.service.foo<caret>']\n",
183+
getExpectedReferencePattern("app.service.foo")
184+
);
185+
}
186+
174187
@NotNull
175188
private PsiElementPattern.Capture<YAMLKeyValue> getExpectedReferencePattern(@NotNull String serviceName) {
176189
return PlatformPatterns.psiElement(YAMLKeyValue.class).withName(serviceName);

0 commit comments

Comments
 (0)