
    z%i$                        	 d dl Z d dlZd dlZd dlZd dlZej
                  D  cg c]  } | dvr| 
 c} Zej                  d       ej                          d\  Z	Z
d dlmZ d dlmZ d dlmZ dZd	Zd
d
d
e	fZd
d
d
e
fZej*                  ej,                  z   dz   Zej0                   ej2                  rej2                  nd Zde Z G d d      Zej;                          edk(  rd dlm Z   e dd       yyc c} w )    N>   NoneTrueFalse)matchcase)r      )autocomplete_w)idleConf)HyperParser)TFTN)FTTNF_ .c                   ^    e Zd ZddZed        Zd ZddZd Zd Z	ddZ
d	 Zd
 Zd Zd Zy)AutoCompleteNc                 p    || _         ||j                  | _        || _        d | _        d | _        d | _        y N)editwintexttagsautocompletewindow_delayed_completion_id_delayed_completion_index)selfr   r   s      H/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/idlelib/autocomplete.py__init__zAutoComplete.__init__(   s;    DI	"& '+#)-&    c                 B    t        j                  ddddd      | _        y )N
extensionsr   	popupwaitintr   )typedefault)r
   	GetOptionr   )clss    r   reloadzAutoComplete.reload4   s      **.+E1Nr   c                 X    t        j                  | j                  | j                        S )N)r   )r	   AutoCompleteWindowr   r   )r   s    r   _make_autocomplete_windowz&AutoComplete._make_autocomplete_window9   s    00KKr   c                 `    | j                   r"| j                   j                          d | _         y y r   )r   hide_windowr   events     r   _remove_autocomplete_windowz(AutoComplete._remove_autocomplete_window<   s*    ""##//1&*D# #r   c                 0    	 | j                  t               y)Nbreak)open_completionsFORCEr+   s     r   force_open_completions_eventz)AutoComplete.force_open_completions_eventA   s    Ke$r   c                 B   	 t        |d      r|j                  s*| j                  j                  dd      j	                         sy | j
                  r5| j
                  j                         r| j
                  j                          y| j                  t              }|rdS d S )Nmc_stateinsert linestartinsertr/   )
hasattrr4   r   getstripr   	is_activecompleter0   TAB)r   r,   openeds      r   autocomplete_eventzAutoComplete.autocomplete_eventF   s    ?5*%%..IIMM"4h?EEG ""t'>'>'H'H'J##,,.**3/F$7.$.r   c                 ~   	 | j                   j                  d      }|t        v r|dk(  rt        nt        }| j                   j                  d      | _        | j                  %| j                   j                  | j                         | j                   j                  | j                  | j                  |      | _        y y )Nz	insert-1cr   r6   )r   r8   TRIGGERSTRY_ATRY_Findexr   r   after_cancelafterr   _delayed_open_completions)r   r,   lastcharargss       r   try_open_completions_eventz'AutoComplete.try_open_completions_eventT   s    A99==-x$O5D-1YY__X-FD***6		&&t'B'BC*.))// > >+FD'  r   c                     	 d | _         | j                  j                  d      | j                  k(  r| j	                  |       y y )Nr6   )r   r   rC   r   r0   )r   rH   s     r   rF   z&AutoComplete._delayed_open_completions_   s<    3&*#99??8$(F(FF!!$' Gr   c                    	 |\  }}}}| j                   ,| j                  j                  | j                          d | _         t        | j                  d      }| j                  j                  dd      }t        |      x}}	|j                         rx|r	|t        k(  rm| j                          t        }|r*||dz
     dt        z   vr|dz  }|r||dz
     dt        z   vr|||	 }
|}	|r||dz
     dvr|dz  }|r||dz
     dvr|||	 }n|j                         r|r	|t        k(  r| j                          t        }|rM||dz
     t        v st        ||dz
           dkD  r+|dz  }|r$||dz
     t        v rt        ||dz
           dkD  r+|||	 }
|rW||dz
     dk(  rL|j                  dt        |      |dz
  z
  z         |j!                         }|r|s|j#                  d      d	k7  ry d
}ny |r|s|
sy | j%                  ||      }|d   sy | j'                         | _        | j(                  j+                  |dt        |
      z  |||       S )Nr6   r5   r   z'"   r   z
insert-%dc(r   r   )r   r   rD   r   r   r8   lenis_in_stringFILESr-   SEPS
is_in_codeATTRSID_CHARSord	set_indexget_expressionfindfetch_completionsr(   r   show_window)r   rH   	evalfuncsr;   wantwinmodehpcurlineij
comp_start	comp_what
comp_listss                r   r0   zAutoComplete.open_completionse   si   	 .2*	8Wd&&2II""4#>#>?*.D'x0))-- 2H=GA??ddEk ,,.D!EDL8Q !EDL8 1JA!E1Q !E1!I]]_ddEk,,.D11S15F5LQ 11S15F5L 1JWQqS\S(\S\1Q3-?@A--/	!!innS&9R&?	Ij++It<
!}"&"@"@"B**66L3z?:$) ) 	)r   c                    	 	 | j                   j                  j                  j                  j                  }|r|j                  dd||fi       S |t        k(  r|dk(  ri t        j                  j                  t        j                  }t        d|      }|j                  t               |j                          d|v rt        t        d|            }n|D cg c]  }|d d dk7  s| }}n	 | j                  |      }t!        |      }|j                          d|v rt        |j"                        }n|D cg c]  }|d d dk7  s| }}nm|t$        k(  rd|dk(  rd}	 t&        j(                  j+                  |      }	t'        j,                  |	      }|j                          |D cg c]  }|d d dk7  s| }}s}|fS #  d }Y xY wc c}w c c}w #  g g fcY S xY wc c}w # t.        $ r g g fcY S w xY w)	Nexecget_the_completion_listr   zdir()__all__r   r   r   )r   flistpyshellinterprpcclt
remotecallrT   __main____builtins____dict__evalextendcompletion_kwdssortsorted
get_entitydirri   rQ   ospath
expanduserlistdirOSError)
r   whatr^   rm   	namespacebiglsmalllsentityexpandedpaths
             r   rZ   zAutoComplete.fetch_completions   s   
		\\''//66==F $$V-F&*D\27 7 u}2:!68#8#8#A#A !6#+#4#4!6I3DKK0IIK D(!'Y	(B!C-1!BQrUc\!!B!B	&!%!6"6{		$,%+FNN%;F15%FA2A#a%FF%F 2:D"#%77#5#5d#;L::l3DIIK)->A2A#a>F> 4<U	F "C &G&!2v ? "r6M"sg   4G G&G.A
G 8GG
G AG& &G!4G!8G& G	G G!G& &G65G6c                 \    	 t        |i t        j                  t        j                        S r   )rr   sysmodulesro   rq   )r   names     r   rw   zAutoComplete.get_entity   s'    LD>S[[>H,=,=>??r   )NNr   )__name__
__module____qualname__r   classmethodr%   r(   r-   r2   r>   rI   rF   r0   rZ   rw    r   r   r   r   &   sO    
. N NL+

/	F(:)x8 t@r   r   ro   )mainz#idlelib.idle_test.test_autocomplete   )	verbosity)!ro   keywordry   stringr   kwlistrt   rs   ru   rT   rQ   idlelibr	   idlelib.configr
   idlelib.hyperparserr   r1   r<   rA   rB   ascii_lettersdigitsrU   sepaltseprR   r@   r   r%   r   unittestr   )r   s   0r   <module>r      s  
   	  
 &nn <!::  <   ( )     u " # + 	*)%EU*%EU* &--/#5
&&ryy"))b12tf:w@ w@t    z	.!< k<s   C6