Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using CssSyntax;
- using CssSyntax.SyntaxTree;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace CssDupfinder
- {
- public class CssDuplicateSelectorWalker : CssWalker
- {
- private readonly IDictionary<String, List<RangePosition>> selectors = new Dictionary<String, List<RangePosition>>();
- public IDictionary<String, List<RangePosition>> Duplicates
- {
- get { return selectors.Where(s => s.Value.Count > 1).ToDictionary(s => s.Key, s => s.Value); }
- }
- protected override void VisitBeginSelector(string selector, int line, int column)
- {
- List<RangePosition> list;
- if (selectors.ContainsKey(selector))
- {
- list = selectors[selector];
- }
- else
- {
- list = new List<RangePosition>();
- selectors.Add(selector, list);
- }
- list.Add(new RangePosition
- {
- Start = new Position(line, column)
- });
- }
- protected override void VisitEndSelector(string selector, int line, int column)
- {
- selectors[selector].Last().End = new Position(line, column);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement