public Task<ExecutionResult> Execute(IReplWindow window, string arguments) { List<string> submissions = new List<string>(); List<string> lines = new List<string>(); arguments = arguments.Trim(); if (arguments.StartsWith("\"") && arguments.EndsWith("\"")) { arguments = arguments.Substring(1, arguments.Length - 2); } string commandPrefix = (string)window.GetOptionValue(ReplOptions.CommandPrefix); string lineBreak = window.TextView.Options.GetNewLineCharacter(); var eval = window.Evaluator as JReplEvaluator; var debugEval = window.Evaluator as JDebugReplEvaluator; if (eval != null) { window.Submit(eval.SplitCode(File.ReadAllText(arguments)).Where(CommentPrefixPredicate)); return ExecutionResult.Succeeded; } else if (debugEval != null) { window.Submit(debugEval.SplitCode(File.ReadAllText(arguments)).Where(CommentPrefixPredicate)); return ExecutionResult.Succeeded; } else { // v1 beahvior, will probably never be hit, but if someone was developing their own IReplEvaluator // and using this class it would be hit. using (var stream = new StreamReader(arguments)) { string line; while ((line = stream.ReadLine()) != null) { if (line.StartsWith(_commentPrefix)) { continue; } if (line.StartsWith(commandPrefix)) { AddSubmission(submissions, lines, lineBreak); submissions.Add(line); lines.Clear(); } else { lines.Add(line); } } } AddSubmission(submissions, lines, lineBreak); window.Submit(submissions); return ExecutionResult.Succeeded; } }