From 4009daaea0ef93efd3db22f98331e8b606846a95 Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 4 Apr 2013 13:01:23 +0200 Subject: [PATCH] javafx: fix completion of stylesheets from application class --- .../plugins/javaFX/JavaFxFileReferenceProvider.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/JavaFxFileReferenceProvider.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/JavaFxFileReferenceProvider.java index e6a2669c955a..f371c317476a 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/JavaFxFileReferenceProvider.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/JavaFxFileReferenceProvider.java @@ -15,22 +15,28 @@ import java.util.Collections; * Date: 4/3/13 */ public class JavaFxFileReferenceProvider extends PsiReferenceProvider { + @NotNull @Override public PsiReference[] getReferencesByElement(@NotNull final PsiElement element, @NotNull ProcessingContext context) { final Object value = ((PsiLiteralExpression)element).getValue(); final PsiDirectory directory = element.getContainingFile().getOriginalFile().getParent(); if (!(value instanceof String) || directory == null) return PsiReference.EMPTY_ARRAY; + final boolean startsWithSlash = ((String)value).startsWith("/"); final VirtualFileSystem fs = directory.getVirtualFile().getFileSystem(); - return new FileReferenceSet((String)value, element, 1, null, ((NewVirtualFileSystem)fs).isCaseSensitive()) { + final FileReferenceSet fileReferenceSet = new FileReferenceSet((String)value, element, 1, null, ((NewVirtualFileSystem)fs).isCaseSensitive()) { @NotNull @Override public Collection getDefaultContexts() { - if (!directory.isValid()) { + if (startsWithSlash || !directory.isValid()) { return super.getDefaultContexts(); } return Collections.singletonList(directory); } - }.getAllReferences(); + }; + if (startsWithSlash) { + fileReferenceSet.addCustomization(FileReferenceSet.DEFAULT_PATH_EVALUATOR_OPTION, FileReferenceSet.ABSOLUTE_TOP_LEVEL); + } + return fileReferenceSet.getAllReferences(); } }