mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
JspPrefixRefactoringTest fixed
This commit is contained in:
@@ -22,6 +22,7 @@ import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.VirtualFileManager;
|
||||
import com.intellij.openapi.vfs.VirtualFileWithId;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiFileFactory;
|
||||
@@ -34,7 +35,6 @@ import com.intellij.psi.util.CachedValueProvider;
|
||||
import com.intellij.psi.util.CachedValuesManager;
|
||||
import com.intellij.psi.util.ParameterizedCachedValue;
|
||||
import com.intellij.psi.util.ParameterizedCachedValueProvider;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.Processor;
|
||||
import com.intellij.util.containers.HashMap;
|
||||
import com.intellij.util.containers.MultiMap;
|
||||
@@ -222,7 +222,11 @@ public class FileIncludeManagerImpl extends FileIncludeManager {
|
||||
public CachedValueProvider.Result<VirtualFile[]> compute(PsiFile param) {
|
||||
VirtualFile[] value = computeFiles(param, myRuntimeOnly);
|
||||
// todo: we need "url modification tracker" for VirtualFile
|
||||
return CachedValueProvider.Result.create(value, ArrayUtil.append(value, param.getVirtualFile()));
|
||||
Object[] deps = new Object[value.length + 2];
|
||||
deps[deps.length - 2] = param.getVirtualFile();
|
||||
deps[deps.length - 1] = VirtualFileManager.getInstance();
|
||||
|
||||
return CachedValueProvider.Result.create(value, deps);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -207,7 +207,7 @@ public interface CodeInsightTestFixture extends IdeaProjectTestFixture {
|
||||
*/
|
||||
void launchAction(@NotNull IntentionAction action);
|
||||
|
||||
void configureByFile(@TestDataFile @NonNls String file);
|
||||
PsiFile configureByFile(@TestDataFile @NonNls String file);
|
||||
|
||||
void configureByFiles(@NonNls String... files);
|
||||
|
||||
@@ -305,7 +305,7 @@ public interface CodeInsightTestFixture extends IdeaProjectTestFixture {
|
||||
|
||||
void performEditorAction(String actionId);
|
||||
|
||||
int configureFromTempProjectFile(String filePath);
|
||||
PsiFile configureFromTempProjectFile(String filePath);
|
||||
|
||||
void configureFromExistingVirtualFile(VirtualFile f);
|
||||
|
||||
|
||||
+10
-9
@@ -661,7 +661,8 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
|
||||
new WriteCommandAction.Simple(project) {
|
||||
|
||||
protected void run() throws Exception {
|
||||
final int offset = configureByFilesInner(filePath);
|
||||
configureByFilesInner(filePath);
|
||||
int offset = myEditor.getCaretModel().getOffset();
|
||||
|
||||
final Collection<HighlightInfo> infos = doHighlighting();
|
||||
for (HighlightInfo info :infos) {
|
||||
@@ -945,7 +946,7 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
|
||||
super.tearDown();
|
||||
}
|
||||
|
||||
private int configureByFilesInner(@NonNls String... filePaths) throws IOException {
|
||||
private PsiFile configureByFilesInner(@NonNls String... filePaths) throws IOException {
|
||||
assertInitialized();
|
||||
myFile = null;
|
||||
myEditor = null;
|
||||
@@ -955,13 +956,14 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
|
||||
return configureByFileInner(filePaths[0]);
|
||||
}
|
||||
|
||||
public void configureByFile(final String file) {
|
||||
public PsiFile configureByFile(final String file) {
|
||||
assertInitialized();
|
||||
new WriteCommandAction.Simple(getProject()) {
|
||||
protected void run() throws Exception {
|
||||
configureByFilesInner(file);
|
||||
}
|
||||
}.execute();
|
||||
return myFile;
|
||||
}
|
||||
|
||||
public void configureByFiles(@NonNls final String... files) {
|
||||
@@ -1026,16 +1028,15 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
|
||||
/**
|
||||
*
|
||||
* @param filePath
|
||||
* @return caret offset or -1 if caret marker does not present
|
||||
* @throws IOException
|
||||
*/
|
||||
private int configureByFileInner(@NonNls String filePath) {
|
||||
private PsiFile configureByFileInner(@NonNls String filePath) {
|
||||
assertInitialized();
|
||||
final VirtualFile file = copyFileToProject(filePath);
|
||||
return configureByFileInner(file);
|
||||
}
|
||||
|
||||
public int configureFromTempProjectFile(final String filePath) {
|
||||
public PsiFile configureFromTempProjectFile(final String filePath) {
|
||||
return configureByFileInner(findFileInTempDir(filePath));
|
||||
}
|
||||
|
||||
@@ -1043,11 +1044,11 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
|
||||
configureByFileInner(f);
|
||||
}
|
||||
|
||||
private int configureByFileInner(final VirtualFile copy) {
|
||||
private PsiFile configureByFileInner(final VirtualFile copy) {
|
||||
return configureInner(copy, SelectionAndCaretMarkupLoader.fromFile(copy, getProject()));
|
||||
}
|
||||
|
||||
private int configureInner(@NotNull final VirtualFile copy, final SelectionAndCaretMarkupLoader loader) {
|
||||
private PsiFile configureInner(@NotNull final VirtualFile copy, final SelectionAndCaretMarkupLoader loader) {
|
||||
assertInitialized();
|
||||
try {
|
||||
final OutputStream outputStream = copy.getOutputStream(null, 0, 0);
|
||||
@@ -1077,7 +1078,7 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
|
||||
}
|
||||
}
|
||||
|
||||
return offset;
|
||||
return myFile;
|
||||
}
|
||||
|
||||
private static void setContext(final PsiFile file, final PsiElement context) {
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
package com.intellij.psi.impl.source.xml;
|
||||
|
||||
import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.openapi.util.NullableLazyValue;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiReferenceBase;
|
||||
@@ -36,21 +35,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
*/
|
||||
public class SchemaPrefixReference extends PsiReferenceBase<XmlElement> implements PossiblePrefixReference {
|
||||
|
||||
private final NullableLazyValue<SchemaPrefix> myPrefix = new NullableLazyValue<SchemaPrefix>() {
|
||||
@Override
|
||||
protected SchemaPrefix compute() {
|
||||
if (myElement instanceof XmlAttribute && (((XmlAttribute)myElement).isNamespaceDeclaration())) {
|
||||
return new SchemaPrefix((XmlAttribute)myElement, getRangeInElement(), myName);
|
||||
}
|
||||
else if (myElement instanceof XmlAttributeValue &&
|
||||
((XmlAttribute)((XmlAttributeValue)myElement).getParent()).getLocalName().equals("prefix")) {
|
||||
return SchemaPrefix.createJspPrefix((XmlAttributeValue)SchemaPrefixReference.this.myElement, myName);
|
||||
}
|
||||
else {
|
||||
return resolvePrefix(myElement, myName);
|
||||
}
|
||||
}
|
||||
};
|
||||
private final SchemaPrefix myPrefix;
|
||||
|
||||
private final String myName;
|
||||
@Nullable
|
||||
@@ -67,6 +52,16 @@ public class SchemaPrefixReference extends PsiReferenceBase<XmlElement> implemen
|
||||
super(element, range, true);
|
||||
myName = name;
|
||||
myTagNameReference = tagNameReference;
|
||||
if (myElement instanceof XmlAttribute && (((XmlAttribute)myElement).isNamespaceDeclaration())) {
|
||||
myPrefix = new SchemaPrefix((XmlAttribute)myElement, getRangeInElement(), myName);
|
||||
}
|
||||
else if (myElement instanceof XmlAttributeValue &&
|
||||
((XmlAttribute)((XmlAttributeValue)myElement).getParent()).getLocalName().equals("prefix")) {
|
||||
myPrefix = SchemaPrefix.createJspPrefix((XmlAttributeValue)myElement, myName);
|
||||
}
|
||||
else {
|
||||
myPrefix = null;
|
||||
}
|
||||
}
|
||||
|
||||
public String getNamespacePrefix() {
|
||||
@@ -74,7 +69,7 @@ public class SchemaPrefixReference extends PsiReferenceBase<XmlElement> implemen
|
||||
}
|
||||
|
||||
public SchemaPrefix resolve() {
|
||||
return myPrefix.getValue();
|
||||
return myPrefix == null ? resolvePrefix(myElement, myName) : myPrefix;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
Reference in New Issue
Block a user