public void WriteCodeDomToFile(FileProjectItem baseItem, string outputFileName, CodeCompileUnit ccu) { WorkbenchSingleton.AssertMainThread(); CodeDomProvider provider = project.LanguageProperties.CodeDomProvider; CodeGeneratorOptions options = new CodeDOMGeneratorUtility().CreateCodeGeneratorOptions; string codeOutput; using (StringWriter writer = new StringWriter()) { if (provider == null) { writer.WriteLine("No CodeDom provider was found for this language."); } else { provider.GenerateCodeFromCompileUnit(ccu, writer, options); } codeOutput = writer.ToString(); } FileUtility.ObservedSave(delegate(string fileName) { File.WriteAllText(fileName, codeOutput, Encoding.UTF8); }, outputFileName, FileErrorPolicy.Inform); EnsureOutputFileIsInProject(baseItem, outputFileName); ParserService.EnqueueForParsing(outputFileName, codeOutput); }
public void WriteCodeDomToFile(FileProjectItem baseItem, string outputFileName, CodeCompileUnit ccu) { WorkbenchSingleton.AssertMainThread(); CodeDomProvider provider = project.LanguageProperties.CodeDomProvider; CodeGeneratorOptions options = new CodeDOMGeneratorUtility().CreateCodeGeneratorOptions; if (project.LanguageProperties == LanguageProperties.VBNet) { // the root namespace is implicit in VB foreach (CodeNamespace ns in ccu.Namespaces) { if (string.Equals(ns.Name, project.RootNamespace, StringComparison.OrdinalIgnoreCase)) { ns.Name = string.Empty; } else if (ns.Name.StartsWith(project.RootNamespace + ".", StringComparison.OrdinalIgnoreCase)) { ns.Name = ns.Name.Substring(project.RootNamespace.Length + 1); } } } string codeOutput; using (StringWriter writer = new StringWriter()) { if (provider == null) { writer.WriteLine("No CodeDom provider was found for this language."); } else { provider.GenerateCodeFromCompileUnit(ccu, writer, options); } codeOutput = writer.ToString(); } FileUtility.ObservedSave(delegate(string fileName) { File.WriteAllText(fileName, codeOutput, Encoding.UTF8); }, outputFileName, FileErrorPolicy.Inform); EnsureOutputFileIsInProject(baseItem, outputFileName); ParserService.BeginParse(outputFileName, new StringTextBuffer(codeOutput)); }
public void WriteCodeDomToFile(FileProjectItem baseItem, string outputFileName, CodeCompileUnit ccu) { WorkbenchSingleton.AssertMainThread(); CodeDomProvider provider = project.LanguageProperties.CodeDomProvider; CodeGeneratorOptions options = new CodeDOMGeneratorUtility().CreateCodeGeneratorOptions; string codeOutput; using (StringWriter writer = new StringWriter()) { if (provider == null) { writer.WriteLine("No CodeDom provider was found for this language."); } else { provider.GenerateCodeFromCompileUnit(ccu, writer, options); } codeOutput = writer.ToString(); } FileUtility.ObservedSave(delegate(string fileName) { File.WriteAllText(fileName, codeOutput, Encoding.UTF8); }, outputFileName, FileErrorPolicy.Inform); EnsureOutputFileIsInProject(baseItem, outputFileName); ParserService.BeginParse(outputFileName, new StringTextBuffer(codeOutput)); }