diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/inspection/YamlClassInspection.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/inspection/YamlClassInspection.java index 4c54d5a2b..198ac042b 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/inspection/YamlClassInspection.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/dic/inspection/YamlClassInspection.java @@ -17,6 +17,7 @@ import org.apache.commons.lang.StringUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.yaml.YAMLTokenTypes; +import org.jetbrains.yaml.psi.YAMLKeyValue; /** * Check if class exists @@ -45,7 +46,10 @@ public void visitElement(PsiElement psiElement) { // Foobar\Foo: ~ String text = PsiElementUtils.getText(psiElement); if (StringUtils.isNotBlank(text) && YamlHelper.isClassServiceId(text) && text.contains("\\")) { - invoke(psiElement, holder); + PsiElement yamlKeyValue = psiElement.getParent(); + if (yamlKeyValue instanceof YAMLKeyValue && YamlHelper.getYamlKeyValue((YAMLKeyValue) yamlKeyValue, "resource") == null && YamlHelper.getYamlKeyValue((YAMLKeyValue) yamlKeyValue, "exclude") == null) { + invoke(psiElement, holder); + } } } diff --git a/src/test/java/fr/adrienbrault/idea/symfony2plugin/tests/dic/inspection/YamlClassInspectionTest.java b/src/test/java/fr/adrienbrault/idea/symfony2plugin/tests/dic/inspection/YamlClassInspectionTest.java index 9cdb04698..86f7423ad 100644 --- a/src/test/java/fr/adrienbrault/idea/symfony2plugin/tests/dic/inspection/YamlClassInspectionTest.java +++ b/src/test/java/fr/adrienbrault/idea/symfony2plugin/tests/dic/inspection/YamlClassInspectionTest.java @@ -43,5 +43,21 @@ public void testInspectionForClass() { assertLocalInspectionContains("services.yml", "services:\n Args\\FooBar: ~", YamlClassInspection.MESSAGE_MISSING_CLASS); assertLocalInspectionNotContains("services.yml", "services:\n foo.class: Args\\Foo", YamlClassInspection.MESSAGE_WRONG_CASING); + + assertLocalInspectionNotContains( + "services.yml", + "services:\n" + + " Args\\FooBar:\n" + + " resource: ~", + YamlClassInspection.MESSAGE_MISSING_CLASS + ); + + assertLocalInspectionNotContains( + "services.yml", + "services:\n" + + " Args\\FooBar:\n" + + " exclude: ~", + YamlClassInspection.MESSAGE_MISSING_CLASS + ); } }