コード例 #1
0
ファイル: DebugSession.cs プロジェクト: fpcMotif/RTVS
        public async Task <DebugEvaluationResult> EvaluateAsync(
            DebugStackFrame stackFrame,
            string expression,
            string name,
            string env,
            DebugEvaluationResultFields fields,
            int?reprMaxLength = null,
            CancellationToken cancellationToken = default(CancellationToken)
            )
        {
            ThrowIfDisposed();

            await TaskUtilities.SwitchToBackgroundThread();

            await InitializeAsync(cancellationToken);

            env = env ?? stackFrame?.SysFrame ?? "NULL";
            var code        = Invariant($"rtvs:::toJSON(rtvs:::eval_and_describe({expression.ToRStringLiteral()}, {env},, {fields.ToRVector()},, {reprMaxLength}))");
            var jEvalResult = await InvokeDebugHelperAsync <JObject>(code, cancellationToken);

            return(DebugEvaluationResult.Parse(stackFrame, name, jEvalResult));
        }