
    8@d
                     @    d  Z d Zd Zd Z G d de          Zd ZdS )c                     | d         }| d         }|d         |d         k    s$|d         |d         k    r|d         |d         k    r||dS | S )Nstartendline	character)r   r    )	lsp_ranger   r   s      /lib/python3.11/site-packages/pylsp/text_edit.pyget_well_formatted_ranger
      se    gE
E
CV}s6{""uV}F'C'CkHZ]`al]mHmHmU+++    c                 ^    t          | d                   }|| d         k    r| d         |dS | S )NrangenewText)r   r   )r
   )	text_editr   s     r	   get_well_formatted_editr      s=    (7);<<IIg&&&$Y/)DDDr   c                     | 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qyyz'";/!G*W2Ek2RRRKr   c                    t          |           dk    r| S t          |           dz  }| d |         }| |d          }t          |           t          |           d}d}d}|t          |          k     r|t          |          k     rst          ||         ||                   }|dk    r||         | |<   |dz  }|dz  }n||         | |<   |dz  }|dz  }|t          |          k     r|t          |          k     s|t          |          k     r(||         | |<   |dz  }|dz  }|t          |          k     (|t          |          k     r(||         | |<   |dz  }|dz  }|t          |          k     (| S )N      r   )lenmerge_sort_text_editsr   )
text_editspleftrightleft_idx	right_idxirets           r	   r   r      s   
:!J1Abqb>DqrrNE$%   HI	A
SYY

9s5zz#9#9 hy1ABB!88 NJqMFAMHH "),JqMFANI SYY

9s5zz#9#9 SYY

X
1	QA SYY

 c%jj
 
 i(
1	QQ	 c%jj
 
  r   c                       e Zd ZdZdS )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%   C   s           r   r%   c                 8   | j         }t          t          t          t          |                              }d}g }|D ]}|                     |d         d                   }||k     rt          d          ||k    r|                    |||                    t          |d                   r|                    |d                    |                     |d         d                   }|                    ||d                     d	                    |          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   L   s   :D(c2I:.V.V)W)WXXLE 
I 
I--aj.ABB..../ABBB...LL2<?@AAAq| 	'LL9&&&"55aj6GHH	LL*++,---775>>r   N)r
   r   r   r   	Exceptionr%   r9   r   r   r	   <module>r;      s         " " "J    9       r   