Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(480)

Unified Diff: plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/ScriptImpl.java

Issue 11833010: Expose liveedit compile error data in SDK (Closed) Base URL: https://chromedevtools.googlecode.com/svn/trunk
Patch Set: fcr Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/ScriptImpl.java
diff --git a/plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/ScriptImpl.java b/plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/ScriptImpl.java
index e8471cb9898db83fe469c6d9717efd8ea9e219ca..addc7877446f5957a56123376b5467832a883675 100644
--- a/plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/ScriptImpl.java
+++ b/plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/ScriptImpl.java
@@ -8,6 +8,8 @@ import org.chromium.sdk.DebugContext;
import org.chromium.sdk.DebugEventListener;
import org.chromium.sdk.RelayOk;
import org.chromium.sdk.SyncCallback;
+import org.chromium.sdk.TextStreamPosition;
+import org.chromium.sdk.UpdatableScript;
import org.chromium.sdk.internal.ScriptBase;
import org.chromium.sdk.internal.liveeditprotocol.LiveEditResult;
import org.chromium.sdk.internal.protocolparser.JsonProtocolParseException;
@@ -102,7 +104,61 @@ public class ScriptImpl extends ScriptBase<Long> {
@Override
public void failure(String message, ErrorDetails errorDetails) {
- callback.failure(message);
+ UpdatableScript.Failure failure;
+ if (errorDetails == null) {
+ failure = UpdatableScript.Failure.UNSPECIFIED;
+ } else if (errorDetails.asChangeLiveCompileError() != null) {
+ final ChangeLiveBody.CompileErrorDetails compileErrorDetails =
+ errorDetails.asChangeLiveCompileError();
+ failure = new UpdatableScript.CompileErrorFailure() {
+ @Override public <R> R accept(Visitor<R> visitor) {
+ return visitor.visitCompileError(this);
+ }
+
+ @Override
+ public TextStreamPosition getStartPosition() {
+ ChangeLiveBody.CompileErrorDetails.PositionRange position =
+ compileErrorDetails.position();
+ if (position == null) {
+ return null;
+ }
+ return wrapJson(position.start());
+ }
+
+ @Override
+ public TextStreamPosition getEndPosition() {
+ ChangeLiveBody.CompileErrorDetails.PositionRange position =
+ compileErrorDetails.position();
+ if (position == null) {
+ return null;
+ }
+ return wrapJson(position.end());
+ }
+
+ @Override
+ public String getCompilerMessage() {
+ return compileErrorDetails.syntaxErrorMessage();
+ }
+
+ private TextStreamPosition wrapJson(
+ final ChangeLiveBody.CompileErrorDetails.Position pointPosition) {
+ return new TextStreamPosition() {
+ @Override public int getOffset() {
+ return (int) pointPosition.position();
+ }
+ @Override public int getLine() {
+ return (int) pointPosition.line();
+ }
+ @Override public int getColumn() {
+ return (int) pointPosition.column();
+ }
+ };
+ }
+ };
+ } else {
+ failure = UpdatableScript.Failure.UNSPECIFIED;
+ }
+ callback.failure(message, failure);
}
};
}

Powered by Google App Engine
This is Rietveld 408576698