§
    ŒŸjí  ã                  ór   — d Z ddlmZ ddlmZ g d¢ZeZddd„Zddd„Zdd„Z	dd„Z
dd„Zdd„Zdd„Zdd„ZdS )zß
Key bindings, for scrolling up and down through pages.

This are separate bindings, because GNU readline doesn't have them, but
they are very useful for navigating through long multiline buffers, like in
Vi, Emacs, etc...
é    )Úannotations)ÚKeyPressEvent)Úscroll_forwardÚscroll_backwardÚscroll_half_page_upÚscroll_half_page_downÚscroll_one_line_upÚscroll_one_line_downFÚeventÚEÚhalfÚboolÚreturnÚNonec                ót  — | j         j        j        }| j         j        }|r–|j        r‘|j        }|j        }|j        }|r|dz  }|j        j        dz   }d}||j	        k     r5| 
                    |¦  «        }	||	z   |k     r||	z  }|dz  }nn||j	        k     °5|j                             |d¦  «        |_        dS dS dS )z
    Scroll window down.
    é   é   r   N)ÚappÚlayoutÚcurrent_windowÚcurrent_bufferÚrender_infoÚ
ui_contentÚwindow_heightÚdocumentÚcursor_position_rowÚ
line_countÚget_height_for_lineÚtranslate_row_col_to_indexÚcursor_position)
r   r   ÚwÚbÚinfor   Úscroll_heightÚyÚheightÚline_heights
             úw/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/prompt_toolkit/key_binding/bindings/scroll.pyr   r      s  € ð 	Œ	ÔÔ'€AØŒ	Ô €Aàð HˆQŒ]ð HØŒ}ˆØ”_ˆ
ð Ô*ˆØð 	 Ø˜aÑˆMð ŒJÔ*¨QÑ.ˆØˆØ�*Ô'Ò'Ð'Ø×2Ò2°1Ñ5Ô5ˆKà˜Ñ# mÒ3Ð3Ø˜+Ñ%�Ø�Q‘��àð �*Ô'Ò'Ð'ð œJ×AÒAÀ!ÀQÑGÔGˆÔÐÐð+Hð Hð Hð Hó    c                ón  — | j         j        j        }| j         j        }|r“|j        rŽ|j        }|j        }|r|dz  }t          d|j        j        dz
  ¦  «        }d}|dk    r0| 	                    |¦  «        }||z   |k     r||z  }|dz  }nn|dk    °0|j         
                    |d¦  «        |_        dS dS dS )z
    Scroll window up.
    r   r   r   N)r   r   r   r   r   r   Úmaxr   r   r   r   r    )	r   r   r!   r"   r#   r$   r%   r&   r'   s	            r(   r   r   8   sú   € ð 	Œ	ÔÔ'€AØŒ	Ô €Aàð HˆQŒ]ð HØŒ}ˆð Ô*ˆØð 	 Ø˜aÑˆMõ ��1”:Ô1°AÑ5Ñ6Ô6ˆØˆØ�!ŠeˆeØ×2Ò2°1Ñ5Ô5ˆKà˜Ñ# mÒ3Ð3Ø˜+Ñ%�Ø�Q‘��àð �!Šeˆeð œJ×AÒAÀ!ÀQÑGÔGˆÔÐÐð)Hð Hð Hð Hr)   c                ó(   — t          | d¬¦  «         dS )z8
    Same as ControlF, but only scroll half a page.
    T©r   N)r   ©r   s    r(   r   r   V   s   € õ �5˜tÐ$Ñ$Ô$Ð$Ð$Ð$r)   c                ó(   — t          | d¬¦  «         dS )z8
    Same as ControlB, but only scroll half a page.
    Tr-   N)r   r.   s    r(   r   r   ]   s   € õ �E Ð%Ñ%Ô%Ð%Ð%Ð%r)   c                ó>  — | j         j        j        }| j         j        }|ry|j        rt|j        }|j        |j        |j        z
  k     rW|j        j	        |j
        j        k    r'|xj        |j                             ¦   «         z  c_        |xj        dz  c_        dS dS dS dS )z
    scroll_offset += 1
    r   N)r   r   r   r   r   Úvertical_scrollÚcontent_heightr   r    r%   Úconfigured_scroll_offsetsÚtopr   Úget_cursor_down_position)r   r!   r"   r#   s       r(   r
   r
   d   s½   € ð 	Œ	ÔÔ'€AØŒ	Ô €Aàð 	'àŒ=ð 	'Ø”=ˆDàÔ  4Ô#6¸Ô9KÑ#KÒKÐKØÔ'Ô)¨TÔ-KÔ-OÒOÐOØÐ%Ô%¨¬×)LÒ)LÑ)NÔ)NÑNÐ%Ô%àÐ!Ô! QÑ&Ð!Ô!Ð!Ð!ð	'ð 	'ð	'ð 	'ð LÐKr)   c                óÌ  — | j         j        j        }| j         j        }|rÀ|j        r»|j        }|j        dk    r«|                     |                     ¦   «         ¦  «        }|j        j	        |j
        dz
  |z
  |j        j        z
  z
  }t          t          d|¦  «        ¦  «        D ])}|xj        |j                             ¦   «         z  c_        Œ*|xj        dz  c_        dS dS dS dS )z
    scroll_offset -= 1
    r   r   N)r   r   r   r   r   r1   r   Úfirst_visible_liner    r%   r   r3   ÚbottomÚranger+   r   Úget_cursor_up_position)r   r!   r"   r#   Úfirst_line_heightÚ	cursor_upÚ_s          r(   r	   r	   w   s  € ð 	Œ	ÔÔ'€AØŒ	Ô €Aàð 'àŒ=ð 	'Ø”=ˆDàÔ  1Ò$Ð$Ø$(×$<Ò$<¸T×=TÒ=TÑ=VÔ=VÑ$WÔ$WÐ!à Ô0Ô2ØÔ&Øñà'ñ(ð Ô4Ô;ñ<ñ�	õ �s 1 iÑ0Ô0Ñ1Ô1ð Mð M�AØÐ%Ô%¨¬×)JÒ)JÑ)LÔ)LÑLÐ%Ô%Ð%ð Ð!Ô! QÑ&Ð!Ô!Ð!Ð!ð+'ð 'ð	'ð 	'ð %Ð$r)   c                óX  — | j         j        j        }| j         j        }|rˆ|j        rƒt          |j                             ¦   «         |j        dz   ¦  «        }||_        |j         	                    |d¦  «        |_
        |xj
        |j                             d¬¦  «        z  c_
        dS dS dS )zX
    Scroll page down. (Prefer the cursor at the top of the page, after scrolling.)
    r   r   T©Úafter_whitespaceN)r   r   r   r   r   r+   Úlast_visible_liner1   r   r   r    Úget_start_of_line_position©r   r!   r"   Ú
