8000 fix wrong cast in service builder class scope extraction #989 · Koc/idea-php-symfony2-plugin@766f148 · GitHub
[go: up one dir, main page]

Skip to content

Commit 766f148

Browse files
committed
fix wrong cast in service builder class scope extraction Haehnchen#989
1 parent 4db5d36 commit 766f148

File tree

2 files changed

+31
-10
lines changed

2 files changed

+31
-10
lines changed

src/fr/adrienbrault/idea/symfony2plugin/action/SymfonyContainerServiceBuilder.java

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -88,19 +88,30 @@ private Pair<PsiFile, PhpClass> findPhpClass(@NotNull AnActionEvent event) {
8888
return null;
8989
}
9090

91+
// menu item like ProjectView
9192
if("ProjectViewPopup".equals(event.getPlace())) {
92-
// menu item
93-
return Pair.create(psiFile, PhpElementsUtil.getFirstClassFromFile((PhpFile) psiFile));
94-
} else {
95-
PsiElement psiElement = event.getData(PlatformDataKeys.PSI_ELEMENT);
96-
if(psiElement instanceof PhpClass) {
97-
// directly got the class
98-
return Pair.create(psiFile, (PhpClass) psiElement);
99-
} else {
100-
// click inside class
101-
return Pair.create(psiFile, PhpElementsUtil.getFirstClassFromFile((PhpFile) psiFile));
93+
// fins php class on scope
94+
PhpClass phpClass = null;
95+
if(psiFile instanceof PhpFile) {
96+
phpClass = PhpElementsUtil.getFirstClassFromFile((PhpFile) psiFile);
10297
}
98+
99+
return Pair.create(psiFile, phpClass);
100+
}
101+
102+
// directly got the class
103+
PsiElement psiElement = event.getData(PlatformDataKeys.PSI_ELEMENT);
104+
if(psiElement instanceof PhpClass) {
105+
return Pair.create(psiFile, (PhpClass) psiElement);
103106
}
107+
108+
// click inside class
109+
PhpClass phpClass = null;
110+
if(psiFile instanceof PhpFile) {
111+
phpClass = PhpElementsUtil.getFirstClassFromFile((PhpFile) psiFile);
112+
}
113+
114+
return Pair.create(psiFile, phpClass);
104115
}
105116
}
106117

tests/fr/adrienbrault/idea/symfony2plugin/tests/action/SymfonyContainerServiceBuilderTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,14 @@ public void testActionAvailableForFileScope() {
1414

1515
assertTrue(myFixture.testAction(new SymfonyContainerServiceBuilder()).isEnabledAndVisible());
1616
}
17+
18+
public void testActionAvailableForXmlFile() {
19+
myFixture.configureByText("test.xml", "");
20+
assertTrue(myFixture.testAction(new SymfonyContainerServiceBuilder()).isEnabledAndVisible());
21+
}
22+
23+
public void testActionAvailableForYmlFile() {
24+
myFixture.configureByText("test.yml", "");
25+
assertTrue(myFixture.testAction(new SymfonyContainerServiceBuilder()).isEnabledAndVisible());
26+
}
1727
}

0 commit comments

Comments
 (0)
0