B YI~d>, � @ s� d dl Z d dlmZ d dlZd dlmZmZ d dlm Z ddddd d ddd dddhZ e �d�fdd�Zdd� Z G dd� d�Ze�� edkr�d dlmZ edddd� dS )� N)�maxsize)�NSEW�SUNKEN)�idleConf�class�def�if�elif�else�while�for�try�except�finally�with�asyncz^(\s*)(\w*)c C s |� | ��� S )N)�match�groups)�codeline�c� r �8/opt/alt/python37/lib64/python3.7/idlelib/codecontext.py�get_spaces_firstword s r c C sF t | �\}}t|�}t| �|ks,| | dkr0t}|tko:|}|| |fS )N�#)r �len�INFINITY�BLOCKOPENERS)r ZspacesZ firstword�indent�openerr r r � get_line_info s r c @ sr e Zd ZdZdd� Zdd� Zedd� �Zdd � Zddd�Z ddd�Z dd� Zddd�Zdd� Z dd� Zdd� Zd S )�CodeContext�d c C s || _ |j| _| �� d S )N)�editwin�text�_reset)�selfr" r r r �__init__. s zCodeContext.__init__c C s$ d | _ d | _d | _d| _dg| _d S )N� )r ������ F)�context�cell00�t1� topvisible�info)r% r r r r$ C s zCodeContext._resetc C s t jdddddd�| _d S )N� extensionsr Zmaxlines�int� )�type�default)r Z GetOption� context_depth)�clsr r r �reloadJ s zCodeContext.reloadc C s> | j d k r:y| j�| j � W n tjk r2 Y nX d | _ d S )N)r, r# �after_cancel�tkinter�TclError)r% r r r �__del__Q s zCodeContext.__del__Nc C s~ | j d k�r(| jj| jjf}d}d}xh|D ]`}|| jjkrB|�� n|�� }||j�|d �7 }||j�|�d��7 }||j�|�d��7 }q*W t j | jjddd||tdd� }| _ | �� | � � |�d| j� | �� |jddtd� t�t�� d �}t j| jj|d d�| _| jjddtd� d} n:| j �� d | _ | j�� d | _| j�| j� | �� d } | jjdd| � d�d� dS )Nr �padx�borderr' �disabled)�height�widthZhighlightthicknessr; r<