Beispiel #1
0
        private static List <SelectorElement> CombineSequentialConstantIdentifiers(IEnumerable <SelectorElement> elements)
        {
            var selectorElements = elements.ToList();

            if (selectorElements.Count <= 1)
            {
                return(selectorElements);
            }

            for (var i = selectorElements.Count - 2; i >= 0; i--)
            {
                var element     = selectorElements[i];
                var nextElement = selectorElements[i + 1];

                if (element.HasTrailingWhitespace)
                {
                    continue;
                }

                if (element is IdentifierSelectorElement ise1 && nextElement is IdentifierSelectorElement ise2)
                {
                    var nextElementIdentifierValue = ((ConstantIdentifierPart)ise2.Identifier[0]).Value;

                    if (SelectorElementBreakingTokens.Any(t => nextElementIdentifierValue.StartsWith(t)))
                    {
                        continue;
                    }

                    selectorElements.RemoveAt(i + 1);
                    selectorElements[i] = new IdentifierSelectorElement(ise1.Identifier.CombineConstantIdentifiers(ise2.Identifier), false);
                }
            }
            return(selectorElements);
        }
Beispiel #2
0
 protected bool Equals(IdentifierSelectorElement other)
 {
     return(Equals(Identifier, other.Identifier));
 }