package org.jetbrains.plugins.ruby.motion.run; import com.intellij.execution.ExecutionException; import com.intellij.openapi.util.Pair; import com.intellij.xdebugger.XExpression; import com.intellij.xdebugger.XSourcePosition; import com.jetbrains.cidr.execution.debugger.CidrDebugProcess; import com.jetbrains.cidr.execution.debugger.CidrEvaluatorHelper; import com.jetbrains.cidr.execution.debugger.backend.DebuggerCommandException; import com.jetbrains.cidr.execution.debugger.backend.DebuggerDriver; import com.jetbrains.cidr.execution.debugger.backend.LLValue; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** * @author Dennis.Ushakov */ public class MotionEvaluatorHelper extends CidrEvaluatorHelper { @Override public String convertExpression(@NotNull CidrDebugProcess process, String originalExpression, @Nullable XSourcePosition position) throws ConversionException { return originalExpression; } @Override public Pair<LLValue, String> convertAndEvaluate(@NotNull CidrDebugProcess process, @NotNull DebuggerDriver driver, @NotNull XExpression expression, XSourcePosition sourcePosition, long threadId, int frameIndex) throws ExecutionException, DebuggerCommandException { final String stringExpression = expression.getExpression(); final LLValue result = driver.evaluate(threadId, frameIndex, stringExpression); return Pair.create(result, stringExpression); } }