Advertisement
Guest User

Untitled

a guest
Aug 3rd, 2015
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. using CssSyntax;
  2. using CssSyntax.SyntaxTree;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6.  
  7. namespace CssDupfinder
  8. {
  9. public class CssDuplicateSelectorWalker : CssWalker
  10. {
  11. private readonly IDictionary<String, List<RangePosition>> selectors = new Dictionary<String, List<RangePosition>>();
  12.  
  13. public IDictionary<String, List<RangePosition>> Duplicates
  14. {
  15. get { return selectors.Where(s => s.Value.Count > 1).ToDictionary(s => s.Key, s => s.Value); }
  16. }
  17.  
  18. protected override void VisitBeginSelector(string selector, int line, int column)
  19. {
  20. List<RangePosition> list;
  21.  
  22. if (selectors.ContainsKey(selector))
  23. {
  24. list = selectors[selector];
  25. }
  26. else
  27. {
  28. list = new List<RangePosition>();
  29. selectors.Add(selector, list);
  30. }
  31.  
  32. list.Add(new RangePosition
  33. {
  34. Start = new Position(line, column)
  35. });
  36. }
  37.  
  38. protected override void VisitEndSelector(string selector, int line, int column)
  39. {
  40. selectors[selector].Last().End = new Position(line, column);
  41. }
  42. }
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement