
    ue
                     8    d  Z d Zd Zd Z G d de      Zd Zy)c                 f    | d   }| d   }|d   |d   kD  s|d   |d   k(  r|d   |d   kD  r||dS | S )Nstartendline	character)r   r    )	lsp_ranger   r   s      1/usr/lib/python3/dist-packages/pylsp/text_edit.pyget_well_formatted_ranger
      sX    gE
E
CV}s6{"fV${);c+>N)NU++    c                 B    t        | d         }|| d   k7  r| d   |dS | S )NrangenewText)r   r   )r
   )	text_editr   s     r	   get_well_formatted_editr      s4    (7);<IIg&&$Y/)DDr   c                 l    | d   d   d   |d   d   d   z
  }|dk(  r| d   d   d   |d   d   d   z
  S |S )Nr   r   r       r   r   )abdiffs      r	   compare_text_editsr      s[    W:gv&7G)<V)DDDqyz'";/!G*W2Ek2RRRKr   c                 4   t        |       dk  r| S t        |       dz  }| d | }| |d  }t        |       t        |       d}d}d}|t        |      k  rg|t        |      k  rYt        ||   ||         }|dk  r||   | |<   |dz  }|dz  }n||   | |<   |dz  }|dz  }|t        |      k  r|t        |      k  rY|t        |      k  r!||   | |<   |dz  }|dz  }|t        |      k  r!|t        |      k  r!||   | |<   |dz  }|dz  }|t        |      k  r!| S )N      r   )lenmerge_sort_text_editsr   )
text_editspleftrightleft_idx	right_idxirets           r	   r   r   !   sc   
:!J1Abq>DqrNE$% HI	A
SY
9s5z#9 hy1AB!8 NJqMFAMH "),JqMFANI SY
9s5z#9 SY
X
1	QA SY
 c%j
 i(
1	QQ	 c%j
  r   c                       e Zd ZdZy)OverLappingTextEditExceptionz
    Text edits are expected to be sorted
    and compressed instead of overlapping.
    This error is raised when two edits
    are overlapping.
    N)__name__
__module____qualname____doc__r   r   r	   r%   r%   F   s    r   r%   c                    | j                   }t        t        t        t        |                  }d}g }|D ]{  }| j                  |d   d         }||k  rt        d      ||kD  r|j                  |||        t        |d         r|j                  |d          | j                  |d   d         }} |j                  ||d         dj                  |      S )Nr   r   r   zoverlapping editr   r    )
sourcer   listmapr   offset_at_positionr%   appendr   join)docr   textsorted_editslast_modified_offsetspansestart_offsets           r	   apply_text_editsr9   O   s    ::D(c2I:.V)WXLE 
I--aj.AB.../ABB..LL2<@Aq|LL9&"55aj6GH
I 
LL*+,-775>r   N)r
   r   r   r   	Exceptionr%   r9   r   r   r	   <module>r;      s+   
	"J9 r   