open actual source must use source content if available

This commit is contained in:
Vladimir Krivosheev
2015-02-19 14:55:17 +01:00
parent 30f8bc8de9
commit 549718f6b5
2 changed files with 17 additions and 0 deletions
@@ -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();
@@ -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();