+
    j,i                        R t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t
HtHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ]'       d   ^ RIHt ^ RIHt RR.t]tR R ltR R ltR R ltRR R llt R# )z2
Key binding handlers for displaying completions.
)annotationsN)TYPE_CHECKING)in_terminal)CompleteEvent
Completionget_common_complete_suffix)StyleAndTextTuples)KeyBindings)KeyPressEvent)Keys)
get_cwidth)ApplicationPromptSessiongenerate_completions!display_completions_like_readlinec                    V ^8  d   QhRRRR/#    eventEreturnNone )formats   "P/usr/lib/python3/dist-packages/prompt_toolkit/key_binding/bindings/completion.py__annotate__r   #   s     4 4 4d 4    c                    V P                   pVP                  '       d   VP                  4        R# VP                  RR7       R# )zo
Tab-completion: where the first tab completes the common suffix and the
second tab lists all the completions.
T)insert_common_partN)current_buffercomplete_statecomplete_nextstart_completion)r   bs   & r   r   r   #   s8    
 	A 			d3r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r   1   s     !C !CQ !C4 !Cr   c                   V P                   pVP                  f   R# \        RR7      p\        VP                  P	                  VP
                  V4      4      p\        VP
                  V4      p\        V4      ^8X  dH   VP                  V^ ,          P                  ) 4       VP                  V^ ,          P                  4       R# V'       d   VP                  V4       R# V'       d   \        V P                  V4       R# R# )av  
Key binding handler for readline-style tab completion.
This is meant to be as similar as possible to the way how readline displays
completions.

Generate the completions immediately (blocking) and display them above the
prompt in columns.

Usage::

    # Call this handler when 'Tab' has been pressed.
    key_bindings.add(Keys.ControlI)(display_completions_like_readline)
NT)completion_requested)r    	completerr   listget_completionsdocumentr   lendelete_before_cursorstart_positioninsert_texttext"_display_completions_like_readlineapp)r   r$   complete_eventcompletionscommon_suffixs   &    r   r   r   1   s     	A{{"=Nq{{221::~NOK /qzz;GM ;1	A = ==>	k!n))*		m$	*599kB 
r   c               $    V ^8  d   QhRRRRRR/# )r   r2   zApplication[object]r4   zlist[Completion]r   zasyncio.Task[None]r   )r   s   "r   r   r   U   s)     Y3 Y3	Y3+;Y3Y3r   c                  a aaaaa	a
aa ^ RI Ho ^ RIHo S P                  P                  4       pVP                  pVP                  p\        V\        R S 4       4      ^,           4      o
\        ^VS
,          4      oSV^,
          ,          o\        \        P                  ! \        S4      \        S4      ,          4      4      oR V VVVV
V3R llo	R V VVVV	V3R llpS P                  V! 4       4      # )z
Display the list of completions in columns above the prompt.
This will ask for a confirmation if there are too many completions to fit
on a single page and provide a paginator to walk through them.
)to_formatted_text)create_confirm_sessionc              3  L   "   T F  p\        VP                  4      x  K  	  R # 5i)N)r   display_text).0cs   & r   	<genexpr>5_display_completions_like_readline.<locals>.<genexpr>i   s     HKq
1>>22Ks   "$c                    V ^8  d   QhRRRR/# )r   pageintr   r   r   )r   s   "r   r   8_display_completions_like_readline.<locals>.__annotate__p   s     U Uc Ud Ur   c           	       < SV S,          V ^,           S,           p\        \        P                  ! \        V4      \	        S4      ,          4      4      p\        S4       Uu. uF  pWV,          V^,           V,           NK  	  pp. p\        V4       F  p\        S4       F  p WG,          V,          pRVP                  ;'       g    R,           p	VP                  S! VP                  V	R7      4       S\        VP                  4      ,
          p
