private string GetSourceCode(object method) { TextFormatter formatter = new TextFormatter(); ILanguage language = this.languageManager.ActiveLanguage; if ((language != null) && (formatter != null)) { LanguageWriterConfiguration configuration = new LanguageWriterConfiguration(); configuration.Visibility = this.visibilityConfiguration; ILanguageWriter writer = language.GetWriter(formatter, configuration); if (writer != null) { try { IMethodDeclaration md = null; if (language.Translate) { ITranslator translator = this.translatorManager.CreateDisassembler(); if (translator != null) { md = translator.TranslateMethodDeclaration((IMethodDeclaration)method); } } else { md = (IMethodDeclaration)method; } writer.WriteMethodDeclaration(md); return(formatter.ToString()); } catch (Exception ex) { string sEx = ex.ToString(); } } } return(null); }
public int GenerateCode(object activeItem) { int exceptions = 0; ILanguageWriterConfiguration configuration = new LanguageWriterConfiguration(); IAssemblyResolver resolver = AssemblyManager.Resolver; AssemblyManager.Resolver = new AssemblyResolver(resolver); try { // write assembly IAssembly assembly = activeItem as IAssembly; if (assembly != null) { // calc progress bar count int pos = 0; int count = 2; // 1 for the assembly info, 1 for the project foreach (IModule module in assembly.Modules) { count += module.Types.Count; } count += assembly.Resources.Count; // write assembly info exceptions += WriteAssemblyInfo(assembly, configuration); SetProgressBar((++pos * 100) / count); // write modules string location = string.Empty; foreach (IModule module in assembly.Modules) { if (module.Location != location) location = module.Location; foreach (ITypeDeclaration typeDeclaration in module.Types) { if ((typeDeclaration.Namespace.Length != 0) || ( (typeDeclaration.Name != "<Module>") && (typeDeclaration.Name != "<PrivateImplementationDetails>"))) { exceptions += WriteTypeDeclaration(typeDeclaration, configuration); } SetProgressBar((++pos * 100) / count); } } // write resources foreach (IResource resource in assembly.Resources) { exceptions += WriteResource(resource); SetProgressBar((++pos * 100) / count); } GenerateVisualStudioProject(assembly.Name, _outputDirectory, assembly.Modules[0].AssemblyReferences); SetProgressBar((++pos * 100) / count); } // write single item else if (activeItem is ITypeDeclaration) { ITypeDeclaration typeDeclaration = activeItem as ITypeDeclaration; if ((typeDeclaration.Namespace.Length != 0) || ( (typeDeclaration.Name != "<Module>") && (typeDeclaration.Name != "<PrivateImplementationDetails>"))) { exceptions += WriteTypeDeclaration(typeDeclaration, configuration); } } } catch (Exception ex) { WriteLine("Error: " + ex.Message + Environment.NewLine + ex.StackTrace); exceptions++; } finally { AssemblyManager.Resolver = resolver; } return exceptions; }
private void Translate() { if (this.Parent != null) { RichTextFormatter formatter = new RichTextFormatter(); ILanguage language = this.languageManager.ActiveLanguage; LanguageWriterConfiguration configuration = new LanguageWriterConfiguration(); configuration.Visibility = this.visibilityConfiguration; configuration["ShowCustomAttributes"] = "true"; configuration["ShowNamespaceImports"] = "true"; configuration["ShowNamespaceBody"] = "true"; configuration["ShowTypeDeclarationBody"] = "true"; configuration["ShowMethodDeclarationBody"] = "false"; ILanguageWriter writer = language.GetWriter(formatter, configuration); object value = this.assemblyBrowser.ActiveItem; ITypeDeclaration typeDeclaration = value as ITypeDeclaration; if (typeDeclaration != null) { configuration["ShowMethodDeclarationBody"] = "false"; if (language.Translate) { typeDeclaration = this.translatorManager.CreateDisassembler(null, null).TranslateTypeDeclaration(typeDeclaration, true, false); } writer.WriteTypeDeclaration(typeDeclaration); } IFieldDeclaration fieldDeclaration = value as IFieldDeclaration; if (fieldDeclaration != null) { configuration["ShowMethodDeclarationBody"] = "true"; if (language.Translate) { fieldDeclaration = this.translatorManager.CreateDisassembler(null, null).TranslateFieldDeclaration(fieldDeclaration); } writer.WriteFieldDeclaration(fieldDeclaration); } IMethodDeclaration methodDeclaration = value as IMethodDeclaration; if (methodDeclaration != null) { configuration["ShowMethodDeclarationBody"] = "true"; if (language.Translate) { methodDeclaration = this.translatorManager.CreateDisassembler(null, null).TranslateMethodDeclaration(methodDeclaration); } writer.WriteMethodDeclaration(methodDeclaration); } IPropertyDeclaration propertyDeclaration = value as IPropertyDeclaration; if (propertyDeclaration != null) { configuration["ShowMethodDeclarationBody"] = "true"; if (language.Translate) { propertyDeclaration = this.translatorManager.CreateDisassembler(null, null).TranslatePropertyDeclaration(propertyDeclaration); } writer.WritePropertyDeclaration(propertyDeclaration); } IEventDeclaration eventDeclaration = value as IEventDeclaration; if (eventDeclaration != null) { configuration["ShowMethodDeclarationBody"] = "true"; if (language.Translate) { eventDeclaration = this.translatorManager.CreateDisassembler(null, null).TranslateEventDeclaration(eventDeclaration); } writer.WriteEventDeclaration(eventDeclaration); } this.Rtf = formatter.ToString(); } }
public int GenerateCode(object activeItem) { int exceptions = 0; ILanguageWriterConfiguration configuration = new LanguageWriterConfiguration(documentation, publicOnly, membersBody); IAssemblyResolver resolver = AssemblyManager.Resolver; AssemblyManager.Resolver = new AssemblyResolver(resolver); try { // write assembly IAssembly assembly = activeItem as IAssembly; if (assembly != null) { // calc progress bar count int pos = 0; int count = 2; // 1 for the assembly info, 1 for the project foreach (IModule module in assembly.Modules) { count += module.Types.Count; } count += assembly.Resources.Count; // write assembly info exceptions += WriteAssemblyInfo(assembly, configuration); SetProgressBar((++pos * 100) / count); // write modules string location = string.Empty; foreach (IModule module in assembly.Modules) { if (module.Location != location) { location = module.Location; } foreach (ITypeDeclaration typeDeclaration in module.Types.Cast <ITypeDeclaration>() .Where(d => publicOnly ? d.Visibility == TypeVisibility.Public || d.Visibility == TypeVisibility.NestedPublic : true)) { if ((typeDeclaration.Namespace.Length != 0) || ( (typeDeclaration.Name != "<Module>") && (typeDeclaration.Name != "<PrivateImplementationDetails>"))) { exceptions += WriteTypeDeclaration(typeDeclaration, configuration); } SetProgressBar((++pos * 100) / count); } } // write resources foreach (IResource resource in assembly.Resources) { exceptions += WriteResource(resource); SetProgressBar((++pos * 100) / count); } GenerateVisualStudioProject(assembly.Name, _outputDirectory, assembly.Modules[0].AssemblyReferences); SetProgressBar((++pos * 100) / count); } // write single item else if (activeItem is ITypeDeclaration) { ITypeDeclaration typeDeclaration = activeItem as ITypeDeclaration; if ((typeDeclaration.Namespace.Length != 0) || ( (typeDeclaration.Name != "<Module>") && (typeDeclaration.Name != "<PrivateImplementationDetails>"))) { exceptions += WriteTypeDeclaration(typeDeclaration, configuration); } } } catch (Exception ex) { WriteLine("Error: " + ex.Message + Environment.NewLine + ex.StackTrace); exceptions++; } finally { AssemblyManager.Resolver = resolver; } return(exceptions); }