コード例 #1
0
        public Task <ExecutionResult> Execute(IReplWindow window, string arguments)
        {
            if (string.IsNullOrWhiteSpace(arguments))
            {
                var curValue = (bool)window.GetOptionValue(ReplOptions.ShowOutput);
                window.WriteLine("ECHO is " + (curValue ? "ON" : "OFF"));
                return(ExecutionResult.Succeeded);
            }

            if (arguments.Equals("on", System.StringComparison.InvariantCultureIgnoreCase))
            {
                window.SetOptionValue(ReplOptions.ShowOutput, true);
                return(ExecutionResult.Succeeded);
            }
            else if (arguments.Equals("off", System.StringComparison.InvariantCultureIgnoreCase))
            {
                window.SetOptionValue(ReplOptions.ShowOutput, false);
                return(ExecutionResult.Succeeded);
            }

            //Any other value passed to .echo we treat as a message
            window.WriteLine(arguments);

            return(ExecutionResult.Succeeded);
        }
コード例 #2
0
ファイル: LoadReplCommand.cs プロジェクト: krus/PTVS
        public Task <ExecutionResult> Execute(IReplWindow window, string arguments)
        {
            var finder = new FileFinder(arguments);

            var eval = window.Evaluator as BasePythonReplEvaluator;

            if (eval != null && eval.CurrentOptions != null)
            {
                finder.Search(eval.CurrentOptions.WorkingDirectory);
                finder.SearchAll(eval.CurrentOptions.SearchPaths, ';');
            }

            finder.ThrowIfNotFound();

            string commandPrefix = (string)window.GetOptionValue(ReplOptions.CommandPrefix);
            string lineBreak     = window.TextView.Options.GetNewLineCharacter();

            IEnumerable <string> lines = File.ReadLines(finder.Filename);
            IEnumerable <string> submissions;

            if (eval != null)
            {
                submissions = eval.JoinCode(lines).Where(CommentPrefixPredicate);
            }
            else
            {
                // v1 behavior, will probably never be hit, but if someone was developing their own IReplEvaluator
                // and using this class it would be hit.
                var submissionList    = new List <string>();
                var currentSubmission = new List <string>();

                foreach (var line in lines)
                {
                    if (line.StartsWith(_commentPrefix))
                    {
                        continue;
                    }

                    if (line.StartsWith(commandPrefix))
                    {
                        AddSubmission(submissionList, currentSubmission, lineBreak);

                        submissionList.Add(line);
                        currentSubmission.Clear();
                    }
                    else
                    {
                        currentSubmission.Add(line);
                    }
                }

                AddSubmission(submissionList, currentSubmission, lineBreak);

                submissions = submissionList;
            }

            window.Submit(submissions);
            return(ExecutionResult.Succeeded);
        }
コード例 #3
0
ファイル: LoadReplCommand.cs プロジェクト: wenh123/PTVS
        public Task<ExecutionResult> Execute(IReplWindow window, string arguments) {
            var finder = new FileFinder(arguments);

            var eval = window.Evaluator as BasePythonReplEvaluator;
            if (eval != null && eval.CurrentOptions != null) {
                finder.Search(eval.CurrentOptions.WorkingDirectory);
                finder.SearchAll(eval.CurrentOptions.SearchPaths, ';');
            }

            finder.ThrowIfNotFound();
#if DEV14_OR_LATER
            string commandPrefix = "$";
#else
            string commandPrefix = (string)window.GetOptionValue(ReplOptions.CommandPrefix);
#endif
            string lineBreak = window.TextView.Options.GetNewLineCharacter();

            IEnumerable<string> lines = File.ReadLines(finder.Filename);
            IEnumerable<string> submissions;

            if (eval != null) {
                submissions = eval.JoinCode(lines).Where(CommentPrefixPredicate);
            } else {
                // v1 behavior, will probably never be hit, but if someone was developing their own IReplEvaluator
                // and using this class it would be hit.
                var submissionList = new List<string>();
                var currentSubmission = new List<string>();

                foreach (var line in lines) {
                    if (line.StartsWith(_commentPrefix)) {
                        continue;
                    }

                    if (line.StartsWith(commandPrefix)) {
                        AddSubmission(submissionList, currentSubmission, lineBreak);

                        submissionList.Add(line);
                        currentSubmission.Clear();
                    } else {
                        currentSubmission.Add(line);
                    }
                }

                AddSubmission(submissionList, currentSubmission, lineBreak);

                submissions = submissionList;
            }

            window.Submit(submissions);
            return ExecutionResult.Succeeded;
        }
コード例 #4
0
        public Task<ExecutionResult> Execute(IReplWindow window, string arguments) {

            if (string.IsNullOrWhiteSpace(arguments)) {
                var curValue = (bool)window.GetOptionValue(ReplOptions.ShowOutput);
                window.WriteLine("ECHO is " + (curValue ? "ON" : "OFF"));
                return ExecutionResult.Succeeded;
            }

            if (arguments.Equals("on", System.StringComparison.InvariantCultureIgnoreCase)) {
                window.SetOptionValue(ReplOptions.ShowOutput, true);
                return ExecutionResult.Succeeded;
            } else if(arguments.Equals("off",System.StringComparison.InvariantCultureIgnoreCase)) {
                window.SetOptionValue(ReplOptions.ShowOutput, false);
                return ExecutionResult.Succeeded;
            }

            //Any other value passed to .echo we treat as a message
            window.WriteLine(arguments);

            return ExecutionResult.Succeeded;
        }