Skip to content

Commit 1ecda0b

Browse files
committed
add support for named arguments #998
1 parent e6c2e24 commit 1ecda0b

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

tests/fr/adrienbrault/idea/symfony2plugin/tests/dic/container/util/ServiceContainerUtilTest.java

+29
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,17 @@
22

33
import com.google.gson.Gson;
44
import com.intellij.openapi.util.Condition;
5+
import com.intellij.psi.PsiElement;
56
import com.intellij.psi.PsiFile;
67
import com.intellij.util.containers.ContainerUtil;
78
import fr.adrienbrault.idea.symfony2plugin.dic.container.ServiceInterface;
89
import fr.adrienbrault.idea.symfony2plugin.dic.container.ServiceSerializable;
10+
import fr.adrienbrault.idea.symfony2plugin.dic.container.dict.ServiceTypeHint;
911
import fr.adrienbrault.idea.symfony2plugin.dic.container.util.ServiceContainerUtil;
12+
import fr.adrienbrault.idea.symfony2plugin.stubs.ContainerCollectionResolver;
1013
import fr.adrienbrault.idea.symfony2plugin.tests.SymfonyLightCodeInsightFixtureTestCase;
1114
import org.jetbrains.annotations.NotNull;
15+
import org.jetbrains.yaml.psi.YAMLScalar;
1216

1317
import java.io.File;
1418
import java.util.Arrays;
@@ -32,6 +36,8 @@ public void setUp() throws Exception {
3236

3337
myFixture.configureByFile("usage.services.xml");
3438
myFixture.configureByFile("usage1.services.xml");
39+
40+
myFixture.configureByFile("classes.php");
3541
}
3642

3743
public String getTestDataPath() {
@@ -199,6 +205,29 @@ public void testXmlFileScopeDefaultsForSymfony33() {
199205
assertTrue(defaultsOverwrite.isPublic());
200206
}
201207

208+
/**
209+
* @see fr.adrienbrault.idea.symfony2plugin.dic.container.util.ServiceContainerUtil#getYamlConstructorTypeHint
210+
*/
211+
public void testGetYamlConstructorTypeHint() {
212+
myFixture.configureByText("test.yml", "" +
213+
"services:\n" +
214+
" NamedArgument\\Foobar:\n" +
215+
" arguments: ['<caret>']\n"
216+
);
217+
218+
PsiElement psiElement = myFixture.getFile().findElementAt(myFixture.getCaretOffset());
219+
220+
YAMLScalar parent = (YAMLScalar) psiElement.getParent();
221+
222+
ServiceTypeHint typeHint = ServiceContainerUtil.getYamlConstructorTypeHint(
223+
parent,
224+
new ContainerCollectionResolver.LazyServiceCollector(getProject())
225+
);
226+
227+
assertEquals(0, typeHint.getIndex());
228+
assertEquals("__construct", typeHint.getMethod().getName());
229+
}
230+
202231
private static class MyStringServiceInterfaceCondition implements Condition<ServiceInterface> {
203232

204233
@NotNull
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
3+
namespace NamedArgument
4+
{
5+
class Foobar
6+
{
7+
public function __construct(Foobar $foobar)
8+
{
9+
}
10+
}
11+
}

0 commit comments

Comments
 (0)