コード例 #1
0
        public override void DoCommand(object sender, EventArgs args)
        {
            var            window      = (IReplWindow)EnsureReplWindow();
            IVsWindowFrame windowFrame = (IVsWindowFrame)((ToolWindowPane)window).Frame;

            string filename, dir;

            if (!CommonPackage.TryGetStartupFileAndDirectory(out filename, out dir))
            {
                // TODO: Error reporting
                return;
            }

            ((RemotePythonVsEvaluator)window.Evaluator).Reset();

            ErrorHandler.ThrowOnFailure(windowFrame.Show());
            window.Focus();

            window.WriteLine(String.Format("Running {0}", filename));
            string scopeName = Path.GetFileNameWithoutExtension(filename);
            // now execute the current file in the REPL
            var engine = ((RemotePythonEvaluator)window.Evaluator).Engine;

            ThreadPool.QueueUserWorkItem(
                _ => {
                try {
                    var src = engine.CreateScriptSourceFromFile(filename, StringUtils.DefaultEncoding, Scripting.SourceCodeKind.Statements);
                    src.Compile().Execute(((RemotePythonEvaluator)window.Evaluator).CurrentScope);
                } catch (Exception e) {
                    window.WriteLine(String.Format("Exception: {0}", e));
                }
            }
                );
        }
コード例 #2
0
        public void Initialize()
        {
            string filename, dir;

            if (CommonPackage.TryGetStartupFileAndDirectory(out filename, out dir))
            {
                RemoteScriptFactory.SetCurrentDirectory(dir);
            }
        }