public IList <ClassificationSpan> GetClassificationSpans(SnapshotSpan span) { List <ClassificationSpan> spans = new List <ClassificationSpan>(); if (!WESettings.GetBoolean(WESettings.Keys.SyncVendorValues) || !EnsureInitialized()) { return(spans); } var declarations = Cache.Where(d => span.End <= d.AfterEnd && d.Start >= span.Start); foreach (Declaration dec in Cache.Where(d => d.PropertyName.Text.Length > 0 && span.Snapshot.Length >= d.AfterEnd)) { if (dec.IsVendorSpecific()) { var ss = new SnapshotSpan(span.Snapshot, dec.Start, dec.Length); var s = new ClassificationSpan(ss, _decClassification); spans.Add(s); } int start = dec.Colon.AfterEnd; int length = dec.AfterEnd - start; if (span.Snapshot.Length > start + length) { var ss2 = new SnapshotSpan(span.Snapshot, start, length); var s2 = new ClassificationSpan(ss2, _valClassification); spans.Add(s2); } } return(spans); }
public IList <ClassificationSpan> GetClassificationSpans(SnapshotSpan span) { List <ClassificationSpan> spans = new List <ClassificationSpan>(); foreach (Declaration dec in Cache.Where(d => d.PropertyName.Text.Length > 0 && span.Start <= d.Start && span.End >= d.AfterEnd)) { if (dec.IsVendorSpecific()) { var ss = new SnapshotSpan(span.Snapshot, dec.Start, dec.Length); var s = new ClassificationSpan(ss, _decClassification); spans.Add(s); } if (dec.Semicolon == null) { continue; } int start = dec.Colon.AfterEnd; int length = dec.AfterEnd - start; if (span.Snapshot.Length > start + length) { var ss2 = new SnapshotSpan(span.Snapshot, start, length); var s2 = new ClassificationSpan(ss2, _valClassification); spans.Add(s2); } } return(spans); }
public IList <ClassificationSpan> GetClassificationSpans(SnapshotSpan span) { List <ClassificationSpan> spans = new List <ClassificationSpan>(); if (!WESettings.Instance.Css.SyncBase64ImageValues) { return(spans); } foreach (Declaration dec in Cache.Where(d => d.PropertyName.Text.EndsWith("background-image", StringComparison.OrdinalIgnoreCase) && span.Start <= d.Start && span.End >= d.AfterEnd)) { if (dec.PropertyName.Text.StartsWith("*background", StringComparison.OrdinalIgnoreCase)) { var ss = new SnapshotSpan(span.Snapshot, dec.Start, dec.Length); var s = new ClassificationSpan(ss, _decClassification); spans.Add(s); } if (dec.Semicolon == null) { continue; } int start = dec.Colon.AfterEnd; int length = dec.AfterEnd - start; if (span.Snapshot.Length > start + length) { var ss2 = new SnapshotSpan(span.Snapshot, start, length); var s2 = new ClassificationSpan(ss2, _valClassification); spans.Add(s2); } } return(spans); }
private void TreeItemsChanged(object sender, CssItemsChangedEventArgs e) { foreach (ParseItem item in e.DeletedItems) { var matches = _cache.Where(s => s.Start >= item.Start && s.AfterEnd <= item.AfterEnd); foreach (var match in matches.Reverse()) { _cache.Remove(match); } } foreach (ParseItem item in e.InsertedItems) { UpdateCache(item); } }