From 4d9e68668c44cabacbb896271f77180fa0678985 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Wed, 6 Nov 2013 18:03:39 +0100 Subject: [PATCH] sourcemaps: ability to resolve sources relative to generated file --- .../src/com/intellij/ide/browsers/UrlImpl.java | 3 +++ xml/impl/src/com/intellij/ide/browsers/Urls.java | 15 +++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/xml/impl/src/com/intellij/ide/browsers/UrlImpl.java b/xml/impl/src/com/intellij/ide/browsers/UrlImpl.java index 936cda3bb505..3523ad9bd172 100644 --- a/xml/impl/src/com/intellij/ide/browsers/UrlImpl.java +++ b/xml/impl/src/com/intellij/ide/browsers/UrlImpl.java @@ -169,6 +169,9 @@ public final class UrlImpl implements Url { return true; } if (!(o instanceof UrlImpl)) { + if (o instanceof LocalFileUrl && isInLocalFileSystem()) { + return o.getPath().equals(path); + } return false; } diff --git a/xml/impl/src/com/intellij/ide/browsers/Urls.java b/xml/impl/src/com/intellij/ide/browsers/Urls.java index 763204d24a23..cd40599b7a01 100644 --- a/xml/impl/src/com/intellij/ide/browsers/Urls.java +++ b/xml/impl/src/com/intellij/ide/browsers/Urls.java @@ -120,12 +120,23 @@ public final class Urls { // must not be used in NodeJS public static Url newFromVirtualFile(@NotNull VirtualFile file) { - String path = file.getPath(); if (file.isInLocalFileSystem()) { - return new UrlImpl(file.getFileSystem().getProtocol(), null, path); + return new UrlImpl(file.getFileSystem().getProtocol(), null, file.getPath()); } else { return parseUrl(file.getUrl(), false); } } + + public static boolean equalsIgnoreParameters(@NotNull Url url, @NotNull VirtualFile file) { + if (file.isInLocalFileSystem()) { + return url.isInLocalFileSystem() && url.getPath().equals(file.getPath()); + } + else if (url.isInLocalFileSystem()) { + return false; + } + + Url fileUrl = parseUrl(file.getUrl(), false); + return fileUrl != null && fileUrl.equalsIgnoreParameters(url); + } } \ No newline at end of file