/// <summary> /// Возвращает структуру комментария. /// </summary> /// <param name="ownerName">Имя владельца комментария.</param> public void GetCommentsStructure(string ownerName) { var xmlList = XmlСomment.GetStructure().ChildNodes().ToList(); foreach (var xmlElement in xmlList) { if (xmlElement.Kind() is SyntaxKind.XmlText) { Comments.Add(new CommentStructure(xmlElement)); continue; } var xmlElementList = (XmlElementSyntax)xmlElement; var typeXml = xmlElementList.StartTag.Name.ToString(); switch (typeXml) { case "summary": Comments.Add(new CommentStructure(xmlElementList, ownerName, GetCommentText(xmlElementList))); break; case "param": Comments.Add(new CommentStructure(xmlElementList, AutoCommentRules.GenerateStandartAutoComment(GetParameterName(xmlElementList.StartTag)), GetCommentText(xmlElementList))); break; case "returns": Comments.Add(new CommentStructure(xmlElementList, AutoCommentRules.GenerateReturnAutoComment(), GetCommentText(xmlElementList))); break; } } }
/// <summary> /// Анализ комментария структуры. /// </summary> /// <param name="declaration">Лист объявления структуры.</param> public void AnalyzeStruct(StructDeclarationSyntax declaration) { var name = declaration.Identifier.Text; GetCommentsStructure(AutoCommentRules.GenerateStandartAutoComment(name)); }
/// <summary> /// Анализ комментария свойства. /// </summary> /// <param name="declaration">Лист объявления свойства.</param> public void AnalyzeProperty(PropertyDeclarationSyntax declaration) { var name = declaration.Identifier.Text; GetCommentsStructure(AutoCommentRules.GeneratePropertyAutoComment(name)); }
/// <summary> /// Анализ комментария интерфейса. /// </summary> /// <param name="declaration">Лист объявления интерфейса.</param> public void AnalyzeInterface(InterfaceDeclarationSyntax declaration) { var name = declaration.Identifier.Text; GetCommentsStructure(AutoCommentRules.GenerateInterfaceAutoComment(name)); }
/// <summary> /// Анализ комментария поля. /// </summary> /// <param name="declaration">Лист объявления поля.</param> public void AnalyzeField(FieldDeclarationSyntax declaration) { var name = declaration.Declaration.Variables.First().Identifier.Text; GetCommentsStructure(AutoCommentRules.GenerateStandartAutoComment(name)); }
/// <summary> /// Анализ комментария конструктора. /// </summary> /// <param name="declaration">Лист объявления конструктора.</param> public void AnalyzeConstructor(ConstructorDeclarationSyntax declaration) { var name = declaration.Identifier.Text; GetCommentsStructure(AutoCommentRules.GenerateConstructorAutoComment(name)); }