From b7fe0c4c965be436569491ce5f7c8f4d06fb8028 Mon Sep 17 00:00:00 2001 From: Pavel Dolgov Date: Thu, 7 Apr 2016 19:10:18 +0300 Subject: [PATCH] Javafx: Don't highlight absolute (remote) URL as invalid in FXML. Test added (IDEA-154132) --- .../javaFX/fxml/JavaFXHighlightingTest.java | 4 ++++ .../plugins/javaFX/fxml/FxmlConstants.java | 1 + .../fxml/refs/FxmlReferencesContributor.java | 6 ++++-- .../highlighting/absoluteRemoteUrl.fxml | 18 ++++++++++++++++++ 4 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 plugins/javaFX/testData/highlighting/absoluteRemoteUrl.fxml diff --git a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXHighlightingTest.java b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXHighlightingTest.java index b7e3309e7f0b..83b2f7c0901f 100644 --- a/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXHighlightingTest.java +++ b/plugins/javaFX/javaFX-CE/testSrc/org/jetbrains/plugins/javaFX/fxml/JavaFXHighlightingTest.java @@ -428,6 +428,10 @@ public class JavaFXHighlightingTest extends AbstractJavaFXTestCase { myFixture.testHighlighting(true, false, false, getTestName(false) + ".java"); } + public void testAbsoluteRemoteUrl() throws Exception { + doTest(); + } + private void doTest() throws Exception { myFixture.testHighlighting(false, false, false, getTestName(true) + ".fxml"); } diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/FxmlConstants.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/FxmlConstants.java index c123e6d5073a..91276f94f793 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/FxmlConstants.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/FxmlConstants.java @@ -45,6 +45,7 @@ public class FxmlConstants { @NonNls public static final String STYLE_CLASS = "styleClass"; @NonNls public static final String STYLESHEETS = "stylesheets"; + @NonNls public static final String URL = "url"; @NonNls public static final String SOURCE = "source"; diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/FxmlReferencesContributor.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/FxmlReferencesContributor.java index 052887b10b4f..bc1e087a5e5a 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/FxmlReferencesContributor.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/refs/FxmlReferencesContributor.java @@ -99,8 +99,10 @@ public class FxmlReferencesContributor extends PsiReferenceContributor { .and(attributeValueInFxml), new JavaFxComponentIdReferenceProvider()); - registrar.registerReferenceProvider(XmlPatterns.xmlAttributeValue().withParent(XmlPatterns.xmlAttribute().withName("url")).and(attributeValueInFxml), - new JavaFxLocationReferenceProvider(false, "png")); + registrar.registerReferenceProvider(XmlPatterns.xmlAttributeValue().withParent(XmlPatterns.xmlAttribute().withName(FxmlConstants.URL)) + .andNot(XmlPatterns.xmlAttributeValue().withValue(string().matches("^http(s)?://.*"))) + .and(attributeValueInFxml), + new JavaFxLocationReferenceProvider(false, "png", "jpg", "gif", "bmp")); registrar.registerReferenceProvider(XmlPatterns.xmlAttributeValue().withParent(XmlPatterns.xmlAttribute().withName(FxmlConstants.STYLESHEETS)).and(attributeValueInFxml), new JavaFxLocationReferenceProvider(true, "css")); diff --git a/plugins/javaFX/testData/highlighting/absoluteRemoteUrl.fxml b/plugins/javaFX/testData/highlighting/absoluteRemoteUrl.fxml new file mode 100644 index 000000000000..8a54717797ad --- /dev/null +++ b/plugins/javaFX/testData/highlighting/absoluteRemoteUrl.fxml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file