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); }
protected bool Equals(IdentifierSelectorElement other) { return(Equals(Identifier, other.Identifier)); }