8000 fix xml id reference for Symfony 3.3 class shortcut was matched on al… · Koc/idea-php-symfony2-plugin@90d17b3 · GitHub
[go: up one dir, main page]

Skip to content

Commit 90d17b3

Browse files
committed
fix xml id reference for Symfony 3.3 class shortcut was matched on all xml tags with id attribute
1 parent 167170b commit 90d17b3

File tree

8 files changed

+20
-11
lines changed

8 files changed

+20
-11
lines changed

src/fr/adrienbrault/idea/symfony2plugin/codeInspection/service/ServiceDeprecatedClassesInspection.java

-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public XmlClassElementWalkingVisitor(ProblemsHolder holder, ProblemRegistrar pro
9999
@Override
100100
public void visitElement(PsiElement element) {
101101
boolean serviceArgumentAccepted = XmlHelper.getArgumentServiceIdPattern().accepts(element);
102-
if(serviceArgumentAccepted || XmlHelper.getServiceIdPattern().accepts(element)) {
102+
if(serviceArgumentAccepted || XmlHelper.getServiceClassAttributeWithIdPattern().accepts(element)) {
103103
String text = PsiElementUtils.trimQuote(element.getText());
104104
PsiElement[] psiElements = element.getChildren();
105105

src/fr/adrienbrault/idea/symfony2plugin/codeInspection/service/TaggedExtendsInterfaceClassInspection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public XmlClassElementWalkingVisitor(ProblemsHolder holder, ContainerCollectionR
6464

6565
@Override
6666
public void visitElement(PsiElement element) {
67-
if(XmlHelper.getServiceIdPattern().accepts(element)) {
67+
if(XmlHelper.getServiceClassAttributeWithIdPattern().accepts(element)) {
6868
String text = PsiElementUtils.trimQuote(element.getText());
6969
PsiElement[] psiElements = element.getChildren();
7070

src/fr/adrienbrault/idea/symfony2plugin/completion/xml/XmlGotoCompletionRegistrar.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public void register(GotoCompletionRegistrarParameter registrar) {
5050

5151
// <service id="<caret>" class="MyFoo\Foo\Apple"/>
5252
registrar.register(
53-
XmlPatterns.psiElement().withParent(XmlHelper.getServiceIdNamePattern()),
53+
XmlPatterns.psiElement().withParent(XmlHelper.getServiceIdAttributePattern()),
5454
ServiceIdCompletionProvider::new
5555
);
5656

src/fr/adrienbrault/idea/symfony2plugin/config/xml/XmlHelper.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ public static XmlAttributeValu 10000 ePattern getArgumentServiceIdForArgumentPattern()
156156
/**
157157
* <service id="service_container" />
158158
*/
159-
public static XmlAttributeValuePattern getServiceIdNamePattern() {
159+
public static XmlAttributeValuePattern getServiceIdAttributePattern() {
160160
return XmlPatterns
161161
.xmlAttributeValue()
162162
.withParent(XmlPatterns
@@ -259,9 +259,9 @@ public static PsiElementPattern.Capture<PsiElement> getAutowiringTypePattern() {
259259
}
260260

261261
/**
262-
* <service class="%foo.class%">
262+
* <service class="%foo.class%" id="required_attribute">
263263
*/
264-
public static XmlAttributeValuePattern getServiceIdPattern() {
264+
public static XmlAttributeValuePattern getServiceClassAttributeWithIdPattern() {
265265
return XmlPatterns
266266
.xmlAttributeValue()
267267
.withParent(XmlPatterns

src/fr/adrienbrault/idea/symfony2plugin/config/xml/XmlReferenceContributor.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,14 @@ public PsiReference[] getReferencesByElement(@NotNull PsiElement psiElement, @No
6969
// <service class="%foo.class%">
7070
// <service class="Class\Name">
7171
registrar.registerReferenceProvider(
72-
XmlHelper.getServiceIdPattern(),
72+
XmlHelper.getServiceClassAttributeWithIdPattern(),
7373
new ClassPsiReferenceProvider()
7474
);
7575

76-
// Symfoyn 3.3 shortcut
76+
// Symfony 3.3 shortcut
7777
// <service id="Class\Name">
7878
registrar.registerReferenceProvider(
79-
XmlHelper.getAttributePattern("id"),
79+
XmlHelper.getServiceIdAttributePattern(),
8080
new ClassAsIdPsiReferenceProvider()
8181
);
8282

src/fr/adrienbrault/idea/symfony2plugin/dic/inspection/CaseSensitivityServiceInspection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ private void xmlVisitor(final @NotNull ProblemsHolder holder, @NotNull PsiFile p
112112
psiFile.acceptChildren(new PsiRecursiveElementVisitor() {
113113
@Override
114114
public void visitElement(PsiElement psiElement) {
115-
if(psiElement instanceof XmlAttributeValue && (XmlHelper.getArgumentServiceIdPattern().accepts(psiElement) || XmlHelper.getServiceIdNamePattern().accepts(psiElement))) {
115+
if(psiElement instanceof XmlAttributeValue && (XmlHelper.getArgumentServiceIdPattern().accepts(psiElement) || XmlHelper.getServiceIdAttributePattern().accepts(psiElement))) {
116116
String serviceName = ((XmlAttributeValue) psiElement).getValue();
117117
if(StringUtils.isNotBlank(serviceName) && !serviceName.equals(serviceName.toLowerCase()) && !YamlHelper.isClassServiceId(serviceName)) {
118118
holder.registerProblem(psiElement, SYMFONY_LOWERCASE_LETTERS_FOR_SERVICE, ProblemHighlightType.WEAK_WARNING);

tests/fr/adrienbrault/idea/symfony2plugin/tests/SymfonyLightCodeInsightFixtureTestCase.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -595,8 +595,17 @@ public void assertLineMarkerIsEmpty(@NotNull PsiElement psiElement) {
595595
}
596596
}
597597

598+
public void assertReferenceMatchOnParent(@NotNull String file, @NotNull String contents, @NotNull ElementPattern<?> pattern) {
599+
myFixture.configureByText(file, contents);
600+
assertReferenceMatchOnParent(pattern);
601+
}
602+
598603
public void assertReferenceMatchOnParent(@NotNull FileType fileType, @NotNull String contents, @NotNull ElementPattern<?> pattern) {
599604
myFixture.configureByText(fileType, contents);
605+
assertReferenceMatchOnParent(pattern);
606+
}
607+
608+
private void assertReferenceMatchOnParent(@NotNull ElementPattern<?> pattern) {
600609
PsiElement psiElement = myFixture.getFile().findElementAt(myFixture.getCaretOffset());
601610
if(psiElement == null) {
602611
fail("Fail to find element in caret");

tests/fr/adrienbrault/idea/symfony2plugin/tests/config/xml/XmlReferenceContributorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public void testEnvironmentParameter() {
123123
}
124124

125125
public void testServiceIdAsClassReferences() {
126-
assertReferenceMatchOnParent(XmlFileType.INSTANCE, "" +
126+
assertReferenceMatchOnParent("test.xml", "" +
127127
"<?xml version=\"1.0\"?>\n" +
128128
"<container>\n" +
129129
" <services>\n" +

0 commit comments

Comments
 (0)
0