public SDLanguageItemCollection<SDDocumentation> ParseDocumentation(ISymbol symbol) { var documentationXml = symbol.GetDocumentationCommentXml(); var docDic = new SDLanguageItemCollection<SDDocumentation>(); if (!string.IsNullOrEmpty(documentationXml)) { var xml = XDocument.Parse($"<doc>{documentationXml}</doc>"); foreach (var child in xml.Descendants()) { var isoCode = child.Name.LocalName.ToLower(); if (CultureInfo.GetCultures(CultureTypes.NeutralCultures).Any(c => c.TwoLetterISOLanguageName == isoCode) || isoCode == "default") { // TODO //_sdRepository.AddDocumentationLanguage(child.Name.ToLower()); var languageDoc = ParseDocumentation(child.Descendants(), true); if(!docDic.ContainsKey(isoCode)) docDic.Add(isoCode, languageDoc); } } //Es wurde keine Sprachunterstützung in der Doku genutzt. //Deswegen wird die Doku einfach als "default" geladen. if (docDic.Count == 0) { var defaultDoc = ParseDocumentation(xml.Descendants()); docDic.Add("default", defaultDoc); } } return docDic; }
private SDNamespace GetParsedNamespace(INamespaceSymbol namespaceSymbol) { var descriptionFiles = _descriptionFiles.Where(d => Path.GetFileName(d).ToLower().Contains(namespaceSymbol.Name.ToLower() + ".sdnd")); var descriptions = new SDLanguageItemCollection<SDTemplate>(); foreach (var file in descriptionFiles) { if (!string.IsNullOrEmpty(namespaceSymbol.Name.Trim())) { var splitted = Path.GetFileName(file).ToLower().Replace(namespaceSymbol.Name.ToLower(), " ").Split('.'); if (splitted.Length > 0 && splitted[0].Length == 2 && CultureInfo.GetCultures(CultureTypes.AllCultures).Any(c => c.TwoLetterISOLanguageName == splitted[0])) { descriptions.Add(splitted[0], new SDTemplate(File.ReadAllText(file), ParserOptions.Tokens)); ExecuteOnDocLanguageFound(splitted[0].ToLower()); } else if (splitted.Length > 0 && string.IsNullOrEmpty(splitted[0].Trim())) { descriptions.Add("default", new SDTemplate(File.ReadAllText(file), ParserOptions.Tokens)); } } } return new SDNamespace(namespaceSymbol.GetIdentifier()) { Assemblyname = namespaceSymbol.ContainingAssembly.Name, Descriptions = descriptions }; }
internal SDNamespace GetParsedNamespace(IType type) { var descriptionFiles = _descriptionFiles.Where(d => Path.GetFileName(d).ToLower().Contains(type.Namespace.ToLower() + ".sdnd")); var descriptions = new SDLanguageItemCollection <SDTemplate>(); foreach (var file in descriptionFiles) { if (!string.IsNullOrEmpty(type.Namespace.Trim())) { var splitted = Path.GetFileName(file).ToLower().Replace(type.Namespace.ToLower(), " ").Split('.'); if (splitted.Length > 0 && splitted[0].Length == 2 && CultureInfo.GetCultures(CultureTypes.AllCultures).Any(c => c.TwoLetterISOLanguageName == splitted[0])) { descriptions.Add(splitted[0], new SDTemplate(File.ReadAllText(file), _tokens)); ExecuteOnDocLanguageFound(splitted[0].ToLower()); } else if (splitted.Length > 0 && string.IsNullOrEmpty(splitted[0].Trim())) { descriptions.Add("default", new SDTemplate(File.ReadAllText(file), _tokens)); } } } return(new SDNamespace(type.Namespace) { Assemblyname = ((DefaultResolvedTypeDefinition)type).ParentAssembly.FullAssemblyName, Descriptions = descriptions }); }
public SDLanguageItemCollection <SDDocumentation> ParseDocumentation(ISymbol symbol) { var documentationXml = symbol.GetDocumentationCommentXml(); var docDic = new SDLanguageItemCollection <SDDocumentation>(); if (!string.IsNullOrEmpty(documentationXml)) { var xml = XDocument.Parse($"<doc>{documentationXml}</doc>"); foreach (var child in xml.Descendants()) { var isoCode = child.Name.LocalName.ToLower(); if (CultureInfo.GetCultures(CultureTypes.NeutralCultures).Any(c => c.TwoLetterISOLanguageName == isoCode) || isoCode == "default") { // TODO //_sdRepository.AddDocumentationLanguage(child.Name.ToLower()); var languageDoc = ParseDocumentation(child.Descendants(), true); if (!docDic.ContainsKey(isoCode)) { docDic.Add(isoCode, languageDoc); } } } //Es wurde keine Sprachunterstützung in der Doku genutzt. //Deswegen wird die Doku einfach als "default" geladen. if (docDic.Count == 0) { var defaultDoc = ParseDocumentation(xml.Descendants()); docDic.Add("default", defaultDoc); } } return(docDic); }
private SDNamespace GetParsedNamespace(INamespaceSymbol namespaceSymbol) { var descriptionFiles = _descriptionFiles.Where(d => Path.GetFileName(d).ToLower().Contains(namespaceSymbol.ToDisplayString().ToLower() + ".sdnd")); var descriptions = new SDLanguageItemCollection <SDTemplate>(); foreach (var file in descriptionFiles) { if (!string.IsNullOrEmpty(namespaceSymbol.ToDisplayString().Trim())) { var splitted = Path.GetFileName(file).ToLower().Replace(namespaceSymbol.ToDisplayString().ToLower(), " ").Split('.'); if (splitted.Length > 0 && splitted[0].Length == 2 && CultureInfo.GetCultures(CultureTypes.AllCultures).Any(c => c.TwoLetterISOLanguageName == splitted[0])) { descriptions.Add(splitted[0], new SDTemplate(File.ReadAllText(file), ParserOptions.Tokens)); ExecuteOnDocLanguageFound(splitted[0].ToLower()); } else if (splitted.Length > 0 && string.IsNullOrEmpty(splitted[0].Trim())) { descriptions.Add("default", new SDTemplate(File.ReadAllText(file), ParserOptions.Tokens)); } } } return(new SDNamespace(namespaceSymbol.GetIdentifier()) { Assemblyname = namespaceSymbol.ContainingAssembly.Name, Descriptions = descriptions }); }
internal SDNamespace GetParsedNamespace(IType type) { var descriptionFiles = _descriptionFiles.Where(d => Path.GetFileName(d).ToLower().Contains(type.Namespace.ToLower() + ".sdnd")); var descriptions = new SDLanguageItemCollection<SDTemplate>(); foreach (var file in descriptionFiles) { if (!string.IsNullOrEmpty(type.Namespace.Trim())) { var splitted = Path.GetFileName(file).ToLower().Replace(type.Namespace.ToLower(), " ").Split('.'); if (splitted.Length > 0 && splitted[0].Length == 2 && CultureInfo.GetCultures(CultureTypes.AllCultures).Any(c => c.TwoLetterISOLanguageName == splitted[0])) { descriptions.Add(splitted[0], new SDTemplate(File.ReadAllText(file), _tokens)); ExecuteOnDocLanguageFound(splitted[0].ToLower()); } else if (splitted.Length > 0 && string.IsNullOrEmpty(splitted[0].Trim())) { descriptions.Add("default", new SDTemplate(File.ReadAllText(file), _tokens)); } } } return new SDNamespace(type.Namespace) { Assemblyname = ((DefaultResolvedTypeDefinition)type).ParentAssembly.FullAssemblyName, Descriptions = descriptions }; }
public SDProject() { DocumentationLanguages = new List<string>(); Descriptions = new SDLanguageItemCollection<SDTemplate>(); Articles = new SDLanguageItemCollection<List<SDArticle>>(); Tokens = new Dictionary<string, string>(); Images = new List<string>(); Solutions = new Dictionary<string, SDSolution>(); AddDocumentationLanguage("default"); }
public SDProject() { DocumentationLanguages = new List <string>(); Descriptions = new SDLanguageItemCollection <SDTemplate>(); Articles = new SDLanguageItemCollection <List <SDArticle> >(); Tokens = new Dictionary <string, string>(); Images = new List <string>(); Solutions = new Dictionary <string, SDSolution>(); AddDocumentationLanguage("default"); }
public SDNamespace(string fullname) { Guid = Guid.NewGuid(); Identifier = fullname; Fullname = fullname; IsProjectStranger = false; Descriptions = new SDLanguageItemCollection <SDTemplate>(); Types = new SortedList <SDType>(); Uses = new SortedList <SDNamespace>(); UsedBy = new SortedList <SDNamespace>(); }
public SDLanguageItemCollection<SDDocumentation> ParseDocumentation(IEntity entity) { var docDic = new SDLanguageItemCollection<SDDocumentation>(); try { if (entity != null) { var xmlDoc = XmlDocumentationElement.Get(entity); if (xmlDoc != null) { foreach (XmlDocumentationElement child in xmlDoc.Children) { if (CultureInfo.GetCultures(CultureTypes.NeutralCultures).Any(c => c.TwoLetterISOLanguageName == child.Name.ToLower()) || child.Name.ToLower() == "default") { // TODO //_sdRepository.AddDocumentationLanguage(child.Name.ToLower()); var languageDoc = ParseDocumentation(child.Children); docDic.Add(child.Name.ToLower(), languageDoc); } } //Es wurde keine Sprachunterstützung in der Doku genutzt. //Deswegen wird die Doku einfach als "default" geladen. if (docDic.Count == 0) { var defaultDoc = ParseDocumentation(xmlDoc.Children); docDic.Add("default", defaultDoc); } } } } catch (NullReferenceException ex) { Trace.TraceError(ex.ToString()); } return docDic; }
public SDLanguageItemCollection <SDDocumentation> ParseDocumentation(IEntity entity) { var docDic = new SDLanguageItemCollection <SDDocumentation>(); try { if (entity != null) { var xmlDoc = XmlDocumentationElement.Get(entity); if (xmlDoc != null) { foreach (XmlDocumentationElement child in xmlDoc.Children) { if (CultureInfo.GetCultures(CultureTypes.NeutralCultures).Any(c => c.TwoLetterISOLanguageName == child.Name.ToLower()) || child.Name.ToLower() == "default") { // TODO //_sdRepository.AddDocumentationLanguage(child.Name.ToLower()); var languageDoc = ParseDocumentation(child.Children); docDic.Add(child.Name.ToLower(), languageDoc); } } //Es wurde keine Sprachunterstützung in der Doku genutzt. //Deswegen wird die Doku einfach als "default" geladen. if (docDic.Count == 0) { var defaultDoc = ParseDocumentation(xmlDoc.Children); docDic.Add("default", defaultDoc); } } } } catch (NullReferenceException ex) { Trace.TraceError(ex.ToString()); } return(docDic); }
public SDType(string identifier, string name, SDNamespace sdNamespace) { Guid = Guid.NewGuid(); Identifier = identifier; Name = name; Namespace = sdNamespace; Documentations = new SDLanguageItemCollection <SDDocumentation>(); BaseTypes = new SortedList <SDType>(); ImplementedInterfaces = new SortedList <SDType>(); UsedBy = new SortedList <SDType>(); Uses = new SortedList <SDType>(); TypeParameters = new SortedList <SDTypeParameter>(); TypeArguments = new SortedList <SDType>(); Fields = new SortedList <SDField>(); Constructors = new SortedList <SDMethod>(); Methods = new SortedList <SDMethod>(); Events = new SortedList <SDEvent>(); Properties = new SortedList <SDProperty>(); NestedTypes = new SortedList <SDType>(); }
protected SDMemberBase() { Guid = Guid.NewGuid(); Documentations = new SDLanguageItemCollection <SDDocumentation>(); }