VP                  VP                  RV
,          34       K  	  VP                  R4       K  	  SP                  S! VR4      4       R# u upi   \         d     K  i ; i)   z+class:readline-like-completions.completion  )style zclass:readline-like-completionsN)rF   
)rB   mathceilr,   floatrangerG   extenddisplayr   r;   append
IndexError
print_text)rA   page_completionspage_row_countipage_columnsresultrr=   
completionrG   paddingr2   column_countr4   completions_per_pagemax_compl_widthr8   s   &          r   rO   3_display_completions_like_readline.<locals>.displayp   s_   &''4!87K*K
 TYYs+;'<u\?R'RST <(
( /1q5N2JK( 	 

 &(~&A<(!-!3JI"((..BE MM"3J4F4Fe"TU .
:;R;R0SSGMM:#3#3S7]"CD ) MM*% '" 	(1RST1
( " s   !"E&$"E+A,E++E:9E:c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   rC      s      T r   c                 R  <"   \        RR7      ;_uu_4       GRj  xL
  \        S4      S8  d   S! R\        S4       R24      P                  4       G Rj  xL
 p V '       dh   \        S4       FW  pS! V4       VS^,
          8w  g   K  \	        R4      P                  4       G Rj  xL
 pV'       d   KF   RRR4      GRj  xL
  R# 	  M#SP
                  P                  4        MS! ^ 4       RRR4      GRj  xL
  R#  L L L] LD L  + GRj  xL 
 '       g   i     R# ; i5i)z
Coroutine.T)render_cli_doneNzDisplay all z possibilities?--MORE--)r   r,   prompt_asyncrM   _create_more_sessionoutputflush)	confirmrA   	show_morer2   r4   r\   r9   rO   
page_counts	      r   	run_compl5_display_completions_like_readline.<locals>.run_compl   s     t444;"66 6"3{#3"4OD!,.!  %j 1:>1.B */*ln)-I $-9 &' 544 !2 JJ$$& 
1 544!)- 5444s   D'D D'7D
DD
$!D

D
&D
'	D
5D
6D'DD'&D
.D'9D:D'D
D
D'D'
D$	D
D$	D$		D')prompt_toolkit.formatted_textr8   prompt_toolkit.shortcuts.promptr9   re   get_sizecolumnsrowsminmaxrB   rJ   rK   r,   rL   create_background_task)r2   r4   	term_size
term_widthterm_heightrj   r[   r\   r9   rO   r]   ri   r8   s   ff    @@@@@@@r   r1   r1   U   s     @F 

##%I""J..K
 CHKHH1LO q*78L';?;TYYs;/%8L2MMNOJU UD 8 %%ik22r   c                    V ^8  d   QhRRRR/# )r   messagestrr   zPromptSession[bool]r   )r   s   "r   r   r      s     O O# O7J Or   c                   ^ RI Hp \        4       pVP                  R4      VP                  R4      VP                  R4      VP                  \        P
                  4      VP                  \        P                  4      VP                  \        P                  4      R R l4       4       4       4       4       4       pVP                  R4      VP                  R4      VP                  R	4      VP                  R
4      VP                  \        P                  4      R R l4       4       4       4       4       pVP                  \        P                  4      R R l4       pV! WRR7      # )z@
Create a `PromptSession` object for displaying the "--MORE--".
r   rH   yYc                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   *_create_more_session.<locals>.__annotate__   s     $ $A $$ $r   c                >    V P                   P                  R R7       R# )TrW   Nr2   exitr   s   &r   _yes"_create_more_session.<locals>._yes   s     			d#r   nNqQc                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r~      s     % %1 % %r   c                >    V P                   P                  R R7       R# )Fr   Nr   r   s   &r   _no!_create_more_session.<locals>._no   s     			e$r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r~      s     % %q %T %r   c                    R# )zDisable inserting of text.Nr   r   s   &r   _ignore%_create_more_session.<locals>._ignore   s    r   T)key_bindingserase_when_done)
prompt_toolkit.shortcutsr   r	   addr   ControlJControlMControlIControlCAny)rx   r   bindingsr   r   r   s   &     r   rd   rd      s    7}H\\#\\#\\#\\$-- \\$-- \\$-- $ ! ! !   $ \\#\\#\\#\\#\\$-- % !    
% \\$((% % NNr   )rb   )!__doc__
__future__r   asynciorJ   typingr   *prompt_toolkit.application.run_in_terminalr   prompt_toolkit.completionr   r   r   rl   r   'prompt_toolkit.key_binding.key_bindingsr	   (prompt_toolkit.key_binding.key_processorr
   prompt_toolkit.keysr   prompt_toolkit.utilsr   prompt_toolkit.applicationr   r   r   __all__r   r   r   r1   rd   r   r   r   <module>r      st    #     B 
 = ? B $ +66 '
 4!CHY3xO Or   