From 369412a2dec45a37c3f36855df93282cd0b2813c Mon Sep 17 00:00:00 2001 From: Dennis Ushakov Date: Thu, 14 Jan 2016 12:33:01 +0300 Subject: [PATCH] soft file reference set --- .../impl/providers/SoftFileReferenceSet.java | 69 +++++++++++++++++++ .../references/FileReferenceInjector.java | 9 +-- 2 files changed, 71 insertions(+), 7 deletions(-) create mode 100644 platform/analysis-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/SoftFileReferenceSet.java diff --git a/platform/analysis-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/SoftFileReferenceSet.java b/platform/analysis-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/SoftFileReferenceSet.java new file mode 100644 index 000000000000..101ac7203d9c --- /dev/null +++ b/platform/analysis-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/SoftFileReferenceSet.java @@ -0,0 +1,69 @@ +/* + * Copyright 2000-2016 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.psi.impl.source.resolve.reference.impl.providers; + +import com.intellij.openapi.fileTypes.FileType; +import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiReferenceProvider; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * @author Dennis.Ushakov + */ +public class SoftFileReferenceSet extends FileReferenceSet { + public SoftFileReferenceSet(String str, + @NotNull PsiElement element, + int startInElement, + PsiReferenceProvider provider, + boolean caseSensitive, + boolean endingSlashNotAllowed, + @Nullable FileType[] suitableFileTypes) { + super(str, element, startInElement, provider, caseSensitive, endingSlashNotAllowed, suitableFileTypes); + } + + public SoftFileReferenceSet(String str, + @NotNull PsiElement element, + int startInElement, + PsiReferenceProvider provider, + boolean caseSensitive, + boolean endingSlashNotAllowed, @Nullable FileType[] suitableFileTypes, boolean init) { + super(str, element, startInElement, provider, caseSensitive, endingSlashNotAllowed, suitableFileTypes, init); + } + + public SoftFileReferenceSet(String str, + @NotNull PsiElement element, + int startInElement, + @Nullable PsiReferenceProvider provider, boolean isCaseSensitive) { + super(str, element, startInElement, provider, isCaseSensitive); + } + + public SoftFileReferenceSet(@NotNull String str, + @NotNull PsiElement element, + int startInElement, + PsiReferenceProvider provider, boolean isCaseSensitive, boolean endingSlashNotAllowed) { + super(str, element, startInElement, provider, isCaseSensitive, endingSlashNotAllowed); + } + + public SoftFileReferenceSet(@NotNull PsiElement element) { + super(element); + } + + @Override + protected boolean isSoft() { + return true; + } +} diff --git a/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/references/FileReferenceInjector.java b/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/references/FileReferenceInjector.java index d5d4cc813eab..b87b36ca92fd 100644 --- a/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/references/FileReferenceInjector.java +++ b/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/references/FileReferenceInjector.java @@ -18,7 +18,7 @@ package org.intellij.plugins.intelliLang.references; import com.intellij.openapi.util.TextRange; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiReference; -import com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReferenceSet; +import com.intellij.psi.impl.source.resolve.reference.impl.providers.SoftFileReferenceSet; import com.intellij.psi.injection.ReferenceInjector; import com.intellij.util.ProcessingContext; import org.jetbrains.annotations.NotNull; @@ -45,11 +45,6 @@ public class FileReferenceInjector extends ReferenceInjector { @Override public PsiReference[] getReferences(@NotNull PsiElement element, @NotNull ProcessingContext context, @NotNull TextRange range) { String text = range.substring(element.getText()); - return new FileReferenceSet(text, element, range.getStartOffset(), null, true) { - @Override - protected boolean isSoft() { - return true; - } - }.getAllReferences(); + return new SoftFileReferenceSet(text, element, range.getStartOffset(), null, true).getAllReferences(); } }