/// <summary> /// Get hover content for an <see cref="MSBuildUnusedProperty"/>. /// </summary> /// <param name="unusedProperty"> /// The <see cref="MSBuildUnusedProperty"/>. /// </param> /// <returns> /// The content, or <c>null</c> if no content is provided. /// </returns> public MarkedStringContainer UnusedProperty(MSBuildUnusedProperty unusedProperty) { if (unusedProperty == null) { throw new ArgumentNullException(nameof(unusedProperty)); } List <MarkedString> content = new List <MarkedString> { $"Unused Property: `{unusedProperty.Name}` (condition is false)" }; string propertyHelp = MSBuildSchemaHelp.ForProperty(unusedProperty.Name); if (propertyHelp != null) { content.Add(propertyHelp); } content.Add( $"Value would have been: `{unusedProperty.Value}`" ); return(new MarkedStringContainer(content)); }
/// <summary> /// Get hover content for an <see cref="MSBuildUnusedProperty"/>. /// </summary> /// <param name="unusedProperty"> /// The <see cref="MSBuildUnusedProperty"/>. /// </param> /// <returns> /// The content, or <c>null</c> if no content is provided. /// </returns> public MarkedStringContainer UnusedProperty(MSBuildUnusedProperty unusedProperty) { if (unusedProperty == null) { throw new ArgumentNullException(nameof(unusedProperty)); } List <MarkedString> content = new List <MarkedString>(); if (unusedProperty.Element.HasParentPath(WellKnownElementPaths.DynamicPropertyGroup)) { content.Add( $"Dynamic Property: `{unusedProperty.Name}`" ); content.Add( "(properties declared in targets are only evaluated when building the project)" ); } else { content.Add( $"Unused Property: `{unusedProperty.Name}` (condition is false)" ); } string propertyHelp = MSBuildSchemaHelp.ForProperty(unusedProperty.Name); if (propertyHelp != null) { content.Add(propertyHelp); } content.Add( $"Value would have been: `{unusedProperty.Value}`" ); string helpLink = MSBuildSchemaHelp.HelpLinkForProperty(unusedProperty.Name); if (!String.IsNullOrWhiteSpace(helpLink)) { content.Add( $"[Help]({helpLink})" ); } return(new MarkedStringContainer(content)); }