// Returns the closest insertion position, treating all unicode code points
        // as valid insertion positions.  A useful performance win over
        // GetNextInsertionPosition when only formatting scopes are important.
        ITextPointer ITextPointer.GetFormatNormalizedPosition(LogicalDirection direction)
        {
            ITextPointer pointer = ((ITextPointer)this).CreatePointer();

            TextPointerBase.MoveToFormatNormalizedPosition(pointer, direction);
            pointer.Freeze();
            return(pointer);
        }
        // Candidate for replacing MoveToInsertionPosition for immutable TextPointer model
        ITextPointer ITextPointer.GetInsertionPosition(LogicalDirection direction)
        {
            ITextPointer pointer = ((ITextPointer)this).CreatePointer();

            pointer.MoveToInsertionPosition(direction);
            pointer.Freeze();
            return(pointer);
        }
        // Candidate for replacing MoveToNextInsertionPosition for immutable TextPointer model
        ITextPointer ITextPointer.GetNextInsertionPosition(LogicalDirection direction)
        {
            ITextPointer pointer = ((ITextPointer)this).CreatePointer();

            if (pointer.MoveToNextInsertionPosition(direction))
            {
                pointer.Freeze();
            }
            else
            {
                pointer = null;
            }
            return(pointer);
        }
Beispiel #4
0
        // Token: 0x06002BEC RID: 11244 RVA: 0x000C7DA4 File Offset: 0x000C5FA4
        ITextPointer ITextPointer.GetNextContextPosition(LogicalDirection direction)
        {
            ITextPointer textPointer = ((ITextPointer)this).CreatePointer();

            if (textPointer.MoveToNextContextPosition(direction))
            {
                textPointer.Freeze();
            }
            else
            {
                textPointer = null;
            }
            return(textPointer);
        }
Beispiel #5
0
 // Token: 0x060035A4 RID: 13732 RVA: 0x000F3784 File Offset: 0x000F1984
 internal void OnTextChange(TextContainerChangeEventArgs e)
 {
     if (e.TextChange == TextChangeType.ContentAdded)
     {
         this.OnContentAdded(e);
     }
     else if (e.TextChange == TextChangeType.ContentRemoved)
     {
         this.OnContentRemoved(e.ITextPosition);
     }
     else
     {
         ITextPointer textPointer = e.ITextPosition.CreatePointer(e.Count);
         textPointer.Freeze();
         this.MarkDirtyRange(e.ITextPosition, textPointer);
     }
     this.DebugAssertRunList();
 }
        //------------------------------------------------------
        //
        //  Internal Methods
        //
        //------------------------------------------------------

        #region Internal Methods

        // Called by the Speller whenever document state changes.
        // Returns true if any new dirty runs are created.
        internal void OnTextChange(TextContainerChangeEventArgs e)
        {
            if (e.TextChange == TextChangeType.ContentAdded)
            {
                // Content was added.  Update the run list.
                OnContentAdded(e);
            }
            else if (e.TextChange == TextChangeType.ContentRemoved)
            {
                // Content was deleted.  Update the run list.
                OnContentRemoved(e.ITextPosition);
            }
            else
            {
                // Language or SpellingReform property changed.
                ITextPointer end = e.ITextPosition.CreatePointer(e.Count);
                end.Freeze();
                MarkDirtyRange(e.ITextPosition, end);
            }

            DebugAssertRunList();
        }