/// <summary> /// Splits the word into two parts. /// </summary> /// <param name="word">The word.</param> /// <param name="pos">The position, which lies in the range <c>[1, Length - 1]</c>.</param> /// <returns>The part after <paramref name="pos"/> is returned as a new <see cref="TextWord"/>.</returns> /// <remarks> /// The part before <paramref name="pos"/> is assigned to /// the reference parameter <paramref name="word"/>, the part after <paramref name="pos"/> is returned. /// </remarks> public static TextWord Split(ref TextWord word, int pos) { #if DEBUG if (word.Type != TextWordType.Word) { throw new ArgumentException("word.Type must be Word"); } if (pos <= 0) { throw new ArgumentOutOfRangeException("pos", pos, "pos must be > 0"); } if (pos >= word.Length) { throw new ArgumentOutOfRangeException("pos", pos, "pos must be < word.Length"); } #endif TextWord after = new TextWord(word._document, word._line, word._offset + pos, word._length - pos, word._color, word._hasDefaultColor); word = new TextWord(word._document, word._line, word._offset, pos, word._color, word._hasDefaultColor); return(after); }
/// <summary> /// Splits the word into two parts. /// </summary> /// <param name="word">The word.</param> /// <param name="pos">The position, which lies in the range <c>[1, Length - 1]</c>.</param> /// <returns>The part after <paramref name="pos"/> is returned as a new <see cref="TextWord"/>.</returns> /// <remarks> /// The part before <paramref name="pos"/> is assigned to /// the reference parameter <paramref name="word"/>, the part after <paramref name="pos"/> is returned. /// </remarks> public static TextWord Split(ref TextWord word, int pos) { #if DEBUG if (word.Type != TextWordType.Word) throw new ArgumentException("word.Type must be Word"); if (pos <= 0) throw new ArgumentOutOfRangeException("pos", pos, "pos must be > 0"); if (pos >= word.Length) throw new ArgumentOutOfRangeException("pos", pos, "pos must be < word.Length"); #endif TextWord after = new TextWord(word._document, word._line, word._offset + pos, word._length - pos, word._color, word._hasDefaultColor); word = new TextWord(word._document, word._line, word._offset, pos, word._color, word._hasDefaultColor); return after; }