File: //usr/local/lib/python3.10/idlelib/__pycache__/autocomplete_w.cpython-310.opt-2.pyc
o
�iiR � @ s� d dl Z d dlT d dlmZ d dlmZmZ d dlmZ dZ dZ
e
dfZd Zd
Z
dZdZd
ZdZdZG dd� d�ZedkrMd dlmZ edddd� dS dS )� N)�*)� Scrollbar)�FILES�ATTRS)�MC_SHIFTz<<autocompletewindow-hide>>z
<FocusOut>z
<ButtonPress>z<<autocompletewindow-keypress>>)z<Key>z<Key-BackSpace>z<Key-Return>z <Key-Tab>z<Key-Up>z
<Key-Down>z
<Key-Home>z <Key-End>z<Key-Prior>z
<Key-Next>z<Key-Escape>z!<<autocompletewindow-keyrelease>>z<KeyRelease>z<B1-ButtonRelease>z<Configure>z<B1-Double-ButtonRelease>c @ s� e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd � Zd!S )"�AutoCompleteWindowc C s� || _ || _d | _ | _| _d | _| _d | _d | _d | _ d | _
d | _d | _d | _
d | _ | _ | _ | _ | _| _d| _d| _d S )NF)�widget�tags�autocompletewindow�listbox� scrollbar�origselforeground�origselbackground�completions�morecompletions�mode�start�
startindex�lasttypedstart�userwantswindowZhideid�
keypressid�listupdateid�winconfigid�keyreleaseid�
doubleclickid�lastkey_was_tab�is_configuring)�selfr r � r �3/usr/local/lib/python3.10/idlelib/autocomplete_w.py�__init__ s$ ��
zAutoCompleteWindow.__init__c C s� t t| j�t|��}d}||k r*| j| || kr*|d7 }||k r*| j| || ks|t| j�k rE| j�d| j|f d| jt| j�f � |t|�k r]| j�d| j|f ||d � | j� || _d S )Nr � �%s+%dc)�min�lenr r �deleter �insertr )r �newstart�min_len�ir r r �
_change_start@ s ��
�
z AutoCompleteWindow._change_startc C s\ d}t | j�}||kr$|| d }| j| |kr|}n|d }||kst|t | j�d �S )Nr � r! )r$ r r# )r �sr) �j�mr r r �_binary_searchN s �z!AutoCompleteWindow._binary_searchc
C s | � |�}| j| d t|�� |kr|S |d }t| j�}||kr@|| d }| j| d t|�� |kr8|}n|d }||ks"|d }||krM| j| S | j| }| j| }tt|�t|��} t|�}|| k r�|| || kr�|d7 }|| k r�|| || ksp|d |� S )Nr! r+ )r/ r r$ r# )
r r, �firstr) r- r. ZlastZ
first_compZ last_compr( r r r �_complete_string[ s.
�
�z#AutoCompleteWindow._complete_stringc C s^ t | j�� d �}| j�|� | j}| j| }| �|�|kr"|}n-tt|�t|��}d}||k rI|| || krI|d7 }||k rI|| || ks9|d |� }| � |� | j| d t| j
�� | j
kro| jj| j| j
d� d S | jj| j�d�| j�d�d� | jr�| j| _d | _| j�dt� | jD ] }| j�t|� q�| j�| �| j
�� | �� d S d S )Nr r! )�selectbackground�selectforeground�bgZfg)�intr �curselection�seer r r/ r# r$ r* r Z configurer r
�cgetr r% �ENDr&