vfs: support uri with custom protocol, like temp://, in VfsUtilCore#findRelativeFile...
authorSergey Simonchik <sergey.simonchik@jetbrains.com>
Fri, 6 Nov 2015 16:40:49 +0000 (19:40 +0300)
committerSergey Simonchik <sergey.simonchik@jetbrains.com>
Fri, 6 Nov 2015 16:40:49 +0000 (19:40 +0300)
platform/core-api/src/com/intellij/openapi/vfs/VfsUtilCore.java

index 539a8da7341c38750423adc65553063c02bf101a..975495669f9a2ddeeffbd2a2fe01485510ddaec5 100644 (file)
@@ -584,11 +584,18 @@ public class VfsUtilCore {
     }
 
     if (file == null) {
-      if (base == null) return StandardFileSystems.local().findFileByPath(uri);
-      if (!base.isDirectory()) base = base.getParent();
-      if (base == null) return StandardFileSystems.local().findFileByPath(uri);
-      file = VirtualFileManager.getInstance().findFileByUrl(base.getUrl() + "/" + uri);
-      if (file == null) return null;
+      if (base != null && !base.isDirectory()) {
+        base = base.getParent();
+      }
+      if (base == null) {
+        file = StandardFileSystems.local().findFileByPath(uri);
+        if (file == null) {
+          file = VirtualFileManager.getInstance().findFileByUrl(uri);
+        }
+      }
+      else {
+        file = VirtualFileManager.getInstance().findFileByUrl(base.getUrl() + "/" + uri);
+      }
     }
 
     return file;