Пример #1
0
		public static XDocument FormatXml(string text, uint offset, uint length, uint cursor, ClangFormatSettings settings)
		{
			var startInfo = new ProcessStartInfo();
			var resultText = string.Empty;

			startInfo.FileName = Path.Combine(Platform.PluginsDirectory, "clang-format" + Platform.ExecutableExtension);
			startInfo.Arguments = string.Format("-offset={0} -length={1} -cursor={2} -style=\"{3}\" -output-replacements-xml",
				offset, length, cursor, settings);

			// Hide console window
			startInfo.UseShellExecute = false;
			startInfo.RedirectStandardOutput = true;
			startInfo.RedirectStandardError = true; //we can get the erros text now.
			startInfo.RedirectStandardInput = true;
			startInfo.CreateNoWindow = true;

			using (var process = Process.Start(startInfo))
			{
				using (var streamWriter = process.StandardInput)
				{
					streamWriter.Write(text);
					streamWriter.Close();

					using (var streamReader = process.StandardOutput)
					{
						resultText = streamReader.ReadToEnd();
					}
				}
			}

			return XDocument.Parse(resultText);
		}
Пример #2
0
        public static XDocument FormatXml(string text, uint offset, uint length, uint cursor, ClangFormatSettings settings)
        {
            var startInfo  = new ProcessStartInfo();
            var resultText = string.Empty;

            startInfo.FileName  = Path.Combine(Platform.ExtensionsFolder, "clang-format" + Platform.ExecutableExtension);
            startInfo.Arguments = string.Format("-offset={0} -length={1} -cursor={2} -style=\"{3}\" -output-replacements-xml",
                                                offset, length, cursor, settings);

            // Hide console window
            startInfo.UseShellExecute        = false;
            startInfo.RedirectStandardOutput = true;
            startInfo.RedirectStandardError  = true;            //we can get the erros text now.
            startInfo.RedirectStandardInput  = true;
            startInfo.CreateNoWindow         = true;

            using (var process = Process.Start(startInfo))
            {
                using (var streamWriter = process.StandardInput)
                {
                    streamWriter.Write(text);
                }

                using (var streamReader = process.StandardOutput)
                {
                    resultText = streamReader.ReadToEnd();
                }
            }

            return(XDocument.Parse(resultText));
        }