
    -hh$                        S SK r S SKrS SKrS SKrS SKr\R
                   V s/ s H  n U S;  d  M  U PM     sn r\R                  S5        \R                  5         Su  r	r
S SKJr  S SKJr  S SKJr  SrS	rS
S
S
\	4rS
S
S
\
4r\R*                  \R,                  -   S-   r\R0                   \R2                  (       a  \R2                  OS 3rS\ 3r " S S5      r\R;                  5         \S:X  a  S SKJ r   \ " SSS9  ggs  sn f )    N>   NoneTrueFalse)matchcase)r      )autocomplete_w)idleConf)HyperParser)TFTN)FTTNF_ .c                   l    \ rS rSrSS jr\S 5       rS rSS jrS r	S r
SS	 jrS
 rS rS rS rSrg)AutoComplete&   Nc                 n    Xl         Ub  UR                  U l        X l        S U l        S U l        S U l        g N)editwintexttagsautocompletewindow_delayed_completion_id_delayed_completion_index)selfr   r   s      =/opt/python-3.13.8/usr/lib/python3.13/idlelib/autocomplete.py__init__AutoComplete.__init__(   s7    DI	"& '+#)-&    c                 >    [         R                  " SSSSSS9U l        g )N
extensionsr   	popupwaitintr   )typedefault)r
   	GetOptionr!   )clss    r   reloadAutoComplete.reload4   s      **.+E1Nr   c                 T    [         R                  " U R                  U R                  S9$ )N)r   )r	   AutoCompleteWindowr   r   )r   s    r   _make_autocomplete_window&AutoComplete._make_autocomplete_window9   s    00KKr   c                 j    U R                   (       a"  U R                   R                  5         S U l         g g r   )r   hide_windowr   events     r   _remove_autocomplete_window(AutoComplete._remove_autocomplete_window<   s*    ""##//1&*D# #r   c                 .    U R                  [        5        g)Nbreak)open_completionsFORCEr/   s     r   force_open_completions_event)AutoComplete.force_open_completions_eventA   s    e$r   c                 |   [        US5      (       a  UR                  (       d/  U R                  R                  SS5      R	                  5       (       d  g U R
                  (       a:  U R
                  R                  5       (       a  U R
                  R                  5         gU R                  [        5      nU(       a  S$ S $ )Nmc_stateinsert linestartinsertr4   )
hasattrr:   r   getstripr   	is_activecompleter5   TAB)r   r0   openeds      r   autocomplete_eventAutoComplete.autocomplete_eventF   s    5*%%%..IIMM"4h?EEGG ""t'>'>'H'H'J'J##,,.**3/F$7.$.r   c                    U R                   R                  S5      nU[        ;   a  US:X  a  [        O[        nU R                   R                  S5      U l        U R                  b%  U R                   R                  U R                  5        U R                   R                  U R                  U R                  U5      U l        g g )Nz	insert-1cr   r<   )r   r>   TRIGGERSTRY_ATRY_Findexr   r   after_cancelafterr!   _delayed_open_completions)r   r0   lastcharargss       r   try_open_completions_event'AutoComplete.try_open_completions_eventT   s    99==-x$O5D-1YY__X-FD***6		&&t'B'BC*.))// > >+FD'  r   c                     S U l         U R                  R                  S5      U R                  :X  a  U R	                  U5        g g )Nr<   )r   r   rJ   r   r5   )r   rO   s     r   rM   &AutoComplete._delayed_open_completions_   s9    &*#99??8$(F(FF!!$' Gr   c                 T   Uu  p#pEU R                   b,  U R                  R                  U R                   5        S U l         [        U R                  S5      nU R                  R                  SS5      n[        U5      =pUR                  5       (       a  U(       a
  U[        :X  a  U R                  5         [        nU(       a2  XxS-
     S[        -   ;  a   US-  nU(       a  XxS-
     S[        -   ;  a  M   XxU	 n
Un	U(       a$  XxS-
     S;  a  US-  nU(       a  XxS-
     S;  a  M  XxU	 nGOUR                  5       (       a  U(       a
  U[        :X  a  U R                  5         [        nU(       aV  XxS-
     [        ;   d  [        XxS-
     5      S:  a3  US-  nU(       a'  XxS-
     [        ;   a  M  [        XxS-
     5      S:  a  M3  XxU	 n
U(       ac  XxS-
     S:X  aX  UR                  S[        U5      US-
  -
  -  5        UR!                  5       nU(       a  U(       d  UR#                  S5      S	:w  a  g OS
nOg U(       a  U(       d  U
(       d  g U R%                  X5      nUS   (       d  g U R'                  5       U l        U R(                  R+                  US[        U
5      -  X5U5      (       + $ )Nr<   r;   r   z'"   r   z
insert-%dc(r   r   )r   r   rK   r   r   r>   lenis_in_stringFILESr1   SEPS
is_in_codeATTRSID_CHARSord	set_indexget_expressionfindfetch_completionsr+   r   show_window)r   rO   	evalfuncsrA   wantwinmodehpcurlineij
comp_start	comp_what
comp_listss                r   r5   AutoComplete.open_completionse   sH    .2*	W&&2II""4#>#>?*.D'x0))-- 2H=G??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WqS\S(\S\1Q3-?@A--/	!!innS&9R&?	Ij++I<
!}"&"@"@"B**66L3z?:) ) 	)r   c                 0    U R                   R                  R                  R                  R                  nU(       a  UR                  SSX40 5      $ U[        :X  Ga  US:X  a  0 [        R                  R                  E[        R                  En[        SU5      nUR                  [        5        UR                  5         SU;   a  [        [        SU5      5      nOU Vs/ s H  owS S S:w  d  M  UPM     nnO U R                  U5      n[!        U5      nUR                  5         SU;   a  [        UR"                  5      nOU Vs/ s H  owS S S:w  d  M  UPM     nnOtU[$        :X  aj  US:X  a  Sn [&        R(                  R+                  U5      n	[&        R,                  " U	5      nUR                  5         U Vs/ s H  owS S S:w  d  M  UPM     nnW(       d  WnUW4$ !   S n GN= fs  snf s  snf !   / / 4s $ = fs  snf ! [.         a    / / 4s $ f = f)	Nexecget_the_completion_listr   zdir()__all__r   r   r   )r   flistpyshellinterprpcclt
remotecallr]   __main____builtins____dict__evalextendcompletion_kwdssortsorted
get_entitydirrs   rZ   ospath
expanduserlistdirOSError)
r   whatrg   rw   	namespacebiglsmalllsentityexpandedpaths
             r   rc   AutoComplete.fetch_completions   s   	\\''//66==F $$V-F&*\27 7 u}2:!68#8#8#A#A !6#+#4#4!6I3DKK0IIK D(!'Y	(B!C-1!BTrUc\!T!B	&!%!6"6{		$,%+FNN%;F15%FA2A#aF%FF 2:D"#%77#5#5d#;L::l3DIIK)->A2A#aF> 4<U	F "C &G&!2v ? "r6M"sm   4G   G*0G*:AG4 G4 G/G/G4 2A	H ;G?G?H  G'/G4 4G<?H HHc                 Z    [        U0 [        R                  E[        R                  E5      $ r   )r|   sysmodulesry   r{   )r   names     r   r   AutoComplete.get_entity   s$    D>S[[>H,=,=>??r   )r   r   r   r   r   r   )NNr   )__name__
__module____qualname____firstlineno__r   classmethodr'   r+   r1   r7   rD   rP   rM   r5   rc   r   __static_attributes__ r   r   r   r   &   sO    
. N NL+

/	F(:)x8 t@r   r   ry   )mainz#idlelib.idle_test.test_autocomplete   )	verbosity)!ry   keywordr   stringr   kwlistr~   r}   r   r]   rZ   idlelibr	   idlelib.configr
   idlelib.hyperparserr   r6   rB   rH   rI   ascii_lettersdigitsr^   sepaltsepr[   rG   r   r'   r   unittestr   )r   s   0r   <module>r      s     	  
 &nn <n!:: n <   ( )     u " # + 	*)%EU*%EU* &--/#5
&&ryy"))b12tf:w@ w@t    z	.!< k<s
   
C?C?