summaryrefslogtreecommitdiff
path: root/xml/xml-psi-impl/src/com/intellij/psi/impl/source/html/HtmlFileImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'xml/xml-psi-impl/src/com/intellij/psi/impl/source/html/HtmlFileImpl.java')
-rw-r--r--xml/xml-psi-impl/src/com/intellij/psi/impl/source/html/HtmlFileImpl.java15
1 files changed, 11 insertions, 4 deletions
diff --git a/xml/xml-psi-impl/src/com/intellij/psi/impl/source/html/HtmlFileImpl.java b/xml/xml-psi-impl/src/com/intellij/psi/impl/source/html/HtmlFileImpl.java
index 86b2368b6489..be3b9724a958 100644
--- a/xml/xml-psi-impl/src/com/intellij/psi/impl/source/html/HtmlFileImpl.java
+++ b/xml/xml-psi-impl/src/com/intellij/psi/impl/source/html/HtmlFileImpl.java
@@ -59,10 +59,18 @@ public class HtmlFileImpl extends XmlFileImpl implements FileReferenceResolver {
return null;
}
- VirtualFile childFile = file.findChild(name);
- HttpFileSystem fileSystem = (HttpFileSystem)getVirtualFile().getFileSystem();
+ VirtualFile parent = file;
+ if (!parent.isDirectory()) {
+ parent = parent.getParent();
+ if (parent == null) {
+ parent = file;
+ }
+ }
+
+ VirtualFile childFile = parent.findChild(name);
+ HttpFileSystem fileSystem = (HttpFileSystem)parent.getFileSystem();
if (childFile == null) {
- childFile = fileSystem.createChild(getVirtualFile(), name, !reference.isLast());
+ childFile = fileSystem.createChild(parent, name, !reference.isLast());
}
if (childFile.isDirectory()) {
// pre create children
@@ -72,7 +80,6 @@ public class HtmlFileImpl extends XmlFileImpl implements FileReferenceResolver {
FileReference childReference = references[i];
childParent = fileSystem.createChild(childParent, childReference.decode(childReference.getText()), i != (n - 1));
}
-
return getManager().findDirectory(childFile);
}
else {