Files
ServerSync/lib/prompt_toolkit/layout/__pycache__/menus.cpython-314.pyc

238 lines
36 KiB
Plaintext
Raw Normal View History

2026-02-12 02:28:23 +02:00
+
9<><39>i;j<00><01><><00>^RIHt^RIt^RIHt^RIHtHtHtH t H
t
H t ^RI H t ^RIHt^RIHt^RIHt^R IHt^R
IHtHtHtHtHt^R IHtHtHt^R I H!t!^R I"H#t#^RI$H%t%H&t&^RI'H(t(^RI)H*t*H+t+H,t,H-t-^RI.H/t/H0t0H1t1^RI2H3t3^RI4H5t5]'d ^RI6H7t7H8t8RR.t9]!t:!RR]14t;R#RRllt<RRlt=!RR]*4t>!RR]14t?!R R]+4t@!R!R"]14tAR#)$<24>)<01> annotationsN)<01> zip_longest)<06> TYPE_CHECKING<4E>Callable<6C>Iterable<6C>Sequence<63>TypeVar<61>cast)<01>WeakKeyDictionary)<01>get_app)<01>CompletionState)<01>
Completion)<01>Point)<05> Condition<6F> FilterOrBool<6F>has_completions<6E>is_done<6E> to_filter)<03>StyleAndTextTuples<65>fragment_list_width<74>to_formatted_text)<01> KeyPressEvent)<01>explode_text_fragments)<02>
MouseEvent<EFBFBD>MouseEventType)<01>
get_cwidth)<04>ConditionalContainer<65>HSplit<69> ScrollOffsets<74>Window)<03>GetLinePrefixCallable<6C> UIContent<6E> UIControl)<01> Dimension)<01>ScrollbarMargin)<02> KeyBindings<67>NotImplementedOrNone<6E>CompletionsMenu<6E>MultiColumnCompletionsMenuc<01><><00>]tRt^1tRt^tRRltRRltRRltRR lt R
R lt
R R lt RRlt RRlt RRltRtR#)<16>CompletionsMenuControla2
Helper for drawing the complete menu to the screen.
:param scroll_offset: Number (integer) representing the preferred amount of
completions to be displayed before and after the current one. When this
is a very high number, the current completion will be shown in the
middle most of the time.
c<01><00>V^8<>dQhRR/#<00><03><00>return<72>bool<6F>)<01>formats"<22>B/tmp/pip-target-wqrk2shd/lib/python/prompt_toolkit/layout/menus.py<70> __annotate__<5F>#CompletionsMenuControl.__annotate__@<00><00><00><15><15>4<EFBFBD><15>c <09><00>R#<00>Fr1<00><01>selfs&r3<00> has_focus<75> CompletionsMenuControl.has_focus@<00><00><00>r7c<01> <00>V^8<>dQhRRRR/#<00>r.<00>max_available_width<74>intr/<00>
int | Noner1)r2s"r3r4r5Cs<00><00><15><15>3<EFBFBD><15>:<3A>r7c <09><><00>\4PPpV'd-VPRV4pVP RV4pW4,#^#)i<>)r <00>current_buffer<65>complete_state<74>_get_menu_width<74>_get_menu_meta_width)r;rArF<00>
menu_width<EFBFBD>menu_meta_widths&& r3<00>preferred_width<74>&CompletionsMenuControl.preferred_widthCsH<00><00> <20><19>1<>1<>@<40>@<40><0E> <19><1D>-<2D>-<2D>c<EFBFBD>><3E>B<>J<EFBFBD>"<22>7<>7<><03>^<5E>L<>O<EFBFBD><1D>/<2F> /<2F>r7c
<01>,<00>V^8<>dQhRRRRRRRRRR /#<00>
r.<00>widthrB<00>max_available_height<68>
wrap_linesr0<00>get_line_prefixzGetLinePrefixCallable | Noner/rCr1)r2s"r3r4r5Ms<<00><00> <15> <15><12> <15>"<22> <15><19> <15>
6<> <15>
<14> r7c <09>|<00>\4PPpV'd\VP4#^#)r)r rErF<00>len<65> completions)r;rOrPrQrRrFs&&&&& r3<00>preferred_height<68>'CompletionsMenuControl.preferred_heightMs.<00><00>!<21><19>1<>1<>@<40>@<40><0E> <19><16>~<7E>1<>1<>2<> 2<>r7c<01>$<00>V^8<>dQhRRRRRR/#<00>r.rOrB<00>heightr/r"r1)r2s"r3r4r5Zs!<00><00>#<1B>#<1B>C<EFBFBD>#<1B><13>#<1B><19>#r7c <0A><>aaaaaa <09>\4PPpV'd<>VPoVPoSP W4oSP VS,
V4oSPV4o RVVVVVV 3Rllp\T\^S;'g^R7\S4R7#\4#)z-
Create a UIContent object for this control.
c<01> <00>V^8<>dQhRRRR/#<00>r.<00>irBr/rr1)r2s"r3r4<00>;CompletionsMenuControl.create_content.<locals>.__annotate__js<00><00> <1E> <1E>C<EFBFBD> <1E>$6<> r7c<01><><<06>SV,pVS8Hp\WSRR7pS 'dVSPWS4, pV#)T<><01> space_after)<02>_get_menu_item_fragments<74>_get_menu_item_meta_fragments)
r^<00>c<>is_current_completion<6F>resultrU<00>indexrJrIr;<00> show_metas
& <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>r3<00>get_line<6E>7CompletionsMenuControl.create_content.<locals>.get_linejsO<00><><00><1F><01>N<EFBFBD><01>()<29>U<EFBFBD>
<EFBFBD>%<25>1<><15>j<EFBFBD>d<EFBFBD><12><06><1D><1A>d<EFBFBD>@<40>@<40><19>/<2F><16><16>F<EFBFBD><1E> r7)<02>x<>y)rj<00>cursor_position<6F>
line_count) r rErFrU<00>complete_indexrGrH<00>
_show_metar"rrT)
r;rOrZrFrjrUrhrJrIris
f&& @@@@@r3<00>create_content<6E>%CompletionsMenuControl.create_contentZs<><00><><00>!<21><19>1<>1<>@<40>@<40><0E> <19>(<28>4<>4<>K<EFBFBD>"<22>1<>1<>E<EFBFBD><1E>-<2D>-<2D>e<EFBFBD>D<>J<EFBFBD>"<22>7<>7<><15>
<EFBFBD>"<22>N<EFBFBD><0E>O<EFBFBD><1D><0F><0F><0E>7<>I<EFBFBD> <1E> <1E><1D>!<21> %<25><01>U<EFBFBD>Z<EFBFBD>Z<EFBFBD>a<EFBFBD> 8<><1E>{<7B>+<2B><0E> <0E> <19>{<7B>r7c<01> <00>V^8<>dQhRRRR/#)r.rFr r/r0r1)r2s"r3r4r5s<00><00>L<01>L<01><1F>L<01>T<EFBFBD>Lr7c <0A><><00>\;QJd&RVP4F 'gK R# R#!RVP44#)zD
Return ``True`` if we need to show a column with meta information.
c3<01>8"<00>TFqPx<00>K R#5i<01>N)<01>display_meta_text<78><02>.0res& r3<00> <genexpr><3E>4CompletionsMenuControl._show_meta.<locals>.<genexpr><3E>s<00><00><00>K<>0J<30>1<EFBFBD>&<26>&<26>0J<30><4A><00>TF)<02>anyrU)r;rFs&&r3rq<00>!CompletionsMenuControl._show_metas9<00><00><13>s<EFBFBD>K<><0E>0J<30>0J<30>K<>s<EFBFBD>s<EFBFBD>K<>s<EFBFBD>K<>s<EFBFBD>K<><0E>0J<30>0J<30>K<>K<>Kr7c<01>$<00>V^8<>dQhRRRRRR/#<00>r.<00> max_widthrBrFr r/r1)r2s"r3r4r5<00>s"<00><00>

<EFBFBD>

<EFBFBD><13>

<EFBFBD>o<EFBFBD>

<EFBFBD>RU<EFBFBD>

r7c
 <0A><><00>\V\VP\RVP44^,44#)z&
Return the width of the main column.
c3<01>L"<00>TFp\VP4x<00>K R#5irw<00>r<00> display_textrys& r3r{<00>9CompletionsMenuControl._get_menu_width.<locals>.<genexpr><3E>s<00><00><00>S<>8R<38>1<EFBFBD>J<EFBFBD>q<EFBFBD>~<7E>~<7E>.<2E>.<2E>8R<38><52><00>"$)<04>min<69>max<61> MIN_WIDTHrU)r;r<>rFs&&&r3rG<00>&CompletionsMenuControl._get_menu_width<74>s=<00><00><13> <15> <0F><14><0E><0E><13>S<><0E>8R<38>8R<38>S<>S<>VW<56>W<> <0E>
<EFBFBD>
r7c<01>$<00>V^8<>dQhRRRRRR/#r<>r1)r2s"r3r4r5<00>s$<00><00><15><15><1C><15>.=<3D><15> <0C>r7c <0A><>a<04>RRloVPV4'dLVPp\V4^<5E>8<EFBFBD>d
VR,p\V\ V3RlV44^,4#^#)z&
Return the width of the meta column.
c<01> <00>V^8<>dQhRRRR/#)r.<00>
completionrr/rBr1)r2s"r3r4<00>ACompletionsMenuControl._get_menu_meta_width.<locals>.__annotate__<5F>s<00><00> <<3C> <<3C>:<3A> <<3C>#<23> <r7c<01>,<00>\VP4#rw<00>rrx)r<>s&r3<00>
meta_width<EFBFBD>?CompletionsMenuControl._get_menu_meta_width.<locals>.meta_width<74>s<00><00><1D>j<EFBFBD>:<3A>:<3A>;<3B> ;r7:N<><4E>Nc3<01>4<"<00>TF pS!V4x<00>K R#5irwr1)rzrer<>s& <20>r3r{<00>>CompletionsMenuControl._get_menu_meta_width.<locals>.<genexpr><3E>s<00><><00><00>%I<>[<5B><01>j<EFBFBD><11>m<EFBFBD>m<EFBFBD>[<5B>s<00>)rqrUrTr<>r<>)r;r<>rFrUr<>s&&& @r3rH<00>+CompletionsMenuControl._get_menu_meta_width<74>s]<00><><00> <<3C> <10>?<3F>?<3F>><3E> *<2A> *<2A>)<29>4<>4<>K<EFBFBD><12>;<3B><1F>#<23>%<25>)<29>$<24>/<2F> <0B><16>y<EFBFBD>#<23>%I<>[<5B>%I<>"I<>A<EFBFBD>"M<>N<> N<>r7c<01>(<00>V^8<>dQhRRRRRRRR/#) r.r<>rrfr0rOrBr/rr1)r2s"r3r4r5<00>s,<00><00>
<EFBFBD>
<EFBFBD>$<24>
<EFBFBD>=A<>
<EFBFBD>JM<EFBFBD>
<EFBFBD> <1B>
r7c <09><><00>V'dRpMRp\VPV^,
4wrVRV^,
V,
,p\\\.4R.,V,RV3.,VR7#)z-class:completion-menu.meta.completion.currentz%class:completion-menu.meta.completion<6F> <20><00><01>style<6C>r<>r<>)<05>_trim_formatted_text<78> display_metarr
r)r;r<>rfrO<00> style_str<74>text<78>tw<74>paddings&&&& r3rd<00>4CompletionsMenuControl._get_menu_item_meta_fragments<74>sm<00><00> !<21>G<>I<EFBFBD>?<3F>I<EFBFBD>'<27>
<EFBFBD>(?<3F>(?<3F><15><11><19>K<><08><04><15><15><11><19>R<EFBFBD><1E>(<28><07> <20> <10>#<23>R<EFBFBD> (<28>I<EFBFBD>;<3B> 6<><14> =<3D>"<22>g<EFBFBD><1D><0F> O<><1B>
<EFBFBD>
r7c<01> <00>V^8<>dQhRRRR/#<00>r.<00> mouse_eventrr/r'r1)r2s"r3r4r5<00>s<00><00><14><14><1A><14>8L<38>r7c <0A><><00>\4PpVP\P8Xd/VP VP P4RVnR#VP\P8XdVP^RR7R#VP\P8XdVP^RR7R#)z.
Handle mouse events: clicking and scrolling.
NT<EFBFBD><02>count<6E>disable_wrap_around) r rE<00>
event_typer<00>MOUSE_UP<55>go_to_completion<6F>positionrmrF<00> SCROLL_DOWN<57> complete_next<78> SCROLL_UP<55>complete_previous)r;r<><00>bs&& r3<00> mouse_handler<65>$CompletionsMenuControl.mouse_handler<65>s<><00><00> <14>I<EFBFBD> $<24> $<24><01> <16> !<21> !<21>^<5E>%<<3C>%<<3C> <<3C> <0A> <1E> <1E>{<7B>3<>3<>5<>5<> 6<>#<23>A<EFBFBD> <1C><14><19> #<23> #<23>~<7E>'A<>'A<> A<> <0A>O<EFBFBD>O<EFBFBD>!<21><14>O<EFBFBD> ><3E> <14> <19> #<23> #<23>~<7E>'?<3F>'?<3F> ?<3F> <0A> <1F> <1F>a<EFBFBD>T<EFBFBD> <1F> B<>r7r1N)<10>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__firstlineno__<5F>__doc__r<5F>r<rKrVrrrqrGrHrdr<><00>__static_attributes__r1r7r3r+r+1sB<00><00><08><12>I<EFBFBD><15><15> <15>#<1B>JL<01>

<EFBFBD><15>*
<EFBFBD> <14>r7r+c
<01>,<00>V^8<>dQhRRRRRRRRRR /#)
r.r<>rrfr0rOrBrbr/rr1)r2s"r3r4r4<00>s:<00><00><06><06><1A><06><1F><06> <0F><06><16> <06>
<18> r7c<05>h<00>V'dRVP RVP 2pMRVP,p\VPV'd
V^,
MV^,
4wrVRV^,
V,
,p\ \ \ .4R.,V,RV3.,VR7#)zS
Get the style/text tuples for a menu item, styled and trimmed to the given
width.
z)class:completion-menu.completion.current r<>z!class:completion-menu.completion r<>r<>r<>)r<><00>selected_styler<65><00>displayrr
r)r<>rfrOrbr<>r<>r<>r<>s&&&& r3rcrc<00>s<><00><00><1D>?<3F>
<EFBFBD>@P<>@P<>?Q<>QR<51>S]<5D>Sl<53>Sl<53>Rm<52>n<> <09>7<>*<2A>:J<>:J<>J<> <09>#<23><12><1A><1A>+<2B>U<EFBFBD>Q<EFBFBD>Y<EFBFBD>5<EFBFBD>1<EFBFBD>9<EFBFBD><06>H<EFBFBD>D<EFBFBD><12>U<EFBFBD>Q<EFBFBD>Y<EFBFBD><12>^<5E>$<24>G<EFBFBD> <1C> <0C> <1F><12>$<24> <09>{<7B>2<>T<EFBFBD>9<>b<EFBFBD>'<27>]<5D>O<EFBFBD>K<><17> <06>r7c<01>$<00>V^8<>dQhRRRRRR/#)r.<00>formatted_textrr<>rBr/ztuple[StyleAndTextTuples, int]r1)r2s"r3r4r4<00>s$<00><00>%<25>%<25>&<26>%<25>36<33>%<25>#<23>%r7c<05><00>\V4pW!8<>dl.pV^,
p\V4F6p\V^,4pWd8:dVPV4WF,pK6M VPR4W1V,
3#W3#)zc
Trim the text to `max_width`, append dots when the text is too long.
Returns (text, width) tuple.
)r<>z...)rrr<00>append)r<>r<>rOrg<00>remaining_width<74> style_and_ch<63>ch_widths&& r3r<>r<><00>s<><00><00> <20><0E> /<2F>E<EFBFBD> <0A><18><13><06>#<23>a<EFBFBD>-<2D><0F>2<>><3E>B<>L<EFBFBD>!<21>,<2C>q<EFBFBD>/<2F>2<>H<EFBFBD><17>*<2A><16> <0A> <0A>l<EFBFBD>+<2B><1F>+<2B><0F><15>C<01> <0F> <0A> <0A>k<EFBFBD>"<22><15>?<3F>2<>2<>2<><1D>$<24>$r7c<01>2a<00>]tRtRtRRV3RllltRtV;t#)r(ic <01>0<00>V^8<>dQhRRRRRRRRRR R
R /#) r.<00>
max_heightrC<00> scroll_offsetzint | Callable[[], int]<5D> extra_filterr<00>display_arrows<77>z_indexrBr/<00>Noner1)r2s"r3r4<00>CompletionsMenu.__annotate__ sF<00><00>
<EFBFBD>
<EFBFBD><1E>
<EFBFBD>/<2F>
<EFBFBD>#<23> 
<EFBFBD>
%<25> 
<EFBFBD> <15> 
<EFBFBD>
<0E>
r7c  <09>
<<01>\V4p\V4p\SV` \\ 4\ ^R7\ ^VR7\ W"R7\VR7.RRVR7V\,\(,R7R #)
<EFBFBD><00>r<>)r<>r<>)<02>top<6F>bottom)r<>T<>class:completion-menu)<08>contentrOrZ<00>scroll_offsets<74> right_margins<6E>dont_extend_widthr<68>r<><00>r<><00>filterN)
r<00>super<65>__init__r r+r$rr%rr)r;r<>r<>r<>r<>r<><00> __class__s&&&&&&<26>r3r<><00>CompletionsMenu.__init__ sx<00><><00>!<21><1C>.<2E> <0C>"<22>><3E>2<><0E> <0A><07><18><1A>.<2E>0<><1F>A<EFBFBD>&<26> <20>Q<EFBFBD>J<EFBFBD>7<>,<2C><1D>U<>.<2E>n<EFBFBD>M<>N<>"&<26>-<2D><1F> <0E> <20>/<2F>1<>W<EFBFBD>H<EFBFBD><<3C> <19>
r7r1)NrTF<54><00><>)r<>r<>r<>r<>r<>r<><00> __classcell__<5F>r<>s@r3r(r(s<00><><00>
<EFBFBD>
<EFBFBD>
r7c<01><><00>]tRtRtRt^tRRRlltRRltRRltR R
lt R R lt
R Rlt RRlt RRlt RRltRtR#)<18> MultiColumnCompletionMenuControli%a>
Completion menu that displays all the completions in several columns.
When there are more completions than space for them to be displayed, an
arrow is shown on the left or right side.
`min_rows` indicates how many rows will be available in any possible case.
When this is larger than one, it will try to use less columns and more
rows until this value is reached.
Be careful passing in a too big value, if less than the given amount of
rows are available, more columns would have been required, but
`preferred_width` doesn't know about that and reports a too small value.
This results in less completions displayed and additional scrolling.
(It's a limitation of how the layout engine currently works: first the
widths are calculated, then the heights.)
:param suggested_max_column_width: The suggested max width of a column.
The column can still be bigger than this, but if there is place for two
columns of this width, we will display two columns. This to avoid that
if there is one very wide completion, that it doesn't significantly
reduce the amount of columns.
c<01>$<00>V^8<>dQhRRRRRR/#)r.<00>min_rowsrB<00>suggested_max_column_widthr/r<>r1)r2s"r3r4<00>-MultiColumnCompletionMenuControl.__annotate__>s"<00><00><1F><1F><13><1F>c<EFBFBD><1F>SW<53>r7c <09><><00>V^8<>gQhWnW n^Vn\4Vn^Vn^Vn^Vn/VnRVn RVn
^Vn R#)<03>FN) r<>r<><00>scrollr <00>"_column_width_for_completion_state<74>_rendered_rows<77>_rendered_columns<6E>_total_columns<6E>_render_pos_to_completion<6F>_render_left_arrow<6F>_render_right_arrow<6F> _render_width)r;r<>r<>s&&&r3r<><00>)MultiColumnCompletionMenuControl.__init__>sj<00><00><17>1<EFBFBD>}<7D><1C>}<7D> <20> <0A>*D<>'<27><17><04> <0B> <1E> <1F> <0A>/<2F>
 <20><04><1B>!"<22><04><1E><1F><04><1B>LN<4C><04>&<26>"'<27><04><1F>#(<28><04> <20><1E><04>r7c<01><00>V^8<>dQhRR/#<00>r.r/r<>r1)r2s"r3r4r<>Xs<00><00><18><18>t<EFBFBD>r7c <09><00>^VnR#)rN)r<>r:s&r3<00>reset<65>&MultiColumnCompletionMenuControl.resetXs <00><00><17><04> r7c<01><00>V^8<>dQhRR/#r-r1)r2s"r3r4r<>[r6r7c <09><00>R#r9r1r:s&r3r<<00>*MultiColumnCompletionMenuControl.has_focus[r>r7c<01> <00>V^8<>dQhRRRR/#r@r1)r2s"r3r4r<>^s<00><00>.<2E>.<2E>3<EFBFBD>.<2E>:<3A>.r7c  <0A><><00>\4PPpVf^#VPV4p\ V\
P !\VP4\VP4, 4,4pWC8<43>d"WAVP,
8<>d WC,pK'W@P,#)zc
Preferred width: prefer to use at least min_rows, but otherwise as much
as possible horizontally.
) r rErF<00>_get_column_widthrB<00>math<74>ceilrTrU<00>floatr<74><00>_required_margin)r;rArF<00> column_widthrgs&& r3rK<00>0MultiColumnCompletionMenuControl.preferred_width^s<><00><00>
!<21><19>1<>1<>@<40>@<40><0E> <19> !<21><14><1B>-<2D>-<2D>n<EFBFBD>=<3D> <0C><14> <18><12>i<EFBFBD>i<EFBFBD><03>N<EFBFBD>6<>6<>7<>%<25><04> <0A> <0A>:N<>N<>O<> P<01>
<EFBFBD><06> <13> !<21><16>t<EFBFBD>/D<>/D<>D<>D<> <12> "<22>F<EFBFBD><15>-<2D>-<2D>-<2D>-r7c
<01>,<00>V^8<>dQhRRRRRRRRRR /#rNr1)r2s"r3r4r<>wsC<00><00>U<01>U<01><12>U<01>"<22>U<01><19> U<01>
6<> U<01>
<14> Ur7c <0A>6<00>\4PPpVf^#VPV4p\ ^WP
,
V,4p\ \P!\VP4\V4, 44#)zN
Preferred height: as much as needed in order to display all the completions.
) r rErFrr<>rrBrrrTrUr)r;rOrPrQrRrFr<00> column_counts&&&&& r3rV<00>1MultiColumnCompletionMenuControl.preferred_heightwss<00><00>!<21><19>1<>1<>@<40>@<40><0E> <19> !<21><14><1B>-<2D>-<2D>n<EFBFBD>=<3D> <0C><1A>1<EFBFBD>u<EFBFBD>'<<3C>'<<3C><<3C><1C>M<>N<> <0C><12>4<EFBFBD>9<EFBFBD>9<EFBFBD>S<EFBFBD><1E>!;<3B>!;<3B><<3C>u<EFBFBD>\<5C>?R<>R<>S<>T<>Tr7c<01>$<00>V^8<>dQhRRRRRR/#rYr1)r2s"r3r4r<><00>s+<00><00>sC<01>sC<01>C<EFBFBD>sC<01><13>sC<01><19>sCr7c
 <0A><>aaa<17>\4PPoSf \4#VP S4p/Vn\ R4pRRRllpRVV3Rllp^p\W,
V4pW0P8<>dW3VP,,p\^WP,
V,4p\V!VSP44p \\V !4p
SP;'g^V,p \V \VPW<>,
^,44VnVP^8<>p VP\!V
^,4V,
8p .o\#V
4EFiwr<>.pV\!V
4^,8HpV 'dTP%RV'dRMR 34MV 'dVP%R4\#W<>PRRV4FswpoSePV\'SV!S4VR
R 7, p\)V4F"pSVP
VV,V,V3&K$ KYVP%R R V,34Ku V 'g V 'dVP%R4V 'dTP%RV'dR MR 34MV 'dVP%R4SP%\+VRR74EKl W nW<>n\!V 4VnW<>nW<>nW8,V ,V ,^,VnRV3Rllp\V\!V
4R7#)z*
Create a UIContent object for this menu.
N<EFBFBD>_Tc<01>(<00>V^8<>dQhRRRRRRRR/#) r.<00>nrB<00>iterablez Iterable[_T]<5D> fillvaluez _T | Noner/zIterable[Sequence[_T | None]]r1)r2s"r3r4<00>EMultiColumnCompletionMenuControl.create_content.<locals>.__annotate__<5F>s,<00><00> ;<3B> ;<3B><12> ;<3B>*<2A> ;<3B>7@<40> ;<3B> *<2A> ;r7c<05>><00>\V4.V,p\VRV/#)z*grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxxr)<02>iterr)rrr<00>argss&&& r3<00>grouper<65>@MultiColumnCompletionMenuControl.create_content.<locals>.grouper<65>s%<00><00><19><18>N<EFBFBD>#<23>a<EFBFBD>'<27>D<EFBFBD><1E>T<EFBFBD>:<3A><19>:<3A> :r7c<01> <00>V^8<>dQhRRRR/#)r.r<>rr/r0r1)r2s"r3r4r<00>s<00><00> <0E> <0E>j<EFBFBD> <0E>T<EFBFBD> r7c<05>f<<02>SRJ;'d&SPRJ;'dSSP8H#)z@Returns True when this completion is the currently selected one.N)rp<00>current_completion)r<>rerFs&<26><>r3rf<00>NMultiColumnCompletionMenuControl.create_content.<locals>.is_current_completion<6F>sB<00><><00><1F>d<EFBFBD>*<2A>;<3B>;<3B>"<22>1<>1<><14>=<3D>;<3B>;<3B><15><1E>:<3A>:<3A>:<3A> r7zclass:scrollbar<61><r<>Fra<00>class:completion<6F>>r<>r<>c<01> <00>V^8<>dQhRRRR/#r]r1)r2s"r3r4r<00>s<00><00> )<29> )<29><03> )<29> 2<> )r7c<01><<01>SV,#rwr1)r^<00>fragments_for_lines&<26>r3rj<00>AMultiColumnCompletionMenuControl.create_content.<locals>.get_line<6E>s<00><><00>%<25>a<EFBFBD>(<28> (r7<00>rjrorwr<>)r r<>)r rErFr"rr<>r r<>r<>r<>r<00>listrU<00>ziprpr<>rT<00> enumerater<65>rc<00>rangerr<>r<>r<>r<>r<>r<>)r;rOrZrrrrf<00>HORIZONTAL_MARGIN_REQUIRED<45>visible_columns<6E>columns_<73>rows_<73>selected_column<6D>render_left_arrow<6F>render_right_arrow<6F> row_index<65>row<6F> fragments<74>
middle_row<EFBFBD> column_indexrlrjrerFr$s&&& @@@r3rr<00>/MultiColumnCompletionMenuControl.create_content<6E>s<00><><00>!<21><19>1<>1<>@<40>@<40><0E> <19> !<21><1C>;<3B> <1E><1B>-<2D>-<2D>n<EFBFBD>=<3D> <0C>)+<2B><04>&<26> <14>T<EFBFBD>]<5D><02> ;<3B> <0E> <0E>&'<27>"<22><1B>5<EFBFBD>=<3D>|<7C>L<> <0C> <18>9<>9<> 9<> <19>T<EFBFBD>-L<>-L<>L<> L<>L<EFBFBD><1D>a<EFBFBD>%<25>*?<3F>*?<3F>"?<3F>L<EFBFBD>!P<>Q<><0F><17><07><06><0E>(B<>(B<>C<>D<><08><14>S<EFBFBD>(<28>^<5E>$<24><05>*<2A>8<>8<>=<3D>=<3D>A<EFBFBD>&<26>H<><0F><19> <1B>S<EFBFBD><14><1B><1B>o<EFBFBD>.O<>RS<52>.S<>T<>
<EFBFBD><04> <0B>!<21>K<EFBFBD>K<EFBFBD>!<21>O<EFBFBD><19>!<21>[<5B>[<5B>3<EFBFBD>u<EFBFBD>Q<EFBFBD>x<EFBFBD>=<3D>?<3F>+J<>J<><1A> <20><1A>'<27><05>.<2E>N<EFBFBD>I<EFBFBD>,.<2E>I<EFBFBD>"<22>c<EFBFBD>%<25>j<EFBFBD>A<EFBFBD>o<EFBFBD>5<>J<EFBFBD>!<21><19> <20> <20>"3<>J<EFBFBD>S<EFBFBD>C<EFBFBD>!P<>Q<>#<23><1A> <20> <20><19>+<2B>$-<2D>S<EFBFBD><1B><1B><1D>-?<3F>@P<><1F>-Q<>#R<><0F> <0C>a<EFBFBD><14>=<3D><1D>!9<><19>0<><11>3<>\<5C>u<EFBFBD>"<16><16>I<EFBFBD>
#<23><<3C>0<><01><1E><1D>6<>6<>)<29>L<EFBFBD>8<>1<EFBFBD><<3C>i<EFBFBD>H<><1A>1<>
<1E>$<24>$<24>&8<>#<23> <0C>:L<>%M<>N<>$S<01> !<21>$6<><19> <20> <20>!:<3A>;<3B>"<22><19> <20> <20>"3<>J<EFBFBD>S<EFBFBD>C<EFBFBD>!P<>Q<>"<22><19> <20> <20>!:<3A>;<3B> <1F> %<25> %<25>!<21>)<29>3J<33>K<> <0E>O/<2F>V%<25><1B>!0<><1E>!<21>(<28>m<EFBFBD><04><1B>"3<><1F>#5<> <20> <18> *<2A>-><3E> ><3E>AS<41> S<>VW<56> W<> <0A><1A> )<29> )<29><19>(<28>s<EFBFBD>5<EFBFBD>z<EFBFBD>B<>Br7c<01> <00>V^8<>dQhRRRR/#)r.<00>completion_stater r/rBr1)r2s"r3r4r<><00>s<00><00><1A><1A>/<2F><1A>c<EFBFBD>r7c <0A>&<00>VPV,wr#V\VP48wd\hV# \dM\ RTP44^,p\TP4T3TPT&Tu#i;i)z"
Return the width of each column.
c3<01>L"<00>TFp\VP4x<00>K R#5irwr<>rys& r3r{<00>EMultiColumnCompletionMenuControl._get_column_width.<locals>.<genexpr> s<00><00><00>U<>8T<38>1<EFBFBD>J<EFBFBD>q<EFBFBD>~<7E>~<7E>.<2E>.<2E>8T<38>r<EFBFBD>)r<>rTrU<00>KeyErrorr<72>)r;r9r<>rOrgs&& r3r<00>2MultiColumnCompletionMenuControl._get_column_width<74>s<><00><00> <1A><1F>B<>B<>CS<43>T<>L<EFBFBD>E<EFBFBD><14><03>,<2C>8<>8<>9<>9<><1E><0E><18>L<EFBFBD><4C><17> <1A><13>U<>8H<38>8T<38>8T<38>U<>U<><13><14> <13>
<14>$<24>0<>0<>1<><16>I<0E>D<EFBFBD> 3<> 3<>4D<34> E<><1A>M<EFBFBD> <1A>s<00>69<00>AB<03>Bc<01> <00>V^8<>dQhRRRR/#r<>r1)r2s"r3r4r<>s<00><00>*<14>*<14><1A>*<14>8L<38>*r7c <0A><>aa<07>\4PoRVV3RllpRVV3RllpVP\P8Xd
V!4R#VP\P
8Xd
V!4R#VP\P 8Xd<>VPPpVPPpV^8XdSP'dV!4R#VSP^,
8XdSP'dV!4R#SPPWE34pV'dSPV4R#)z!
Handle scroll and click events.
c<01><00>V^8<>dQhRR/#r<>r1)r2s"r3r4<00>DMultiColumnCompletionMenuControl.mouse_handler.<locals>.__annotate__s<00><00> 2<> 2<>T<EFBFBD> 2r7c<01><><<02>SPSPRR7\^SP^,
4SnR#<00>Tr<54>N)r<>r<>r<>r<><00>r<>r;s<00><>r3<00> scroll_left<66>CMultiColumnCompletionMenuControl.mouse_handler.<locals>.scroll_lefts2<00><><00> <0A> <1F> <1F>d<EFBFBD>&9<>&9<>t<EFBFBD> <1F> T<><1D>a<EFBFBD><14><1B><1B>q<EFBFBD><1F>1<>D<EFBFBD>Kr7c<01><00>V^8<>dQhRR/#r<>r1)r2s"r3r4rBs<00><00> <0E> <0E>d<EFBFBD> r7c<01><><<02>SPSPRR7\SPSP,
SP
^,4SnR#rD)r<>r<>r<>r<>r<>r<>rEs<00><>r3<00> scroll_right<68>DMultiColumnCompletionMenuControl.mouse_handler.<locals>.scroll_rightsC<00><><00> <0A>O<EFBFBD>O<EFBFBD>$<24>"5<>"5<>4<EFBFBD>O<EFBFBD> P<><1D><14>#<23>#<23>d<EFBFBD>&<<3C>&<<3C><<3C>d<EFBFBD>k<EFBFBD>k<EFBFBD>A<EFBFBD>o<EFBFBD><0E>D<EFBFBD>Kr7N)r rEr<>rr<>r<>r<>r<>rlrmr<>r<>r<>r<><00>get<65>apply_completion)r;r<>rFrJrlrmr<>r<>sf& @r3r<><00>.MultiColumnCompletionMenuControl.mouse_handlers<00><><00> <14>I<EFBFBD> $<24> $<24><01> 2<> 2<> <0E> <0E> <17> !<21> !<21>^<5E>%?<3F>%?<3F> ?<3F> <18>N<EFBFBD>2<14>/<19> #<23> #<23>~<7E>'?<3F>'?<3F> ?<3F> <17>M<EFBFBD>,<14>)<19> #<23> #<23>~<7E>'><3E>'><3E> ><3E><1B>$<24>$<24>&<26>&<26>A<EFBFBD><1B>$<24>$<24>&<26>&<26>A<EFBFBD><11>A<EFBFBD>v<EFBFBD><17>*<2A>*<2A>*<2A><1F>M<EFBFBD><14><13>d<EFBFBD>(<28>(<28>1<EFBFBD>,<2C>,<2C><17>+<2B>+<2B>+<2B> <20>N<EFBFBD><14> "<22>;<3B>;<3B>?<3F>?<3F><11><06>G<>
<EFBFBD><1D><15>&<26>&<26>z<EFBFBD>2<>r7c<01><00>V^8<>dQhRR/#)r.r/r&r1)r2s"r3r4r<>@s<00><00>0<12>0<12>+<2B>0r7c <0A><>aa<06>^RIHpV!4p\RV3Rll4pRRV3RllloVPRRVR7R V3R
ll4pVPR RVR7R V3R ll4pV#)zW
Expose key bindings that handle the left/right arrow keys when the menu
is displayed.
)r&c<01><00>V^8<>dQhRR/#r-r1)r2s"r3r4<00>GMultiColumnCompletionMenuControl.get_key_bindings.<locals>.__annotate__Js<00><00>
X<01>
X<01><04>
Xr7c<05>0<<01>\4pVPPpVeVPfR#\;QJd3V3RlVP
P 4F 'gK R# R#!V3RlVP
P 44#)z1Only handle key bindings if this menu is visible.Fc3<01>@<"<00>TFqPS8Hx<00>K R#5irw<00>r<>)rz<00>windowr;s& <20>r3r{<00>TMultiColumnCompletionMenuControl.get_key_bindings.<locals>.filter.<locals>.<genexpr>Ts<00><><00><00>W<><V<>&<26>~<7E>~<7E><14>-<2D><V<>s<00>T)r rErFrpr~<00>layout<75>visible_windows)<03>apprFr;s <20>r3r<><00>AMultiColumnCompletionMenuControl.get_key_bindings.<locals>.filterIsr<00><><00><1A>)<29>C<EFBFBD> <20>/<2F>/<2F>><3E>><3E>N<EFBFBD><1E>%<25><1E>)F<>)F<>)N<><1C><17>3<EFBFBD>W<>C<EFBFBD>J<EFBFBD>J<EFBFBD><V<><V<>W<>3<EFBFBD>3<EFBFBD> W<>3<EFBFBD> W<>3<EFBFBD>W<>C<EFBFBD>J<EFBFBD>J<EFBFBD><V<><V<>W<>W<> Wr7c<01> <00>V^8<>dQhRRRR/#)r.<00>rightr0r/r<>r1)r2s"r3r4rRVs<00><00> 5<> 5<><04> 5<><14> 5r7c<01>\<<01>\4PpVPpVe<>VPewVPpV'dVSP, pMVSP,p^Tu;8:d\ VP 48dMR#VPV4R#R#R#R#rw)r rErFrpr<>rTrUr<>)r]<00>buffrF<00> new_indexr;s& <20>r3<00>move<76>?MultiColumnCompletionMenuControl.get_key_bindings.<locals>.moveVs<><00><><00><1A>9<EFBFBD>+<2B>+<2B>D<EFBFBD>!<21>0<>0<>N<EFBFBD><1D>)<29>n<EFBFBD>.K<>.K<>.W<>*<2A>9<>9<> <09><18><1D><14>!4<>!4<>4<>I<EFBFBD><1D><14>!4<>!4<>4<>I<EFBFBD><14> <09>C<>C<EFBFBD><0E>(B<>(B<>$C<>C<>C<><18>)<29>)<29>)<29>4<>D<01>/X<01>)r7<00>leftT)<02> is_globalr<6C>c<01> <00>V^8<>dQhRRRR/#<00>r.<00>event<6E>Er/r<>r1)r2s"r3r4rRis<00><00> <13> <13><11> <13>t<EFBFBD> r7c<01><<01>S!4R#rwr1<00>rgras&<26>r3<00>_left<66>@MultiColumnCompletionMenuControl.get_key_bindings.<locals>._lefths<00><><00> <10>Fr7r]c<01> <00>V^8<>dQhRRRR/#rfr1)r2s"r3r4rRms<00><00> <17> <17>!<21> <17><04> r7c<01><<01>S!R4R#)TNr1rjs&<26>r3<00>_right<68>AMultiColumnCompletionMenuControl.get_key_bindings.<locals>._rightls
<00><><00> <10><14>Jr7r9)<04>'prompt_toolkit.key_binding.key_bindingsr&r<00>add)r;r&<00>kbr<62>rkrorasf @r3<00>get_key_bindings<67>1MultiColumnCompletionMenuControl.get_key_bindings@s{<00><><00>
H<01> <18>]<5D><02> <12>
X<01>
<13>
X<01> 5<> 5<>$
<0C><16><16><06>$<24>v<EFBFBD><16> 6<> <13>
7<EFBFBD> <13>
<0C><16><16><07>4<EFBFBD><06><16> 7<> <17>
8<EFBFBD> <17><12> r7) r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>N)<02><00>)r<>r<>r<>r<>r<>rr<>r<>r<rKrVrrrr<>rtr<>r1r7r3r<>r<>%sF<00><00><08>,<19><14><1F>4<18><15>.<2E>2U<01>&sC<01>j<1A>**<14>X0<12>0r7r<>c<01>6a<00>]tRtRtRtRRV3RllltRtV;t#)r)isz<>
Container that displays the completions in several columns.
When `show_meta` (a :class:`~prompt_toolkit.filters.Filter`) evaluates
to True, it shows the meta information at the bottom.
c <01>0<00>V^8<>dQhRRRRRRRRRRRR /#)
r.r<>rBr<>rirr<>r<>r/r<>r1)r2s"r3r4<00>'MultiColumnCompletionsMenu.__annotate__zsN<00><00>.M<01>.M<01><15>.M<01>%(<28>.M<01> <20> .M<01>
#<23> .M<01> <15> .M<01>
<0E>.Mr7c
 <09>p<<01>\V4p\V4pV\,\(,p\RRl4p\ \ \ VVR7\^R7\^R7R7VR7p\ \ \4R7Wc,V,R7p \S
V`)W<>.VR7R#) c<01><00>V^8<>dQhRR/#r-r1)r2s"r3r4<00>9MultiColumnCompletionsMenu.__init__.<locals>.__annotate__<5F>s<00><00> <0E> <0E><14> r7c<01><><00>\4PPpVRJ;'dI\;QJd&RVP4F 'gK R# R#!RVP44#)Nc3<01>8"<00>TFqPx<00>K R#5irw)r<>rys& r3r{<00>WMultiColumnCompletionsMenu.__init__.<locals>.any_completion_has_meta.<locals>.<genexpr><3E>s<00><00><00>6<0E>(B<>1<EFBFBD><0E><0E>(B<>r}TF)r rErFr~rU)rFs r3<00>any_completion_has_meta<74>DMultiColumnCompletionsMenu.__init__.<locals>.any_completion_has_meta<74>sm<00><00>$<24>Y<EFBFBD>5<>5<>D<>D<>N<EFBFBD>!<21><14>-<2D><0E><0E>#<23>#<23>6<0E>(6<>(B<>(B<>6<0E>#<23>#<23> <0E>#<23> <0E>#<23>6<0E>(6<>(B<>(B<>6<0E>3<0E> r7)r<>r<>r<>)r<>rOrZr<>rU)r<>N) rrrrrr r<>r$<00>_SelectedCompletionMetaControlr<6C>r<>) r;r<>r<>rir<>r<><00> full_filterr<72><00>completions_window<6F> meta_windowr<77>s &&&&&& <20>r3r<><00>#MultiColumnCompletionsMenu.__init__zs<><00><><00><1E>i<EFBFBD>(<28> <09> <20><1C>.<2E> <0C>#<23>_<EFBFBD>4<><07>x<EFBFBD>?<3F> <0B> <12> <0E>
<13> <0E>2<><1A>8<>%<25>/I<><12> <20>A<EFBFBD>&<26> <20>Q<EFBFBD>'<27> <0E><1F>

