Example #1
0
        /// <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));
        }