/// <summary>
        /// Compiles a <see cref="UvssRule"/> from the specified syntax node.
        /// </summary>
        private static UvssRule CompileRule(UvssRuleSyntax node, CultureInfo culture)
        {
            var owner       = node.PropertyName.AttachedPropertyOwnerNameIdentifier?.Text;
            var name        = node.PropertyName.PropertyNameIdentifier.Text;
            var value       = node.Value.Value;
            var isImportant = node.QualifierToken?.Kind == SyntaxKind.ImportantKeyword;

            return(new UvssRule(
                       new UvssRuleArgumentsCollection(null),
                       owner,
                       name,
                       value,
                       isImportant));
        }
Esempio n. 2
0
        /// <inheritdoc/>
        public override SyntaxNode VisitRule(UvssRuleSyntax node)
        {
            var unchanged = true;

            var newPropertyName = (UvssPropertyNameSyntax)Visit(node.PropertyName);

            if (newPropertyName != node.PropertyName)
            {
                unchanged = false;
            }

            var newColonToken = (SyntaxToken)Visit(node.ColonToken);

            if (newColonToken != node.ColonToken)
            {
                unchanged = false;
            }

            var newValue = (UvssPropertyValueSyntax)Visit(node.Value);

            if (newValue != node.Value)
            {
                unchanged = false;
            }

            var newQualifierToken = (SyntaxToken)Visit(node.QualifierToken);

            if (newQualifierToken != node.QualifierToken)
            {
                unchanged = false;
            }

            var newSemiColonToken = (SyntaxToken)Visit(node.SemiColonToken);

            if (newSemiColonToken != node.SemiColonToken)
            {
                unchanged = false;
            }

            return(unchanged ? node : new UvssRuleSyntax(
                       newPropertyName,
                       newColonToken,
                       newValue,
                       newQualifierToken,
                       newSemiColonToken));
        }
 /// <summary>
 /// Visits the specified rule node.
 /// </summary>
 /// <param name="node">The node to visit.</param>
 /// <returns>A node which should replace the visited node, or a reference to the visited node
 /// itself if no changes were made.</returns>
 public virtual SyntaxNode VisitRule(UvssRuleSyntax node)
 {
     return(VisitSyntaxNode(node));
 }
 /// <summary>
 /// Visits a rule node.
 /// </summary>
 /// <param name="rule">The rule node to visit.</param>
 private void VisitRule(UvssRuleSyntax rule)
 {
     Style(rule.ColonToken, typeUvssPropertyName);
 }