Skip to content

Commit 1ce9a8d

Browse files
committed
add form variable resolve
1 parent 601a0ca commit 1ce9a8d

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

src/fr/adrienbrault/idea/symfony2plugin/templating/variable/resolver/FormFieldResolver.java

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,31 @@ public void resolve(Collection<TwigTypeContainer> targets, Collection<TwigTypeCo
5252
}
5353
}
5454

55-
/*
56-
// $form
55+
56+
// nested resolve of form view; @TODO: should be some nicer
57+
// 'foo2' => $form2 => $form2 = $form->createView() => $this->createForm(new Type();
5758
if(var instanceof Variable) {
5859
PsiElement varDecl = ((Variable) var).resolve();
5960
if(varDecl instanceof Variable) {
6061
MethodReference methodReference = PsiTreeUtil.getNextSiblingOfType(varDecl, MethodReference.class);
61-
attachFormFields(methodReference, targets);
62+
PsiElement scopeVar = methodReference.getFirstChild();
63+
64+
// $form2 = $form->createView()
65+
if(scopeVar instanceof Variable) {
66+
PsiElement varDeclParent = ((Variable) scopeVar).resolve();
67+
if(varDeclParent instanceof Variable) {
68+
69+
// "$form"->createView();
70+
PsiElement resolve = ((Variable) varDeclParent).resolve();
71+
if(resolve != null) {
72+
attachFormFields(PsiTreeUtil.getNextSiblingOfType(resolve, MethodReference.class), targets);
73+
}
74+
75+
}
76+
}
77+
6278
}
63-
} */
79+
}
6480

6581
}
6682
}

0 commit comments

Comments
 (0)