Exemplo n.º 1
0
        /// <summary>
        /// Creates a new DocumentChangeEventArgs object.
        /// </summary>
        public DocumentChangeEventArgs(int offset, string removedText, string insertedText, OffsetChangeMap offsetChangeMap)
        {
            ThrowUtil.CheckNotNegative(offset, "offset");
            ThrowUtil.CheckNotNull(removedText, "removedText");
            ThrowUtil.CheckNotNull(insertedText, "insertedText");

            Offset       = offset;
            RemovedText  = removedText;
            InsertedText = insertedText;

            if (offsetChangeMap != null)
            {
                if (!offsetChangeMap.IsFrozen)
                {
                    throw new ArgumentException("The OffsetChangeMap must be frozen before it can be used in DocumentChangeEventArgs");
                }
                if (!offsetChangeMap.IsValidForDocumentChange(offset, removedText.Length, insertedText.Length))
                {
                    throw new ArgumentException("OffsetChangeMap is not valid for this document change", nameof(offsetChangeMap));
                }
                this.offsetChangeMap = offsetChangeMap;
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// Creates a new AnchorSegment that creates new anchors.
 /// </summary>
 public AnchorSegment(TextDocument document, ISegment segment)
     : this(document, ThrowUtil.CheckNotNull(segment, "segment").Offset, segment.Length)
 {
 }