Package com.jetbrains.lang.dart.ide.runner.server.frame

Source Code of com.jetbrains.lang.dart.ide.runner.server.frame.DartDebuggerEvaluator

package com.jetbrains.lang.dart.ide.runner.server.frame;

import com.intellij.xdebugger.XSourcePosition;
import com.intellij.xdebugger.evaluation.XDebuggerEvaluator;
import com.jetbrains.lang.dart.ide.runner.server.DartCommandLineDebugProcess;
import com.jetbrains.lang.dart.ide.runner.server.google.VmCallFrame;
import com.jetbrains.lang.dart.ide.runner.server.google.VmCallback;
import com.jetbrains.lang.dart.ide.runner.server.google.VmResult;
import com.jetbrains.lang.dart.ide.runner.server.google.VmValue;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.io.IOException;

class DartDebuggerEvaluator extends XDebuggerEvaluator {
  @NotNull private final DartCommandLineDebugProcess myDebugProcess;
  @NotNull private final VmCallFrame myVmCallFrame;

  public DartDebuggerEvaluator(final @NotNull DartCommandLineDebugProcess debugProcess, final @NotNull VmCallFrame vmCallFrame) {
    myDebugProcess = debugProcess;
    myVmCallFrame = vmCallFrame;
  }

  public boolean isCodeFragmentEvaluationSupported() {
    return false;
  }

  public void evaluate(@NotNull final String expression,
                       @NotNull final XEvaluationCallback callback,
                       @Nullable final XSourcePosition expressionPosition) {
    try {
      myDebugProcess.getVmConnection()
        .evaluateOnCallFrame(myVmCallFrame.getIsolate(), myVmCallFrame, expression,
                             new VmCallback<VmValue>() {
                               public void handleResult(final VmResult<VmValue> result) {
                                 if (result.isError()) {
                                   callback.errorOccurred(result.getError());
                                 }
                                 else {
                                   final VmValue vmValue = result.getResult();
                                   callback.evaluated(new DartValue(myDebugProcess, DartValue.NODE_NAME_RESULT, vmValue, false));
                                 }
                               }
                             }
        );
    }
    catch (IOException e) {
      callback.errorOccurred(e.toString());
    }
  }
}
TOP

Related Classes of com.jetbrains.lang.dart.ide.runner.server.frame.DartDebuggerEvaluator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.