Exemple #1
0
        /// <summary>
        /// Finds out items that overlap a text range
        /// </summary>
        /// <param name="range">Text range</param>
        /// <returns>List of items that overlap the range</returns>
        public virtual IList <T> ItemsInRange(ITextRange range)
        {
            var list = _emptyList;

            var first = GetItemContaining(range.Start);

            if (first < 0)
            {
                first = GetFirstItemAfterPosition(range.Start);
            }

            if (first >= 0)
            {
                for (var i = first; i < this.Count; i++)
                {
                    if (this._items[i].Start >= range.End)
                    {
                        break;
                    }

                    if (TextRange.Intersect(this._items[i], range))
                    {
                        if (list == _emptyList)
                        {
                            list = new List <T>();
                        }

                        list.Add(this._items[i]);
                    }
                }
            }

            return(list);
        }
Exemple #2
0
 /// <summary>
 /// Finds out of range intersects another range
 /// </summary>
 /// <param name="start">Start of another range</param>
 /// <param name="length">Length of another range</param>
 /// <returns>True if ranges intersect</returns>
 public virtual bool Intersect(int start, int length)
 {
     return(TextRange.Intersect(this, start, length));
 }
Exemple #3
0
 /// <summary>
 /// Finds out of range intersects another range
 /// </summary>
 /// <param name="start">Text range</param>
 /// <returns>True if ranges intersect</returns>
 public virtual bool Intersect(ITextRange range)
 {
     return(TextRange.Intersect(this, range.Start, range.Length));
 }