Example #1
0
        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;
        }
Example #2
0
        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
            };
        }
Example #3
0
        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
            });
        }
Example #4
0
        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);
        }
Example #5
0
        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
            });
        }
Example #6
0
        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
            };
        }
Example #7
0
        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");
        }
Example #8
0
        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");
        }
Example #9
0
        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>();
        }
Example #10
0
        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;
        }
Example #11
0
        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);
        }
Example #12
0
        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>();
        }
Example #13
0
 protected SDMemberBase()
 {
     Guid           = Guid.NewGuid();
     Documentations = new SDLanguageItemCollection <SDDocumentation>();
 }