From 8949c069943650528a9be1aff35e9172b2de9980 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 1 Feb 2013 16:09:23 +0400 Subject: [PATCH] javafx: fqns in tag names (IDEA-100287) --- .../plugins/javaFX/fxml/JavaFxPsiUtil.java | 13 +++++++++++-- .../javaFX/testData/highlighting/fQNtagNames.fxml | 4 ++++ .../plugins/javaFX/fxml/JavaFXHighlightingTest.java | 4 ++++ 3 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 plugins/javaFX/testData/highlighting/fQNtagNames.fxml diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxPsiUtil.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxPsiUtil.java index ec1e699473cc..9941ea92b390 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxPsiUtil.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxPsiUtil.java @@ -21,6 +21,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; import com.intellij.psi.impl.source.PostprocessReformattingAspect; +import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.util.InheritanceUtil; import com.intellij.psi.util.PropertyUtil; import com.intellij.psi.util.PsiTreeUtil; @@ -82,7 +83,11 @@ public class JavaFxPsiUtil { } public static PsiClass findPsiClass(String name, XmlTag tag) { - return findPsiClass(name, parseImports((XmlFile)tag.getContainingFile()), tag, tag.getProject()); + final Project project = tag.getProject(); + if (!StringUtil.getShortName(name).equals(name)) { + return JavaPsiFacade.getInstance(project).findClass(name, GlobalSearchScope.allScope(project)); + } + return findPsiClass(name, parseImports((XmlFile)tag.getContainingFile()), tag, project); } private static PsiClass findPsiClass(String name, List imports, XmlTag tag, Project project) { @@ -155,7 +160,11 @@ public class JavaFxPsiUtil { public static boolean isClassTag(String name) { final String shortName = StringUtil.getShortName(name); - return StringUtil.isCapitalized(name) && name.equals(shortName); + final boolean capitalized = StringUtil.isCapitalized(name); + if (name.equals(shortName)) { + return capitalized; + } + return !capitalized; } public static PsiMethod findPropertySetter(String attributeName, XmlTag context) { diff --git a/plugins/javaFX/testData/highlighting/fQNtagNames.fxml b/plugins/javaFX/testData/highlighting/fQNtagNames.fxml new file mode 100644 index 000000000000..6137837891f2 --- /dev/null +++ b/plugins/javaFX/testData/highlighting/fQNtagNames.fxml @@ -0,0 +1,4 @@ + + + + diff --git a/plugins/javaFX/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXHighlightingTest.java b/plugins/javaFX/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXHighlightingTest.java index 763665200ecc..236ca1a6a877 100644 --- a/plugins/javaFX/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXHighlightingTest.java +++ b/plugins/javaFX/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXHighlightingTest.java @@ -155,6 +155,10 @@ public class JavaFXHighlightingTest extends DaemonAnalyzerTestCase { doTest(); } + public void testFQNtagNames() throws Exception { + doTest(); + } + @NotNull @Override protected String getTestDataPath() {