From 549718f6b5270ca3b8d76339bbd0b31f79aeec28 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Thu, 19 Feb 2015 14:48:00 +0100 Subject: [PATCH] open actual source must use source content if available --- .../debugger/sourcemap/SourceMapDecoder.java | 4 ++++ .../debugger/sourcemap/SourceResolver.java | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/platform/script-debugger/backend/src/org/jetbrains/debugger/sourcemap/SourceMapDecoder.java b/platform/script-debugger/backend/src/org/jetbrains/debugger/sourcemap/SourceMapDecoder.java index c3ff56116ed1..397e04ef9f59 100644 --- a/platform/script-debugger/backend/src/org/jetbrains/debugger/sourcemap/SourceMapDecoder.java +++ b/platform/script-debugger/backend/src/org/jetbrains/debugger/sourcemap/SourceMapDecoder.java @@ -5,6 +5,7 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.util.text.StringUtilRt; import com.intellij.util.PathUtil; import com.intellij.util.SmartList; +import com.intellij.util.UriUtil; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.text.CharSequenceSubSequence; import org.jetbrains.annotations.NotNull; @@ -96,6 +97,9 @@ public final class SourceMapDecoder { } else if (propertyName.equals("sourceRoot")) { sourceRoot = readSourcePath(reader); + if (sourceRoot != null) { + sourceRoot = UriUtil.trimLeadingSlashes(sourceRoot); + } } else if (propertyName.equals("sources")) { sourcesReader = reader.subReader(); diff --git a/platform/script-debugger/backend/src/org/jetbrains/debugger/sourcemap/SourceResolver.java b/platform/script-debugger/backend/src/org/jetbrains/debugger/sourcemap/SourceResolver.java index 240ea8288562..6d7544b3acb8 100644 --- a/platform/script-debugger/backend/src/org/jetbrains/debugger/sourcemap/SourceResolver.java +++ b/platform/script-debugger/backend/src/org/jetbrains/debugger/sourcemap/SourceResolver.java @@ -5,6 +5,7 @@ import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.StandardFileSystems; import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.util.ArrayUtil; import com.intellij.util.Url; import com.intellij.util.UrlImpl; import com.intellij.util.Urls; @@ -123,6 +124,18 @@ public class SourceResolver { return index < 0 || index >= sourceContents.size() ? null : sourceContents.get(index); } + @Nullable + public String getSourceContent(int sourceIndex) { + if (ContainerUtil.isEmpty(sourceContents)) { + return null; + } + return sourceIndex < 0 || sourceIndex >= sourceContents.size() ? null : sourceContents.get(sourceIndex); + } + + public int getSourceIndex(@NotNull Url url) { + return ArrayUtil.indexOf(canonicalizedSources, url); + } + @Nullable public String getRawSource(@NotNull MappingEntry entry) { int index = entry.getSource();