示例#1
0
        private void InternalRemoveMatchingAdornments(SnapshotSpan?visualSpan, Predicate <IAdornmentLayerElement> match)
        {
            List <AdornmentAndData> newVisuals = new List <AdornmentAndData>(_elements.Count);

            for (int i = 0; (i < _elements.Count); ++i)
            {
                AdornmentAndData data = _elements[i];

                if ((!visualSpan.HasValue || data.OverlapsWith(visualSpan.Value)) && match(data))
                {
                    this.RemoveTranslatableVisual(data);
                }
                else
                {
                    newVisuals.Add(data);
                }
            }

            _elements = newVisuals;
        }