Esempio n. 1
0
        public override IReadOnlyList <TextChangeRange> GetChangeRanges(SourceText oldText)
        {
            if (oldText == null)
            {
                throw new ArgumentNullException(nameof(oldText));
            }

            if (ReferenceEquals(_oldText, oldText))
            {
                // check whether the bases are same one
                return(_changes);
            }

            if (_oldText.GetChangeRanges(oldText).Count == 0)
            {
                // okay, the bases are different, but the contents might be same.
                return(_changes);
            }

            if (this == oldText)
            {
                return(TextChangeRange.NoChanges);
            }

            return(ImmutableArray.Create(new TextChangeRange(new TextSpan(0, oldText.Length), _newText.Length)));
        }