continue WEB-8255 LiveEdit must work as part of JS debug session (JavaScript Debug Configuration)

WEB-8207 WEB-7071 WEB-6273 WEB-7461 WEB-1766 WEB-6951 WEB-6853 WEB-6918 WEB-6828 WEB-6826 WEB-6685 WEB-6196
This commit is contained in:
Vladimir Krivosheev
2013-06-25 12:31:21 +02:00
parent 632f1292b3
commit 2cf88be233
2 changed files with 20 additions and 4 deletions
@@ -36,6 +36,7 @@ import com.intellij.openapi.startup.StartupManager;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.impl.http.HttpVirtualFile;
import com.intellij.util.SmartList;
import com.intellij.util.messages.MessageBus;
import com.intellij.util.xmlb.annotations.Property;
import com.intellij.xdebugger.*;
@@ -289,14 +290,17 @@ public class XDebuggerManagerImpl extends XDebuggerManager
@NotNull
@Override
public <T extends XDebugProcess> Collection<? extends T> getDebugProcesses(Class<T> processClass) {
final List<T> list = new ArrayList<T>();
List<T> list = null;
for (XDebugSessionImpl session : mySessions.values()) {
final XDebugProcess process = session.getDebugProcess();
if (processClass.isInstance(process)) {
if (list == null) {
list = new SmartList<T>();
}
list.add(processClass.cast(process));
}
}
return list;
return list == null ? Collections.<T>emptyList() : list;
}
@Override
@@ -41,13 +41,25 @@ public final class Urls {
}
@Nullable
private static Url parseUrl(String url, boolean urlAsRaw) {
Matcher matcher = URI_PATTERN.matcher(url);
private static Url parseUrl(@NotNull String url, boolean urlAsRaw) {
String urlToParse;
if (url.startsWith("jar:file://")) {
urlToParse = url.substring("jar:".length());
}
else {
urlToParse = url;
}
Matcher matcher = URI_PATTERN.matcher(urlToParse);
if (!matcher.matches()) {
LOG.warn("Cannot parse url " + url);
return null;
}
String scheme = matcher.group(1);
if (urlToParse != url) {
scheme = "jar:" + scheme;
}
String authority = StringUtil.nullize(matcher.group(2));
String path = StringUtil.nullize(matcher.group(3));