Example #1
0
        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);
        }
Example #2
0
        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;
			
			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));
		}
Example #4
0
		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));
		}