mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Fixed django file reference default roots and rebind.
This commit is contained in:
@@ -39,11 +39,16 @@ public class RootFileReferenceSet extends FileReferenceSet {
|
||||
final PsiFile file = getContainingFile();
|
||||
if (file != null) {
|
||||
|
||||
if (isAbsolutePathReference() && !ApplicationManager.getApplication().isUnitTestMode()) {
|
||||
VirtualFile root = LocalFileSystem.getInstance().getRoot();
|
||||
PsiDirectory directory = file.getManager().findDirectory(root);
|
||||
if (directory != null) {
|
||||
return Lists.<PsiFileSystemItem>newArrayList(directory);
|
||||
if (isAbsolutePathReference()) {
|
||||
if (!ApplicationManager.getApplication().isUnitTestMode()) {
|
||||
VirtualFile root = LocalFileSystem.getInstance().getRoot();
|
||||
PsiDirectory directory = file.getManager().findDirectory(root);
|
||||
if (directory != null) {
|
||||
return Lists.<PsiFileSystemItem>newArrayList(directory);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
+8
-4
@@ -17,17 +17,16 @@ package com.jetbrains.python.templateLanguages;
|
||||
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleUtilCore;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.PsiDirectory;
|
||||
import com.intellij.psi.PsiFileSystemItem;
|
||||
import com.intellij.psi.PsiManager;
|
||||
import com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReference;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.jetbrains.python.PythonStringUtil;
|
||||
import com.jetbrains.python.psi.PyStringLiteralExpression;
|
||||
import com.jetbrains.python.psi.PyStringLiteralFileReferenceSet;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -60,6 +59,11 @@ public class PyTemplateFileReferenceSet extends PyStringLiteralFileReferenceSet
|
||||
return contexts;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSeparatorString() {
|
||||
return TemplateFileReferenceSet.detectSeparator(getElement()); //we need it not to change slashes during rebind
|
||||
}
|
||||
|
||||
protected List<VirtualFile> getRoots(Module module) {
|
||||
return TemplatesService.getInstance(module).getTemplateFolders();
|
||||
}
|
||||
|
||||
+2
-5
@@ -40,11 +40,8 @@ import java.util.Collection;
|
||||
* @author yole
|
||||
*/
|
||||
public class TemplateFileReference extends WeakFileReference {
|
||||
@NotNull private final FileReferenceSet myReferenceSet;
|
||||
|
||||
public TemplateFileReference(@NotNull FileReferenceSet fileReferenceSet, TextRange range, int index, String text) {
|
||||
super(fileReferenceSet, range, index, text);
|
||||
myReferenceSet = fileReferenceSet;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -85,7 +82,7 @@ public class TemplateFileReference extends WeakFileReference {
|
||||
dstItem = _dstItem;
|
||||
}
|
||||
|
||||
final Collection<PsiFileSystemItem> contexts = myReferenceSet.getDefaultContexts();
|
||||
final Collection<PsiFileSystemItem> contexts = getFileReferenceSet().getDefaultContexts();
|
||||
switch (contexts.size()) {
|
||||
case 0:
|
||||
break;
|
||||
@@ -96,7 +93,7 @@ public class TemplateFileReference extends WeakFileReference {
|
||||
if (VfsUtil.isAncestor(contextFile, dstVFile, true)) {
|
||||
final String path = VfsUtilCore.getRelativePath(dstVFile, contextFile, '/');
|
||||
if (path != null) {
|
||||
return rename(path.replace("/", myReferenceSet.getSeparatorString()));
|
||||
return rename(path.replace("/", getFileReferenceSet().getSeparatorString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -528,8 +528,8 @@
|
||||
key="inspection.relation.display-name" groupKey="django" enabledByDefault="true" level="WARNING"
|
||||
implementationClass="com.jetbrains.django.lang.template.inspection.DjangoRelationInspection"/>
|
||||
|
||||
<moduleService serviceInterface="com.jetbrains.django.model.TemplateManager"
|
||||
serviceImplementation="com.jetbrains.django.model.TemplateManager"/>
|
||||
<moduleService serviceInterface="com.jetbrains.django.model.DjangoTemplateManager"
|
||||
serviceImplementation="com.jetbrains.django.model.DjangoTemplateManager"/>
|
||||
|
||||
<projectService serviceInterface="com.jetbrains.django.model.TagLibrary"
|
||||
serviceImplementation="com.jetbrains.django.model.TagLibrary"/>
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.jetbrains.django.lang.template.psi.impl.DjangoTemplateFileImpl;
|
||||
import com.jetbrains.django.model.TemplateManager;
|
||||
import com.jetbrains.django.model.DjangoTemplateManager;
|
||||
import com.jetbrains.django.ref.BaseReference;
|
||||
import com.jetbrains.python.PythonStringUtil;
|
||||
import com.jetbrains.python.buildout.config.psi.impl.BuildoutCfgFile;
|
||||
@@ -70,7 +70,7 @@ public class BuildoutPartReference extends BaseReference {
|
||||
public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException {
|
||||
Module module = ModuleUtil.findModuleForPsiElement(myElement);
|
||||
if (module != null) {
|
||||
String name = TemplateManager.getRelativeName(module, (DjangoTemplateFileImpl)element);
|
||||
String name = DjangoTemplateManager.getRelativeName(module, (DjangoTemplateFileImpl)element);
|
||||
if (name != null) {
|
||||
return myElement.replace(PyElementGenerator.getInstance(myElement.getProject()).createStringLiteralFromString(name));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user