line_indexs       r(   Úscroll_page_downrE   –   s¿   € ð 	Œ	ÔÔ'€AØŒ	Ô €Aàð 
ˆQŒ]ð 
å˜œ×8Ò8Ñ:Ô:¸AÔ<MÐPQÑ<QÑRÔRˆ
Ø&ˆÔàœJ×AÒAÀ*ÈaÑPÔPˆÔØ	ÐÔ˜QœZ×BÒBØ!ð Cñ 
ô 
ñ 	
ÐÔÐÐð
ð 
ð 
ð 
r)   c                ó~  — | j         j        j        }| j         j        }|r›|j        r–t          dt          |j                             ¦   «         |j        j	        dz
  ¦  «        ¦  «        }|j         
                    |d¦  «        |_        |xj        |j                             d¬¦  «        z  c_        d|_        dS dS dS )zY
    Scroll page up. (Prefer the cursor at the bottom of the page, after scrolling.)
    r   r   Tr?   N)r   r   r   r   r   r+   Úminr7   r   r   r   r    rB   r1   rC   s       r(   Úscroll_page_uprH   ¨   s×   € ð 	Œ	ÔÔ'€AØŒ	Ô €Aàð ˆQŒ]ð õ ØÝ�”×0Ò0Ñ2Ô2°A´JÔ4RÐUVÑ4VÑWÔWñ
ô 
ˆ
ð
 œJ×AÒAÀ*ÈaÑPÔPˆÔØ	ÐÔ˜QœZ×BÒBØ!ð Cñ 
ô 
ñ 	
ÐÔð ˆÔÐÐðð ð ð r)   N)F)r   r   r   r   r   r   )r   r   r   r   )Ú__doc__Ú
__future__r   Ú(prompt_toolkit.key_binding.key_processorr   Ú__all__r   r   r   r   r   r
   r	   rE   rH   © r)   r(   ú<module>rN      s  ððð ð #Ð "Ð "Ð "Ð "Ð "à BÐ BÐ BÐ BÐ BÐ Bðð ð €ð €ðHð Hð Hð Hð Hð>Hð Hð Hð Hð Hð<%ð %ð %ð %ð&ð &ð &ð &ð'ð 'ð 'ð 'ð&'ð 'ð 'ð 'ð>
ð 
ð 
ð 
ð$ð ð ð ð ð r)   