import com.intellij.lang.ASTNode;
import com.intellij.openapi.util.TextRange;
import com.intellij.psi.*;
+import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry;
+import com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference;
import com.intellij.psi.util.PropertyUtil;
import com.intellij.util.ArrayUtil;
import com.intellij.util.IncorrectOperationException;
}
public PsiReference getReference() {
- return this;
+ PsiReference[] otherReferences = ReferenceProvidersRegistry.getReferencesFromProviders(this, GrArgumentLabel.class);
+ PsiReference[] thisReference = {this};
+ return new PsiMultiReference(otherReferences.length == 0 ? thisReference : ArrayUtil.mergeArrays(thisReference, otherReferences, PsiReference.class), this);
}
public String getName() {
}
+ @NotNull
public Object[] getVariants() {
return ArrayUtil.EMPTY_OBJECT_ARRAY;
}
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiReference;
import org.jetbrains.annotations.NonNls;
+import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.groovy.LightGroovyTestCase;
import java.io.File;
+import java.io.IOException;
/**
* @author ven
}
}
- protected PsiReference configureByFile(@NonNls String filePath) throws Exception{
+ protected PsiReference configureByFile(@NonNls String filePath, @Nullable String newFilePath) throws IOException {
filePath = StringUtil.trimStart(filePath, getTestName(true) + "/");
final VirtualFile vFile = myFixture.getTempDirFixture().getFile(filePath);
assertNotNull("file " + filePath + " not found", vFile);
assertTrue(offset >= 0);
fileText = fileText.substring(0, offset) + fileText.substring(offset + MARKER.length());
- myFixture.configureByText(vFile.getFileType(), fileText);
+ if (newFilePath == null) {
+ myFixture.configureByText(vFile.getName(), fileText);
+ }
+ else {
+ myFixture.configureByText(newFilePath, fileText);
+ }
PsiReference ref = myFixture.getFile().findReferenceAt(offset);
assertNotNull(ref);
return ref;
}
+ protected PsiReference configureByFile(@NonNls String filePath) throws Exception {
+ return configureByFile(filePath, null);
+ }
+
}