Beispiel #1
0
        public async Task <CodeResult> Execute(string code)
        {
            var result = new CodeResult();

            try
            {
                _state = _state == null
                    ? await CSharpScript.RunAsync(code, _scriptOptionsBuilder.Build())
                    : await _state.ContinueWithAsync(code);

                result.Output = _state.ReturnValue?.ToString();

                result.State = OutputState.Valid;

                result.Variables = _state.Variables
                                   .Select(variable => variable.Name)
                                   .ToList();
            }
            catch (CompilationErrorException exception)
            {
                if (_inputCheck.IsForceExecute(code))
                {
                    result.Output = exception.Message;
                    result.State  = OutputState.Error;
                }
                else
                {
                    result.State = OutputState.Continue;
                }
            }

            return(result);
        }
Beispiel #2
0
 public CompletionsProvider(IRoslynCompletionsProvider roslyn, ICompletionsParser parser,
                            ICompletionsFilter filter, IScriptOptionsBuilder scriptOptionsBuilder)
 {
     _roslyn  = roslyn;
     _parser  = parser;
     _filter  = filter;
     _imports = scriptOptionsBuilder.Build().Imports;
 }