Пример #1
0
        private void RunScript(DTE2 dte, Script script)
        {
            string stdin = GetStdin(dte, script.StdinMode);

            Runner r = new Runner("cmd", "/c " + script.Command);

            FillEnvironment(dte, r);

            r.Run(stdin);

            dte.StatusBar.Text = string.Format("{0} {1} with exit code {2}", script.Name, r.ExitCode == 0 ? "succeeded" : "failed", r.ExitCode);

            dte.UndoContext.Open(script.Name, false);

            try
            {
                DoOutput(dte, script.StdoutMode, r.StdOut);
                DoOutput(dte, script.StderrMode, r.StdErr);
            }
            finally
            {
                dte.UndoContext.Close();
            }
        }
Пример #2
0
 private void FillEnvironment(DTE2 dte, Runner r)
 {
     r.AddEnv("FullPath", dte.ActiveDocument.FullName);
     r.AddEnv("Filename", Misc.GetPathFileNameWithoutExtension(dte.ActiveDocument.FullName));
     r.AddEnv("Extension", Misc.GetPathExtension(dte.ActiveDocument.FullName));
     r.AddEnv("Directory", Misc.GetPathDirectoryName(dte.ActiveDocument.FullName));
     r.AddEnv("RootDir", Misc.GetPathRoot(dte.ActiveDocument.FullName));
     r.AddEnv("TabSize", dte.ActiveDocument.TabSize.ToString());
 }