
    	D,j/                     b    d dl Z d dlZd dlZ G d d          Zd Zedk    r e             dS dS )    Nc                   &    e Zd ZdZddZd Zd ZdS )ClipboardWatcherz8Watches clipboard for changes and updates IO placeholderFc                 d    || _         || _        d | _        d | _        d | _        | | j         _        d S )N)ioverbose
stop_eventwatcher_threadlast_clipboardclipboard_watcher)selfr   r   s      ^/home/rurouni/.local/share/uv/tools/aider-chat/lib/python3.11/site-packages/aider/copypaste.py__init__zClipboardWatcher.__init__
   s7    ""$(!!!    c                      t          j                     _        t          j                     _         fd}t          j        |d           _         j                                         dS )z$Start watching clipboard for changesc                     j                                         s	 t          j                    } | j        k    rm| _        j                                         | j        _        t          | 	                                          dk    rdj        j        z   dz   j        _        t          j        d           n2# t          $ r%}j        rddlm}  |d|            Y d }~d }~ww xY wj                                         d S d S )N   
g      ?r   )dumpzClipboard watcher error: )r   is_set	pyperclippaster
   r   interrupt_inputplaceholderlen
splitlinestimesleep	Exceptionr   
aider.dumpr   )currenter   r   s      r   watch_clipboardz/ClipboardWatcher.start.<locals>.watch_clipboard   s1   o,,.. 'o//G$"555.5+//111.5+w113344q88269L2Lt2SDG/JsOOOO    | >333333<<<===HHHH o,,..     s   BB< <
C+C&&C+T)targetdaemonN)		threadingEventr   r   r   r
   Threadr	   start)r   r"   s   ` r   r(   zClipboardWatcher.start   sp    #/++'o//	 	 	 	 	& (.odSSS!!#####r   c                     | j         r| j                                          | j        r)| j                                         d| _        d| _         dS dS )z#Stop watching clipboard for changesN)r   setr	   join)r   s    r   stopzClipboardWatcher.stop-   s]    ? 	"O!!! 	#$$&&&"&D"DOOO	# 	#r   N)F)__name__
__module____qualname____doc__r   r(   r,    r   r   r   r      sL        BB) ) ) )$ $ $6# # # # #r   r   c                     ddl m}   |             }t          |d          }	 |                                 	 t	          j        d           # t          $ r' t          d           |                                 Y dS w xY w)z&Example usage of the clipboard watcherr   )InputOutputT)r   r   z
Stopped watching clipboardN)	aider.ior3   r   r(   r   r   KeyboardInterruptprintr,   )r3   r   watchers      r   mainr8   7   s    $$$$$$	Br4000G	JqMMM	   ,---s   *A -A>=A>__main__)r%   r   r   r   r8   r-   r1   r   r   <module>r:      s            -# -# -# -# -# -# -# -#`    zDFFFFF r   