<EFBFBD><1A>+<2B><1A>#A<>#C<>D<><1E>*<2A>-D<>D<>
<EFBFBD> <0B> <0E><07><18>,<2C>:<3A>G<EFBFBD><18>Lr7r1)rvrwTTr<54>)r<>r<>r<>r<>r<>r<>r<>r<>r<>s@r3r)r)ss<00><><00><08> .M<01>.M<01>.Mr7c<01>J<00>]tRtRtRtRRltRRltRRltR R
ltR t R #) r<>i<>zE
Control that shows the meta information of the selected completion.
c<01> <00>V^8<>dQhRRRR/#r@r1)r2s"r3r4<00>+_SelectedCompletionMetaControl.__annotate__<5F>s<00><00><15><15>3<EFBFBD><15>:<3A>r7c <0A>
<00>\4pVPP'd]VPPp\VP4^8<>dV#^\ RVPR,44,#^#)a
Report the width of the longest meta text as the preferred width of this control.
It could be that we use less width, but this way, we're sure that the
layout doesn't change when we select another completion (E.g. that
completions are suddenly shown in more or fewer columns.)
c3<01>L"<00>TFp\VP4x<00>K R#5irwr<>rys& r3r{<00>A_SelectedCompletionMetaControl.preferred_width.<locals>.<genexpr><3E>s"<00><00><00><0E>9P<39>A<EFBFBD>
<EFBFBD>1<EFBFBD>.<2E>.<2E>/<2F>/<2F>9P<39>r<EFBFBD>:N<>dN)r rErFrTrUr<>)r;rArZ<00>states&& r3rK<00>._SelectedCompletionMetaControl.preferred_width<74>sz<00><00><16>i<EFBFBD><03> <0E> <1D> <1D> ,<2C> ,<2C> ,<2C><17>&<26>&<26>5<>5<>E<EFBFBD><12>5<EFBFBD>$<24>$<24>%<25><12>+<2B>+<2B>*<2A><14>s<EFBFBD><0E>9><3E>9J<39>9J<39>4<EFBFBD>9P<39><0E><0E><0E> <0E>r7c
<01>,<00>V^8<>dQhRRRRRRRRRR /#rNr1)r2s"r3r4r<><00>s<<00><00><11><11><12><11>"<22><11><19> <11>
6<> <11>
<14> r7c <09><00>^#)r<>r1)r;rOrPrQrRs&&&&&r3rV<00>/_SelectedCompletionMetaControl.preferred_height<68>s<00><00>r7c<01>$<00>V^8<>dQhRRRRRR/#rYr1)r2s"r3r4r<><00>s&<00><00>N<01>N<01>C<EFBFBD>N<01><13>N<01><19>Nr7c <09>na<04>VP4oRV3Rllp\TS'd^R7#^R7#)c<01> <00>V^8<>dQhRRRR/#r]r1)r2s"r3r4<00>C_SelectedCompletionMetaControl.create_content.<locals>.__annotate__<5F>s<00><00> <1D> <1D><03> <1D> 2<> r7c<01><<01>S#rwr1)r^r4s&<26>r3rj<00>?_SelectedCompletionMetaControl.create_content.<locals>.get_line<6E>s <00><><00><1C> r7r&)<02>_get_text_fragmentsr")r;rOrZrjr4s&&& @r3rr<00>-_SelectedCompletionMetaControl.create_content<6E>s4<00><><00><18>,<2C>,<2C>.<2E> <09> <1D> <1D><19>(<28>I<EFBFBD>q<EFBFBD>M<>M<>1<EFBFBD>M<>Mr7c<01><00>V^8<>dQhRR/#)r.r/rr1)r2s"r3r4r<><00>s<00><00><12><12>%7<>r7c <09>0<00>Rp\4PPpV'dnVP'd\VPP'd@\ \ \R.4VPP,R.,VR7#.#)z'class:completion-menu.multi-column-metar<61>r<>) r rErFrrxrr
rr<>)r;r<>r<>s& r3r<><00>2_SelectedCompletionMetaControl._get_text_fragments<74>s<><00><00>9<><05><17> <09>(<28>(<28>7<>7<><05> <12><15>(<28>(<28>(<28><15>(<28>(<28>:<3A>:<3A>:<3A>$<24><14>'<27>)<29><1B>5<><17>*<2A>*<2A>7<>7<>8<><1C>+<2B><1E><1C> <0E> <0E><12> r7r1N)
r<EFBFBD>r<>r<>r<>r<>rKrVrrr<>r<>r1r7r3r<>r<><00>s!<00><00><08><15>6<11>N<01><12>r7r<>r9)B<>
__future__rr<00> itertoolsr<00>typingrrrrr r
<00>weakrefr <00>"prompt_toolkit.application.currentr <00>prompt_toolkit.bufferr <00>prompt_toolkit.completionr<00>prompt_toolkit.data_structuresr<00>prompt_toolkit.filtersrrrrr<00>prompt_toolkit.formatted_textrrr<00>(prompt_toolkit.key_binding.key_processorr<00>prompt_toolkit.layout.utilsr<00>prompt_toolkit.mouse_eventsrr<00>prompt_toolkit.utilsr<00>
containersrrrr <00>controlsr!r"r#<00> dimensionr$<00>marginsr%rqr&r'<00>__all__rhr+rcr<>r(r<>r)r<>r1r7r3<00><module>r<>s<><00><01>"<22> <0B>!<21>M<>M<>%<25>6<>1<>0<>0<><02><02><02><02>
C<01>><3E>B<>+<2B>K<>K<>A<>A<> <20>$<24><10><06><16> <20> <02><07>
<12><01>X<14>Y<EFBFBD>X<14>v<06>6%<25><
<EFBFBD>*<2A>
<EFBFBD>@K<12>y<EFBFBD>K<12>\
5M<01><16>5M<01>pA<12>Y<EFBFBD>Ar7