Skip to content

Commit 5fb77fb

Browse files
committed
migrate yaml sequence item to new features, to fix wrong parameter resolving in call and arguments keys #710
1 parent cb86c27 commit 5fb77fb

File tree

3 files changed

+5
-36
lines changed

3 files changed

+5
-36
lines changed

src/fr/adrienbrault/idea/symfony2plugin/config/yaml/YamlAnnotator.java

+5-9
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ private void annotateConstructorArguments(@NotNull final PsiElement psiElement,
211211
return;
212212
}
213213

214-
attachInstanceAnnotation(psiElement, holder, yamlArray, constructor);
214+
attachInstanceAnnotation(psiElement, holder, sequenceItem, constructor);
215215

216216
}
217217

@@ -309,7 +309,7 @@ private void annotateCallsArguments(@NotNull final PsiElement psiElement, @NotNu
309309
return;
310310
}
311311

312-
attachInstanceAnnotation(psiElement, holder, yamlCallParameterArray, method);
312+
attachInstanceAnnotation(psiElement, holder, (YAMLSequenceItem) seqItem, method);
313313

314314
}
315315
private void attachInstanceAnnotation(PsiElement psiElement, AnnotationHolder holder, int parameterIndex, Method constructor) {
@@ -340,18 +340,14 @@ private void attachInstanceAnnotation(PsiElement psiElement, AnnotationHolder ho
340340
}
341341
}
342342

343-
private void attachInstanceAnnotation(PsiElement psiElement, AnnotationHolder holder, YAMLSequence yamlArray, Method constructor) {
343+
private void attachInstanceAnnotation(PsiElement psiElement, AnnotationHolder holder, YAMLSequenceItem yamlSequenceItem, Method constructor) {
344344

345345
if(psiElement == null) {
346346
return;
347347
}
348348

349-
int parameterIndex = YamlHelper.getYamlParameter(yamlArray, psiElement);
350-
if(parameterIndex == -1) {
351-
return;
352-
}
353-
354-
attachInstanceAnnotation(psiElement, holder, parameterIndex, constructor);
349+
List<YAMLSequenceItem> sequenceItems = PsiElementUtils.getPrevSiblingsOfType(yamlSequenceItem, PlatformPatterns.psiElement(YAMLSequenceItem.class));
350+
attachInstanceAnnotation(psiElement, holder, sequenceItems.size(), constructor);
355351
}
356352

357353
private String getServiceName(PsiElement psiElement) {

src/fr/adrienbrault/idea/symfony2plugin/util/yaml/YamlHelper.java

-14
Original file line numberDiff line numberDiff line change
@@ -91,20 +91,6 @@ public static YAMLKeyValue getYamlKeyValue(@Nullable PsiElement yamlCompoundValu
9191
return classKeyValue;
9292
}
9393

94-
95-
public static int getYamlParameter(@NotNull YAMLSequence yamlArray, @NotNull PsiElement psiKeyElement) {
96-
int parameter = -1;
97-
98-
for(YAMLSequenceItem sequenceItem: getYamlArrayValues(yamlArray)) {
99-
parameter++;
100-
if(sequenceItem != null && psiKeyElement.equals(sequenceItem.getValue())) {
101-
return parameter;
102-
}
103-
}
104-
105-
return parameter;
106-
}
107-
10894
private static class YamlLocalServiceMap {
10995

11096
public Map<String, String> getLocalParameterMap(PsiFile psiFile) {

tests/fr/adrienbrault/idea/symfony2plugin/tests/util/yaml/YamlHelperLightTest.java

-13
Original file line numberDiff line numberDiff line change
@@ -166,19 +166,6 @@ public String fun(PsiElement psiElement) {
166166
}
167167
}
168168

169-
/**
170-
* @see fr.adrienbrault.idea.symfony2plugin.util.yaml.YamlHelper#getYamlParameter
171-
*/
172-
public void testGetYamlParameter() {
173-
PsiFile psiFile = myFixture.configureByText("foo.yml", "['@twig', @twig, @tw<caret>ig]");
174-
PsiElement psiElement = psiFile.findElementAt(myFixture.getCaretOffset());
175-
176-
PsiElement firstChild = psiFile.getFirstChild().getFirstChild();
177-
assertInstanceOf(firstChild, YAMLArrayImpl.class);
178-
179-
assertEquals(2, YamlHelper.getYamlParameter((YAMLArrayImpl) firstChild, psiElement));
180-
}
181-
182169
/**
183170
* @see fr.adrienbrault.idea.symfony2plugin.util.yaml.YamlHelper#getYamlArrayValues
184171
*/

0 commit comments

Comments
 (0)