/// <summary> /// Inserts a returns element to the element if its missing. /// </summary> /// <param name="memberDeclaration"> /// The <see cref="ITypeMemberDeclaration"/> to check and fix. /// </param> /// <param name="returnType"> /// The text to insert as the return type. /// </param> public void InsertReturnsElement(ITypeMemberDeclaration memberDeclaration, string returnType) { Param.RequireNotNull(memberDeclaration, "memberDeclaration"); DeclarationHeader declarationHeader = new DeclarationHeader(memberDeclaration); if (declarationHeader.IsMissing || declarationHeader.IsInherited) { return; } string valueText = string.Empty; IContextBoundSettingsStore settingsStore = PsiSourceFileExtensions.GetSettingsStore(null, memberDeclaration.GetSolution()); if (settingsStore.GetValue((StyleCopOptionsSettingsKey key) => key.InsertTextIntoDocumentation)) { valueText = string.Format("The <see cref=\"{0}\"/>.", returnType.SubstringBefore('{')); } XmlNode xmlNode = declarationHeader.XmlNode; XmlNode returnsXmlNode = declarationHeader.ReturnsXmlNode; if (declarationHeader.HasReturns) { if (string.IsNullOrEmpty(returnsXmlNode.InnerText.Trim())) { returnsXmlNode.InnerXml = valueText; declarationHeader.Update(); } } else { XmlNode valueNode = CreateNode(xmlNode, "returns"); valueNode.InnerXml = valueText; xmlNode.AppendChild(valueNode); declarationHeader.Update(); } }