<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
2a                @   s  d dl Zd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	T d dl
mZ d dljZd dljZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm Z  dZ!dej"  Z#e$jdkZ%dd Z&G dd de'Z(dd Z)dd Z*G dd de'Z+dd Z,dd d!d"Z-d#d$ Z.d%d& Z/d'd( Z0e1d)krd d*l2m3Z3 e3d+d,d-d. d d/l4m5Z5 e5e0 dS )0    N)*)	Scrollbar)idleConf)configdialog)grep)help)
help_about)macosx)MultiCallCreator)pyparse)query)replace)search)window   z (%s)darwinc              C   sb   t j\} }}}}d| |f }|d|f 7 }|dkrB|d|f 7 }n|dkr^|d|d |f 7 }|S )Nz%s%sz%s	candidatezrc%sfinalr   )sysversion_info)majorminormicrolevelserialrelease r   +/opt/alt/python36/lib64/python3.6/editor.py_sphinx_version!   s    r   c               @   s  e Zd ZddlmZ ddlmZmZ ddlm	Z	 ddl
mZmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddl!m"Z" e#j$ Z%dZ&dddZ'dd Z(dd Z)dd Z*dd Z+dddZ,dddddddgZ-d,d- Z.d.d/ Z/d0d1 Z0d2d3 Z1dZ2d4d5 Z3dgZ4d8d9 Z5d:d; Z6d<d= Z7d>d? Z8dd@dAZ9d dBdCZ:ddDdEZ;ddFdGZ<dHdI Z=dJdK Z>dLdM Z?ddNdOZ@ddPdQZAdRdS ZBdTdU ZCdVdW ZDdXdY ZEdZd[ ZFd\d] ZGd^d_ ZHd`da ZIdbdc ZJddde ZKdfdg ZLddhdiZMddjdkZNddldmZOdndo ZPdpdq ZQdrds ZRdtdu ZSdvdw ZTdxdy ZUdzd{ ZVd|d} ZWeXjYeXjZ d~ Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd ZbdddZcdd Zddd Zedd Zfdd Zgdd Zhdd Zidd Zjdd Zkd	ddZldd Zmd
ddZndd Zodd Zpdd Zqdd Zrdd Zsdd Ztdd Zudd Zvdd ZwddiZxdd ZydddZzdddZ{dd Z|dddÄZ}dddńZ~ddǄ ZddɄ Zdd˄ Zdd̈́ ZdddЄZdd҄ ZddԄ Zddք Zdd؄ Zddڄ Zdd܄ Zddބ Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS (  EditorWindowr   )
Percolator)ColorDelegatorcolor_config)UndoDelegator)	IOBindingencoding)mainmenu)MultiStatusBar)AutoComplete)
AutoExpand)Calltip)CodeContext)FormatParagraph)
ParenMatch)Rstrip)Squeezer)
ZoomHeightNc             C   sn  ddl m} tjd krtjjtjdd}tj	j
drvddtjd d   }tjjd	r^d
}qd}tjj||dd}nVtj	d d dkrtjjtjddt  }	tjj|	r|	}ntj	dkrtjjtjd}tjj|}tjj|r|t_tj	dkrdtj t_ndtjd d  t_|| _|p*|j}|| _t|| _tj|| jd | _}
|rl|j| _|j| j_ni | _i | j_tjjtjd| _d| _t|
 | _ }t!|dd | _"}tj#ddddd| _$dddd| j$d tj#ddd!ddd"}t%t&|f| | _'}| j'| j_(| j)  | j*  | jj+d#| j, | jj-d$| j. t/j0 rp|j-d$| j. |j-d%| j1 |j-d&| j1 n|j-d'| j1 |j-d(| j2 |j-d)| j2 |j-d*| j2 |j-d+| j3 |j-d,| j4 |j-d-| j5 |j-d.| j6 |j-d/| j7 |j-d0| j8 |j-d1| j9 |j-d2| j: |j-d3| j; |j-d4d5d6  |j-d7| j< |j-d8| j= |j-d9| j> |j-d:| j? |j-d;| j@ |j-d<| jA |j-d=| jB |j-d>| jC |j-d?| jD |j-d@| jE |j-dA| jF |j-dB| jG |j-dC| jH |j-dD| jI |j-dE| jJ |j-dF| jK |j-dG| jL |j-dH| jM |j-dI| jN |j-dJ| jOd |j-dK| jOdL |j-dM| jP |j-dN| jQ |j-dO| jR |r||j| < |r| |jS|< |j-dP| jT |j-dQ| jjU |j-dR| jV |j-dS| jW |j-dT| jX | jY  | jZ|dU< |j[t\t]dV |j^|dW< tj_| jdd|dX< |j[t`tadLdY |j[tbtadLdY |jc  tj#ddZd[d\d}| | _dd]| _e| je| _f| jg  d^| _hd}| _i| jj| | _k}| jl  | _m}|jn| |jo|_o|jp|_p|jq| jr | js|  | _t}|ju| jv d^| _w| jxd^ d | _y|rjtjjz|rZtjj| rZ|j{|rjdb| _w| j||}| jx| n|j}| db| _w| j~  | jr  | j  | j  | jjdc}|r|jdd}|d krd~}|dkr|j  |dL }|| _tj| j tj| _tj| _tj| _|jdedf |jdgdhdidj |jdkdl |jdmdn |jdodndpdq | j| }|j-de|j |j-dg|j |j-dr|j |j-ds| j| j |j-dt| j| j | j| }|j-du|j |j-do|j || }|j-dv|j |j-dw|j |j-dx| j| j | j| }|j-dk|j |j-dm|j |j-dy|j |j-dz| j| j |j-d{| j| j | j| }|j-d||j d S )Nr   )ScriptBindingZDocz
index.htmllinuxzpython-docs-z%s.%s.%s   z/var/www/html/python/z/var/www/html/python/index.htmlz/usr/share/doc/winzPython%s.chmr   z0Resources/English.lproj/Documentation/index.htmlzfile://zhttps://docs.python.org/%d.%d/   )menuzrecent-files.lst vbar)namemainr   widthint)typetext   ZnoneZwordprocessorheight)r9   ZpadxwrapZhighlightthicknessr;   Ztabstyler@   ZWM_DELETE_WINDOWz<<close-window>>z<Control-Button-1>z<2>z<3>z<MouseWheel>z
<Button-4>z
<Button-5>z<<cut>>z<<copy>>z	<<paste>>z<<center-insert>>z<<help>>z<<python-docs>>z<<about-idle>>z<<open-config-dialog>>z<<open-module>>z<<do-nothing>>c             S   s   dS )Nbreakr   )eventr   r   r   <lambda>   s    z'EditorWindow.__init__.<locals>.<lambda>z<<select-all>>z<<remove-selection>>z<<find>>z<<find-again>>z<<find-in-files>>z<<find-selection>>z<<replace>>z<<goto-line>>z<<smart-backspace>>z<<newline-and-indent>>z<<smart-indent>>z<<indent-region>>z<<dedent-region>>z<<comment-region>>z<<uncomment-region>>z<<tabify-region>>z<<untabify-region>>z<<toggle-tabs>>z<<change-indentwidth>>z<Left>z<Right>   z<<del-word-left>>z<<del-word-right>>z<<beginning-of-line>>z<<open-new-window>>z<<close-all-windows>>z<<open-class-browser>>z<<open-path-browser>>z<<open-turtle-demo>>command)sidefillZyscrollcommandfont)rG   rH   expandIndentz
use-spacesboolr   F2     @KL Tr   endz<<autocomplete>>z	<Key-Tab>z<<try-open-completions>>z<KeyRelease-period>z<KeyRelease-slash>z<KeyRelease-backslash>z<<try-open-calltip>>z<KeyRelease-parenleft>z<<refresh-calltip>>z<KeyRelease-parenright>z<<paren-closed>>z<KeyRelease-bracketright>z<KeyRelease-braceright>z<<force-open-completions>>z<<expand-word>>z<<format-paragraph>>z<<flash-paren>>z<<check-module>>z<<run-module>>z<<do-rstrip>>z<<force-open-calltip>>z<<zoom-height>>z<<toggle-code-context>>z<<squeeze-current-text>>)rM   rN   rO   )Zidlelib.runscriptr1   r   help_urlospathjoinr   base_prefixplatformcountr   isdirr   isfilenormpathflistrootMenumenubarr   ZListedTopleveltopvarstkinter_varsZinversedictinstance_dictr   Zuserdirrecent_files_pathprompt_last_lineFrame
text_framer   r8   	GetOptionr;   r
   ZTextr>   Zfocused_widgetcreatemenubarapply_bindingsZprotocolclosebindclose_eventr	   ZisAquaTkright_menu_eventmousescrollcutcopypastecenter_insert_eventhelp_dialogpython_docsabout_dialogconfig_dialogopen_module_event
select_allremove_selection
find_eventfind_again_eventfind_in_files_eventfind_selection_eventreplace_eventgoto_line_eventsmart_backspace_eventnewline_and_indent_eventsmart_indent_eventindent_region_eventdedent_region_eventcomment_region_eventuncomment_region_eventtabify_region_eventuntabify_region_eventtoggle_tabs_eventchange_indentwidth_eventmove_at_edge_if_selectiondel_word_leftdel_word_righthome_callbackdictnew_callbackZclose_all_callbackopen_module_browseropen_path_browseropen_turtle_demoset_status_barhandle_yviewpackRIGHTYsetGetFontZLEFTZBOTHZTOPZ	focus_setusetabstabwidthindentwidthset_notabs_indentwidthcontext_use_ps1num_context_linesr    perr#   undoinsertfilterundo_block_startundo_block_stopZset_saved_change_hooksaved_change_hookr$   ioZset_filename_change_hookfilename_change_hookZ	good_loadset_indentation_paramscolorexistsloadfileispythonsourceZset_filenameResetColorizerupdate_recent_files_listload_extensionsmenudictgetindexadd_separator	wmenu_endZregister_callbackpostwindowsmenutkMessageBoxaskyesnotkSimpleDialog
askinteger	showerror	event_addr(   Zautocomplete_eventZtry_open_completions_eventZforce_open_completions_eventr)   Zexpand_word_eventr,   Zformat_paragraph_eventr-   Zflash_paren_eventZparen_closed_eventZcheck_module_eventZrun_module_eventr.   Z	do_rstripr*   Ztry_open_calltip_eventZrefresh_calltip_eventZforce_open_calltip_eventr0   Zzoom_height_eventr+   Ztoggle_code_context_eventr/   Zsqueeze_current_text_event)selfr\   filenamekeyr]   r1   ZdochomeZpyverZbasepathZchmfiler`   rg   r8   Ztext_optionsr>   Z	usespacesr   r   r   	is_py_srcr6   rP   ZautocompleteZ
parenmatchZscriptbindingZctipZsqueezerr   r   r   __init__A   s   






















zEditorWindow.__init__c             C   sn   t |tr`y|j| j}W nD tk
r^   y|j| j}W n tk
rX   |jd}Y nX Y nX tjdd|S )Nz	iso8859-1u   [𐀀-􏿿]u   �)
isinstancebytesdecodefilesystemencodingUnicodeDecodeErrorr%   resub)r   r   r   r   r   _filename_to_unicodeD  s    
z!EditorWindow._filename_to_unicodec             C   s   | j j \}}| jj| dS )NrB   )r   Zdefaultfilenamer\   new)r   rC   dirnamebasenamer   r   r   r   S  s    zEditorWindow.new_callbackc             C   s  |j d@ dkr|jdkrd S | jjdrd| jjdddrd| jjdddrdt| jjdjdd	 }n:| jjdd}x*tt	|D ]}|| dkrP qW t	|}t| jjdjdd	 }||krd}dt
| d }|j d	@ dkr| jjddd n| jjds| jjdd n@| jj| jjdd| jjdrD| jjdd n| jjdd | jj|}| jjd}| jj|d|r|| }}| jjddd | jjd|| | jjd| | jjd dS )N   r   ZHomeZiomarkz<=zinsert lineendzinsert linestart.rE    	insertzinsert linestart+cselz1.0rP   z	sel.firstZ	my_anchor<zsel.last>rB   )r   r   )stateZkeysymr>   r   comparer<   splitr   rangelenstr
tag_removemark_settag_addsee)r   rC   ZinsertptlineZlineatdestfirstlastr   r   r   r   X  s@    
zEditorWindow.home_callbackc             C   s   | j | j| _t| jdddd}tjdkr<| jjddtd | jjdd	td | jjd
dtd | jjt	t
d |jt	t
d | jjd| j | jjddd | jj| j d S )NrE   Zgrey75)r@   ZborderwidthZ
backgroundr   Z	_padding1z    )rG   columnzCol: ?r   zLn: ?)rG   rH   z<<set-line-and-column>>z<KeyRelease>z<ButtonRelease>)r'   r`   
status_barrf   r   rW   	set_labelr   r   ZBOTTOMXr>   rl   set_line_and_columnr   Z
after_idle)r   sepr   r   r   r     s    
zEditorWindow.set_status_barc             C   s>   | j jtjd\}}| jjdd|  | jjdd|  d S )Nr   r   zCol: %sr   zLn: %s)r>   r   ZINSERTr   r   r   )r   rC   r   r   r   r   r   r     s    z EditorWindow.set_line_and_columnfile_Fileedit_EditformatF_ormatrun_Runoptions_Optionsr   _Windowr   _Helpc             C   s   | j }i  | _}xD| jD ]:\}}t|\}}t||dd ||< }|j|||d qW tj rt|ddd |d< }|jd|d | j  t| j dd| _	| jd	 j
d
dd| j	d | jd jt| _| j  d S )Nr   )r9   tearoff)labelr6   	underlineZappleZapplicationZIDLE)r   r6   )r   r   r3   zRecent Files)r   r   r6   r   )r_   r   
menu_specsprepstrr^   Zadd_cascader	   Z
isCarbonTk
fill_menusrecent_files_menuZinsert_cascader   ENDbase_helpmenu_lengthreset_help_menu_entries)r   Zmbarr   r9   r   r   r6   r   r   r   ri     s"    

zEditorWindow.createmenubarc             C   sJ   | j d }|jd}|d kr d}|| jkr<|j| jd | tj| d S )Nr   rP   rE   rQ   )r   r   r   deleter   Zadd_windows_to_menu)r   r6   rP   r   r   r   r     s    


zEditorWindow.postwindowsmenuc             G   sR   |dkr<t |d }t| jd| | jd }d}|df}| jj|f|  dS )NZmovetor   rP   z@0,0ZscrollunitsrB   )floatround	getlinenor>   yview)r   rC   argsZfractionlinesr   r   r   r     s    zEditorWindow.handle_yviewc             C   s@   t j|jdkt j|jdki}||j r*dnd}| jj|d dS )Nr   r   r?   r  rB   )Z	EventTypeZ
MouseWheelZdeltaZButtonZnumr=   r>   Zyview_scroll)r   rC   Zupr  r   r   r   ro     s
    zEditorWindow.mousescrollc       	      C   s   | j jdd|j|jf  | js(| j  | j}|| _tjd d dk}|rX| j j	dd xX| j
D ]N}y|\}}}W n tk
r   w`Y nX |d krq`t| | }|j||d q`W |j|j|j |r| j j	dd d	S )
Nr   z@%d,%dr3   r4   Zarrow)Zcursor)r   ZibeamrB   )r>   r   xyrmenu
make_rmenurC   r   rW   configrmenu_specs
ValueErrorgetattrZentryconfigureZtk_popupZx_rootZy_root)	r   rC   r  Ziswinitemr   	eventnameZverify_stater   r   r   r   rn     s*    zEditorWindow.right_menu_eventClose<<close-window>>c             C   sj   t | jdd}xP| jD ]F}|d |d  }}|d k	rT| j|fdd}|j||d q|j  qW || _d S )Nr   )r   rE   c             S   s   | j | d S )N)event_generate)r>   r  r   r   r   rF     s    z(EditorWindow.make_rmenu.<locals>.command)r   rF   )r^   r>   r  add_commandr   r  )r   r  r  r   r  rF   r   r   r   r    s    zEditorWindow.make_rmenuc             C   s   | j  S )N)rmenu_check_copy)r   r   r   r   rmenu_check_cut  s    zEditorWindow.rmenu_check_cutc             C   s6   y| j jd}W n tk
r$   dS X |r.dS dS d S )Nz	sel.firstdisablednormal)r>   r   TclError)r   Zindxr   r   r   r    s
    zEditorWindow.rmenu_check_copyc             C   s6   y| j jjd| j d W n tk
r,   dS X dS d S )Nztk::GetSelectionZ	CLIPBOARDr  r  )r>   tkcallr  )r   r   r   r   rmenu_check_paste  s
    zEditorWindow.rmenu_check_pastec             C   s   t j| j dS )NrB   )r   ZAboutDialogr`   )r   rC   r   r   r   rv     s    zEditorWindow.about_dialogc             C   s   t j| jd dS )NZSettingsrB   )r   ZConfigDialogr`   )r   rC   r   r   r   rw   $  s    zEditorWindow.config_dialogc             C   s"   | j r| j }n| j}tj| dS )NrB   )r]   r`   r   Zshow_idlehelp)r   rC   parentr   r   r   rt   *  s
    
zEditorWindow.help_dialogc             C   sn   t jd d dkr^ytj| j W qj tk
rZ } ztjdt|| j	d W Y d d }~X qjX nt
j| j dS )Nr3   r4   zDocument Start Failure)titlemessager   rB   )r   rW   rS   	startfilerR   OSErrorr   r   r   r>   
webbrowseropen)r   rC   whyr   r   r   ru   4  s    $zEditorWindow.python_docsc             C   s   | j jd dS )Nz<<Cut>>rB   )r>   r  )r   rC   r   r   r   rp   ?  s    zEditorWindow.cutc             C   s    | j jdsd S | j jd dS )Nr   z<<Copy>>rB   )r>   Z
tag_rangesr  )r   rC   r   r   r   rq   C  s    zEditorWindow.copyc             C   s   | j jd | j jd dS )Nz	<<Paste>>r   rB   )r>   r  r   )r   rC   r   r   r   rr   J  s    zEditorWindow.pastec             C   s.   | j jddd | j jdd | j jd dS )Nr   z1.0zend-1cr   rB   )r>   r   r   r   )r   rC   r   r   r   ry   O  s    zEditorWindow.select_allc             C   s    | j jddd | j jd dS )Nr   z1.0rP   r   rB   )r>   r   r   )r   rC   r   r   r   rz   U  s    zEditorWindow.remove_selectionc                s*   | j j| j jd fdd}|S )Nsel.first+1csel.last-1cc                sB   | j d@ dkr>yd d   W n tk
r<   Y nX d S )Nr?   r   z	sel.firstr   )r   r  )rC   )
edge_indexedges_tableself_text_indexself_text_mark_setr   r   move_at_edgee  s    z<EditorWindow.move_at_edge_if_selection.<locals>.move_at_edge)r(  r)  )r>   r   r   )r   r*  r.  r   )r*  r+  r,  r-  r   r   Z  s
    z&EditorWindow.move_at_edge_if_selectionc             C   s   | j jd dS )Nz<Meta-Delete>rB   )r>   r  )r   rC   r   r   r   r   n  s    zEditorWindow.del_word_leftc             C   s   | j jd dS )Nz<Meta-d>rB   )r>   r  )r   rC   r   r   r   r   r  s    zEditorWindow.del_word_rightc             C   s   t j| j dS )NrB   )r   findr>   )r   rC   r   r   r   r{   v  s    zEditorWindow.find_eventc             C   s   t j| j dS )NrB   )r   Z
find_againr>   )r   rC   r   r   r   r|   z  s    zEditorWindow.find_again_eventc             C   s   t j| j dS )NrB   )r   Zfind_selectionr>   )r   rC   r   r   r   r~   ~  s    z!EditorWindow.find_selection_eventc             C   s   t j | j| j| j dS )NrB   )r   r>   r   r\   )r   rC   r   r   r   r}     s    z EditorWindow.find_in_files_eventc             C   s   t j | j dS )NrB   )r   r>   )r   rC   r   r   r   r     s    zEditorWindow.replace_eventc             C   sT   | j }tjdd|d}|d kr"dS |dkr6|j  dS |jdd|  |jd dS )NZGotozGo to line number:)r   rB   r   r   z%d.0)r>   r   r   bellr   r   )r   rC   r>   linenor   r   r   r     s    

zEditorWindow.goto_line_eventc             C   sp   y| j jddj }W n tk
r.   d}Y nX tj| j dd|j}|d k	rl| jr`| jj| n| j	j
| |S )Nz	sel.firstzsel.lastr7   zOpen ModulezAEnter the name of a Python module
to search on sys.path and open:)r>   r   stripr  r   Z
ModuleNameresultr\   r&  r   r   )r   r9   Z	file_pathr   r   r   open_module  s    
zEditorWindow.open_modulec             C   s   | j   dS )NrB   )r4  )r   rC   r   r   r   rx     s    zEditorWindow.open_module_eventc             C   sJ   | j j}| jjdko|s,| j }|d kr,dS ddlm} |j| j| dS )NZPyShellEditorWindowrB   r   )browser)	r   r   	__class____name__r4  idlelibr5  ZModuleBrowserr]   )r   rC   r   r5  r   r   r   r     s    z EditorWindow.open_module_browserc             C   s   ddl m} |j| j dS )Nr   )pathbrowserrB   )r8  r9  ZPathBrowserr]   )r   rC   r9  r   r   r   r     s    zEditorWindow.open_path_browserc             C   s&   dd l }tjddg}|j|dd dS )Nr   z-cz,from turtledemo.__main__ import main; main()F)shellrB   )
subprocessr   
executablePopen)r   rC   r;  cmdr   r   r   r     s    zEditorWindow.open_turtle_democ             C   sN   |d k	rJ|dkrJ| j jdd|  | j jddd | j jddd | j  d S )Nr   r   z%d.0r   z1.0rP   z
insert +1l)r>   r   r   r   center)r   r1  r   r   r   gotoline  s
    zEditorWindow.gotolinec             C   sb   | st jj|rdS t jjt jj|\}}t jj|dkrBdS | jjdd}|jdo`d|kS )	NT.py.pywz1.0z1.0 lineendz#!python)rA  rB  )	rS   rT   rY   splitextr   normcaser>   r   
startswith)r   r   baseZextr   r   r   r   r     s    zEditorWindow.ispythonsourcec             C   s   | j r| j j|  d | _ d S )N)r\   Zunregister_maybe_terminate)r   r   r   r   
close_hook  s    zEditorWindow.close_hookc             C   s
   || _ d S )N)rH  )r   rH  r   r   r   set_close_hook  s    zEditorWindow.set_close_hookc             C   s2   | j r| j j|  | j  | jj|  | j  d S )N)r\   Zfilename_changed_editr   r`   Zupdate_windowlist_registryr   )r   r   r   r   r     s
    z!EditorWindow.filename_change_hookc             C   sV   | j r
d S | j| jjr"| j | _ | j rR| jj| j | jj| j  | jj| j d S )N)	r   r   r   r   r!   r   removefilterr   r   )r   r   r   r   _addcolorizer  s    
zEditorWindow._addcolorizerc             C   s,   | j s
d S | j j  | jj| j  d | _ d S )N)r   Zremovecolorsr   rJ  )r   r   r   r   _rmcolorizer  s
    
zEditorWindow._rmcolorizerc             C   s    | j   | j  tj| j d S )N)rL  rK  r   r"   r>   )r   r   r   r   r     s    zEditorWindow.ResetColorizer_c             C   sp   |j d| |j|}|r6|| jkr6|j d|d | d|j|krR|jd| n|jd|d  |j| d S )NZERRORz
 wordstart
r   z+1c)r   r   
IDENTCHARSr   r   )r   r>   poscharr   r   r   colorize_syntax_error  s    
z"EditorWindow.colorize_syntax_errorc             C   s   t j| jdd| jd< d S )Nr:   r   rI   )r   r   r]   r>   )r   r   r   r   	ResetFont  s    zEditorWindow.ResetFontc             C   s   t j  | j_}x&|j D ]\}}| jj|f|  qW xF| j D ]:}t j|}|rBx&|j D ]\}}| jj|f|  q^W qBW d S )N)	r   GetCurrentKeySetr&   default_keydefsitemsr>   Zevent_deleteget_standard_extension_namesGetExtensionBindings)r   keydefsrC   keylistextensionNamexkeydefsr   r   r   RemoveKeybindings  s    
zEditorWindow.RemoveKeybindingsc             C   sV  t j  | j_}| j  x(| j D ]}t j|}|r"| j| q"W i }xR| jjD ]F}i ||d < x4|d D ](}|rj|d ||d  t|d d < qjW qPW x| j	D ]}| j	| }|j
t}|d krq|d7 }xtd|D ]r}	|j|	dkr|j|	d}
|
r|j|	d}d}||kr.||| kr.|| | }|rt||}
|j|	|
d qW qW d S )Nr   rE   rF   acceleratorr   r7   )r^  )r   rT  r&   rU  rj   rW  rX  menudefsr   r   r   r   r   r=   Z	entrycgetget_acceleratorZentryconfig)r   rY  r[  r\  ZmenuEventDictr6   r  ZmenubarItemrP   r   ZaccelZitemNamerC   r   r   r   ApplyKeybindings#  s<    
(



zEditorWindow.ApplyKeybindingsc             C   s   | j stjddddd| _d S )Nr:   rK   z
num-spacesr<   )r=   )r   r   rh   r   )r   r   r   r   r   G  s    
z#EditorWindow.set_notabs_indentwidthc             C   s   t j }| jd }|jt}|| jkr8|j| jd | |rr|j  x,|D ]$}| j|d }|j	|d |d qJW || jd< d S )Nr   rE   r   )r   rF   )
r   ZGetAllExtraHelpSourcesListr   r   r   r   r  r   "_EditorWindow__extra_help_callbackr  )r   Z	help_listZhelpmenuZhelpmenu_lengthentryr>  r   r   r   r   N  s    



z$EditorWindow.reset_help_menu_entriesc                s   |f fdd	}|S )Nc                s   | j dstjj| } tjd d dkrrytj|  W q| tk
rn } ztj	dt
| jd W Y d d }~X q|X n
tj|  d S )Nwwwhttpr3   r4   zDocument Start Failure)r!  r"  r   )rd  re  )rF  rS   rT   r[   r   rW   r#  r$  r   r   r   r>   r%  r&  )helpfiler'  )r   r   r   display_extra_helpa  s    
$z>EditorWindow.__extra_help_callback.<locals>.display_extra_helpr   )r   rf  rg  r   )r   r   Z__extra_help_callback_  s    z"EditorWindow.__extra_help_callbackc                s  g }t jj| jr8t| jdddd}|j }W d Q R X |rjt jj|d }||kr^|j| |jd| g  x4|D ],}d|kst jj|dd  rt j	| qtW  fd	d
|D }d}|dt
| }y,t| jdddd}|j| W d Q R X W n\ tk
rR } z>t| jddsBd| j_tjdd| jt| | jd W Y d d }~X nX xt| jjD ]h}|j}	|	jdt xNt|D ]B\}
}|j }| j|}|j|}|	j||
 d | |dd q~W q^W d S )Nrutf_8r   )r%   errorsrN  r    rE   c                s   g | ]}| kr|qS r   r   ).0rT   )	bad_pathsr   r   
<listcomp>  s    z9EditorWindow.update_recent_files_list.<locals>.<listcomp>Z1234567890ABCDEFGHIJKwrecentfilelist_error_displayedFTzIDLE Warningz|Cannot update File menu Recent Files list. Your operating system says:
%s
Select OK and IDLE will continue without updating.)r!  r"  r   r   )r   rF   r   rQ   )rS   rT   r   rd   r&  	readlinesabspathremover   appendr   
writelinesr$  r  r]   rp  r   showwarningr   r   r>   r`   rc   r   r  r   	enumeraterstrip#_EditorWindow__recent_file_callbackr  )r   new_fileZrf_listZrf_list_filerT   ZulcharsZrf_fileerrinstancer6   i	file_nameZ
ufile_namecallbackr   )rm  r   r   n  sL    



z%EditorWindow.update_recent_files_listc                s   |f fdd	}|S )Nc                s    j j| d d S )N)ZeditFile)r   r&  )Z
fn_closure)r   r   r   open_recent_file  s    z=EditorWindow.__recent_file_callback.<locals>.open_recent_filer   )r   r~  r  r   )r   r   Z__recent_file_callback  s    z#EditorWindow.__recent_file_callbackc             C   s   | j  }| j }|r*|r*|d | t }n|r4|}n|r>|}nd}|pL|pL|}| j sfd| }d| }| jj| | jj| d S )Nz - Untitledz*%s*z*%s)short_title
long_title_py_version	get_savedr`   Zwm_titleZwm_iconname)r   ZshortZlongr!  Ziconr   r   r   r     s    zEditorWindow.saved_change_hookc             C   s
   | j j S )N)r   r  )r   r   r   r   r    s    zEditorWindow.get_savedc             C   s   | j j| d S )N)r   	set_saved)r   flagr   r   r   r    s    zEditorWindow.set_savedc             C   s   | j j  d S )N)r   
reset_undo)r   r   r   r   r    s    zEditorWindow.reset_undoc             C   s(   | j j}|rtjj|}nd}| j|S )Nr  )r   r   rS   rT   r   r   )r   r   r   r   r   r    s
    zEditorWindow.short_titlec             C   s   | j | jjpdS )Nr7   )r   r   r   )r   r   r   r   r    s    zEditorWindow.long_titlec             C   s   | j   dS )NrB   )r?  )r   rC   r   r   r   rs     s    z EditorWindow.center_insert_eventr   c             C   sH   | j }| j \}}| j|}|| }td||d  }|jt| d S )NrE   r5   )r>   getwindowlinesr  maxr  r  )r   markr>   r`   botr1  r@   Znewtopr   r   r   r?    s    
zEditorWindow.centerc             C   sN   | j }| jd}| jd}||krF|j dkrFt|d }|| d }||fS )Nz@0,0z@0,65535rE   r@   )r>   r  Zwinfo_heightr<   )r   r>   r`   r  r@   r   r   r   r    s    

zEditorWindow.getwindowlinesc             C   s   | j }tt|j|S )N)r>   r<   r  r   )r   r  r>   r   r   r   r    s    zEditorWindow.getlinenoc             C   s(   | j j }tjd|}ttt|j S )Nz(\d+)x(\d+)\+(-?\d+)\+(-?\d+))r`   Zwm_geometryr   matchlistmapr<   groups)r   Zgeommr   r   r   get_geometry  s    
zEditorWindow.get_geometryc             C   s   | j   dS )NrB   )rk   )r   rC   r   r   r   rm     s    zEditorWindow.close_eventc             C   sH   | j rD| j s:| jj dkr&| jj  | jj  | jj  | j j S d S )Nr  )r   r  r`   r   Z	deiconifylowerZlift	maybesave)r   r   r   r   r    s    


zEditorWindow.maybesavec             C   s    | j  }t|dkr| j  |S )NZcancel)r  r   _close)r   Zreplyr   r   r   rk     s    zEditorWindow.closec             C   s   | j jr| j| j jd tj| j | j  | j j  d | _ d | _| j	rZ| j	jd d | _	d | _
d | _| jj  d | _| jj  | jr| j  d S )N)rz  F)r   r   r   r   Zunregister_callbackr   unload_extensionsrk   r   r   r>   rb   r   r`   ZdestroyrH  )r   r   r   r   r    s"    


zEditorWindow._closec             C   s   i | _ | j  d S )N)
extensionsload_standard_extensions)r   r   r   r   r     s    zEditorWindow.load_extensionsc             C   s4   x(t | jj D ]}t|dr|j  qW i | _d S )Nrk   )r  r  valueshasattrrk   )r   insr   r   r   r    s    
zEditorWindow.unload_extensionsc             C   sH   xB| j  D ]6}y| j| W q
   tdt| tj  Y q
X q
W d S )NzFailed to load extension)rW  load_extensionprintrepr	traceback	print_exc)r   r9   r   r   r   r    s    z%EditorWindow.load_standard_extensionsc             C   s   t jddS )NT)Zeditor_only)r   ZGetExtensions)r   r   r   r   rW  "  s    z)EditorWindow.get_standard_extension_namesZZzDummyZzzdummyc       	      C   sF  | j j||}y>ytjd| td}W n" ttfk
rH   tj|}Y nX W n  tk
rl   td|  Y nX t||}t	j
|}t|dr| j|j| || }|| j|< |rB| j| x|D ]|}|jdd}x |d d dkr|dd  }qW x"|dd  d	kr|d d }qW |d
 }t||r| jj|t|| qW d S )Nr   )packagez
Failed to import extension: r_  -rM  rE   r   r   Z_eventrQ   rQ   )extfilesr   	importlibimport_module__package__ImportError	TypeErrorr  r  r   rX  r  r   r_  r  rj   r   r>   rl   )	r   r9   ZfnamemodclsrY  r  ZveventZ
methodnamer   r   r   r  )  s4    







zEditorWindow.load_extensionc             C   sJ   |d kr| j j}| j}||_x(|j D ]\}}|r&|j|f|  q&W d S )N)r&   rU  r>   rY  rV  r   )r   rY  r>   rC   rZ  r   r   r   rj   E  s    zEditorWindow.apply_bindingsc          	   C   s   |d kr| j j}|d kr | j j}| j}| j}x|D ]\}}|j|}|sJq2x|D ]}|sb|j  qP|\}	}
|	d d dk}|r|	dd  }	t|	\}}	t||
}||
fdd}|r| j	|
t
}|j|	||||d qP|j|	|||d qPW q2W d S )NrE   !c             S   s   | j | d S )N)r  )r>   r  r   r   r   rF   g  s    z(EditorWindow.fill_menus.<locals>.command)r   r   rF   r^  variable)r   r   rF   r^  )r&   r_  rU  r   r>   r   r   r   r`  get_var_objZ
BooleanVarZadd_checkbuttonr  )r   r_  rY  r   r>   ZmnameZ	entrylistr6   rc  r   r  Zcheckbuttonr   r^  rF   varr   r   r   r   N  s8    




zEditorWindow.fill_menusc             C   s&   | j |}|r|j }|S t|d S )N)r  r   	NameError)r   r9   r  valuer   r   r   getvars  s
    
zEditorWindow.getvarc             C   s(   | j ||}|r|j| nt|d S )N)r  r   r  )r   r9   r  vartyper  r   r   r   setvar{  s    zEditorWindow.setvarc             C   s.   | j j|}| r*|r*|| j | j |< }|S )N)rb   r   r>   )r   r9   r  r  r   r   r   r    s    
zEditorWindow.get_var_objc             C   s,   | j r$| jjd|p"d| jj|kS dS d S )NZTODOSTRINGrE   )r   r>   tag_prevrangeZ	tag_names)r   Z
text_indexr   r   r   is_char_in_string  s    zEditorWindow.is_char_in_stringc             C   s:   y | j jd}| j jd}||fS  tk
r4   dS X d S )Nz	sel.firstzsel.last)NN)r>   r   r  )r   r   r   r   r   r   get_selection_indices  s    z"EditorWindow.get_selection_indicesc             C   s   | j d pt}t|S )Ntabs)r>   TK_TABWIDTH_DEFAULTr<   )r   Zcurrentr   r   r   get_tk_tabwidth  s    zEditorWindow.get_tk_tabwidthc             C   sB   | j }| j |kr>|jjdd|d d|jd| }|j|d d S )NrI   Zmeasurez
-displayofn)r  )r>   r  r  r  ZmasterZ	configure)r   Znewtabwidthr>   Zpixelsr   r   r   set_tk_tabwidth  s    
zEditorWindow.set_tk_tabwidthTc             C   sP   |r@|r@| j  }d|  ko"dkn  r.|| _| j| jkr@d| _| j| j d S )Nr5   r   F)guess_indentr   r   r   r  )r   r   Zguessr}  r   r   r   r     s    z#EditorWindow.set_indentation_paramsc       
      C   sB  | j }| j \}}|r6|r6|j|| |jd| dS |jdd}|dkrp|jdddrd|jd n|j  dS |d d	kr|jd dS | j}t|j	|}|d | j
 | j
 }d
}	xH|| jkrP |d d }|	d }	t|j	|}||kp|d d	krP qW |j  |jd|	 d ||k r6|jdd||   |j  dS )Nr   rB   zinsert linestartr7   r   z1.0z	insert-1crE   z 	r   z
insert-%dcr   rQ   rQ   rQ   )r>   r  r  r   r   r   r0  r   r   
expandtabsr   re   r   r   r   )
r   rC   r>   r   r   charsr   ZhaveZwantZncharsdeletedr   r   r   r     sB    


z"EditorWindow.smart_backspace_eventc       
   
   C   s   | j }| j \}}|j  z|rV|rVt|t|kr>| j|S |j|| |jd| |jdd}t|| j	\}}|t
|kr| j|| j  n>| jrd}n&t
|j| j	}| j}	d|	||	   }|jd| |jd dS |j  X d S )Nr   zinsert linestartr   r   rB   )r>   r  r   
index2liner   r  r   r   
classifywsr   r   reindent_tor   r   r  r   r   r   )
r   rC   r>   r   r   prefixraw	effectiveZpadr  r   r   r   r     s,    

zEditorWindow.smart_indent_eventc             C   s  | j }| j \}}|j  z|r>|r>|j|| |jd| |jdd}dt| }}x ||k rx|| dkrx|d }qZW ||kr|jdd dS |d | }d}x2|r|d dkr|| jkr|d d }|d }qW |r|jd| d x|jddkr|jd qW |jdd t	|j
d}	tj| j| j}
| jsxj| jD ]`}t|	| d}t|d	 }|j|d}|
j| |
j| j| j|}|d k	s|dkrDP qDW |
j|pd n@|jd
d}|r|d }nd}|j|d}|
j| |
jd |
j }|tjkr|tjkrnn|tjkr6|jd| nT|tjkrR| j|
j  n8|tjkr|
j  dkrz|jd| n| j|
j!  n dS |
j" }|jd| |
j# r| j$| n|r|
j% r| j&| dS |j'd |j(  X d S )Nr   zinsert linestartr   z 	rE   rN  rB   zinsert - %d charsz.0Zconsolez1.0rQ   rQ   ))r>   r  r   r  r   r   r   r   re   r  r   r   ZParserr   r   r   r   r  r  Zset_codeZfind_good_parse_start_build_char_in_string_funcZset_lor  Zget_continuation_typeZC_NONEZC_STRING_FIRST_LINEZC_STRING_NEXT_LINESZ	C_BRACKETr  Zcompute_bracket_indentZC_BACKSLASHZget_num_lines_in_stmtZcompute_backslash_indentZget_base_indent_stringZis_block_openerr   Zis_block_closerr   r   r   )r   rC   r>   r   r   r   r}  r  indentZlnor  contextZstartatZstartatindexZrawtextZbodrh  r   r   r   r   r     s    






z%EditorWindow.newline_and_indent_eventc             C   s   || j fdd}|S )Nc             S   s   ||d|   S )Nz+%dcr   )offsetZ_startindexZ_icisr   r   r   inner}  s    z6EditorWindow._build_char_in_string_func.<locals>.inner)r  )r   Z
startindexr  r   r   r   r  |  s    z'EditorWindow._build_char_in_string_funcc       
      C   sz   | j  \}}}}xTtt|D ]D}|| }|rt|| j\}}	|	| j }	| j|	||d   ||< qW | j|||| dS )NrB   )
get_regionr   r   r  r   r   _make_blanks
set_region)
r   rC   headtailr  r  rP  r   r  r  r   r   r   r     s    
z EditorWindow.indent_region_eventc       
      C   s   | j  \}}}}xZtt|D ]J}|| }|rt|| j\}}	t|	| j d}	| j|	||d   ||< qW | j|||| dS )Nr   rB   )	r  r   r   r  r   r  r   r  r  )
r   rC   r  r  r  r  rP  r   r  r  r   r   r   r     s    z EditorWindow.dedent_region_eventc             C   sR   | j  \}}}}x,tt|d D ]}|| }d| ||< q"W | j|||| dS )NrE   z##rB   )r  r   r   r  )r   rC   r  r  r  r  rP  r   r   r   r   r     s    z!EditorWindow.comment_region_eventc             C   s   | j  \}}}}xdtt|D ]T}|| }|s0q|d d dkrN|dd  }n|d d dkrj|dd  }|||< qW | j|||| dS )Nr5   z##rE   #rB   )r  r   r   r  )r   rC   r  r  r  r  rP  r   r   r   r   r     s    z#EditorWindow.uncomment_region_eventc             C   s   | j  \}}}}| j }|d kr$d S x\tt|D ]L}|| }|r2t||\}	}
t|
|\}}d| d|  ||	d   ||< q2W | j|||| dS )Nr   r   rB   )r  _asktabwidthr   r   r  divmodr  )r   rC   r  r  r  r  r   rP  r   r  r  ntabsnspacesr   r   r   r     s     $z EditorWindow.tabify_region_eventc             C   s`   | j  \}}}}| j }|d kr$d S x&tt|D ]}|| j|||< q2W | j|||| dS )NrB   )r  r  r   r   r  r  )r   rC   r  r  r  r  r   rP  r   r   r   r     s     z"EditorWindow.untabify_region_eventc             C   sF   | j ddd| j  d d| j  d d	 | jd
rB| j | _d| _dS )NzToggle tabsz
Turn tabs onoffz?
Indent width will be
remains atz 8.z!
 Note: a tab is always 8 columns)r   r   rB   )r  r  )r  r  )r   r   r>   r   )r   rC   r   r   r   r     s    

zEditorWindow.toggle_tabs_eventc             C   s:   | j dd| j| jddd}|r6|| jkr6| j r6|| _dS )NzIndent widthz6New indent width (2-16)
(Always use 8 when using tabs)r5      )r   initialvalueminvaluemaxvaluerB   )r   r>   r   r   )r   rC   r   r   r   r   r     s    z%EditorWindow.change_indentwidth_eventc             C   sn   | j }| j \}}|r8|r8|j|d }|j|d }n|jd}|jd}|j||}|jd}||||fS )Nz
 linestartz-1c lineend +1czinsert linestartzinsert lineend +1crN  )r>   r  r   r   r   )r   r>   r   r   r  r  r  r  r   r   r   r    s    


zEditorWindow.get_regionc             C   sx   | j }dj|}||kr$|j  d S |jddd |jd| |j  |j|| |j|| |j  |j	d|d d S )NrN  r   z1.0rP   r   )
r>   rU   r0  r   r   r   r  r   r   r   )r   r  r  r  r  r>   newcharsr   r   r   r    s    
zEditorWindow.set_regionc             C   s2   | j r&t|| j\}}d| d|  S d| S d S )Nr   r   )r   r  r   )r   r  r  r  r   r   r   r    s    zEditorWindow._make_blanksc             C   sJ   | j }|j  |jdddr(|jdd |r>|jd| j| |j  d S )Nzinsert linestartz!=r   )r>   r   r   r  r   r  r   )r   r   r>   r   r   r   r    s    zEditorWindow.reindent_toc             C   s   | j dd| j| jdddS )Nz	Tab widthzColumns per tab? (2-16)r5   r  )r   r  r  r  )r   r>   r   )r   r   r   r   r    s    zEditorWindow._asktabwidthc             C   sP   t | j| jj \}}|r@|r@t|| j\}}t|| j\}}nd }}|| S )Nr   )IndentSearcherr>   r   r   r  )r   openerZindentedr  ZindentsmallZindentlarger   r   r   r  $  s    zEditorWindow.guess_indent)NNNN)N)r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r  r  N)N)N)N)N)N)N)N)N)N)N)r   )r   )N)NN)N)N)T)r7  
__module____qualname__Zidlelib.percolatorr    Zidlelib.colorizerr!   r"   Zidlelib.undor#   Zidlelib.iomenur$   r%   r8  r&   Zidlelib.statusbarr'   Zidlelib.autocompleter(   Zidlelib.autoexpandr)   Zidlelib.calltipr*   Zidlelib.codecontextr+   Zidlelib.paragraphr,   Zidlelib.parenmatchr-   Zidlelib.rstripr.   Zidlelib.squeezerr/   Zidlelib.zoomheightr0   r   getfilesystemencodingr   rR   r   r   r   r   r   r   r   ri   r   r   ro   r  rn   r  r  r  r  r  rv   rw   rt   ru   rp   rq   rr   ry   rz   r   r   r   r{   r|   r~   r}   r   r   r4  rx   r   r   r   r@  r   rH  rI  r   rK  rL  r   stringZascii_lettersdigitsrO  rR  rS  r]  ra  r   r   rb  r   ry  r   r  r  r  r  r  rs   r?  r  r  r  rm   r  rk   r  r   r  r  rW  r  r  rj   r   r  r  r  r  r  r  r  r   r   r   r   r  r   r   r   r   r   r   r   r   r  r  r  r  r  r  r   r   r   r   r   -   s
  
  +



		$.	
		%	,#j	
	r   c             C   s   t t| S )N)r<   r  )r   r   r   r   r  .  s    r  c             C   s\   d }}xJ| D ]B}|dkr,|d }|d }q|dkrN|d }|| d | }qP qW ||fS )Nr   r   rE   r   r   )sr   r  r  Zchr   r   r   r  6  s    

r  c               @   s8   e Zd Zdd Zdd ZejejdfddZdd Z	dS )r  c             C   s(   || _ || _d | _| _d  | _| _d S )Nr   )r>   r   r}  finishedblkopenlineindentedline)r   r>   r   r   r   r   r   K  s    zIndentSearcher.__init__c             C   sL   | j r
dS | jd  }| _t|d }| jj|ddr:dS | jj||d S )Nr7   rE   z.0z>=rP   z lineend+1c)r  r}  r  r>   r   r   )r   r}  r  r   r   r   readlineQ  s    zIndentSearcher.readlineclassdefforiftrywhilec	       	      C   s>   | j rn2||kr ||kr || _n||kr:| jr:|| _d| _ d S )NrE   )r  r  r  )	r   r=   tokenstartrP   r   INDENTNAMEZOPENERSr   r   r   
tokeneaterZ  s    zIndentSearcher.tokeneaterc             C   sl   t j}| jt _zHy(t j| j}x|D ]}| j|  q$W W n t jtfk
rR   Y nX W d |t _X | j| j	fS )N)
tokenizetabsizer   generate_tokensr  r  
TokenErrorSyntaxErrorr  r  )r   Zsave_tabsizetokensr  r   r   r   r   f  s    

zIndentSearcher.runN)r  r  r  r  r  r  )
r7  r  r  r   r  r  r  r  r  r   r   r   r   r   r  D  s   
	r  c             C   s6   | j d}|dkr.| d | | |d d   } || fS )NrM  r   rE   )r/  )r  r}  r   r   r   r   x  s    
r   []/)ZbracketleftZbracketrightZslashc             C   s   | j |}| s tj r$|dkr$dS |d }tjddd |}tjd	d
d |}tjdd|}tjdd|}tjdd|}tjdd|}tjdd|}tjdd|}tjdd|}|S )N<<open-module>><<goto-line>><<change-indentwidth>>r7   r   z-[a-z]\bc             S   s   | j  j S )N)groupupper)r  r   r   r   rD     s    z!get_accelerator.<locals>.<lambda>z\b\w+\bc             S   s   t j| j | j S )N)keynamesr   r  )r  r   r   r   rD     s    zKey-ZCancelz
Ctrl-BreakzControl-zCtrl-r  +z><r   r   r   >   r  r   r  )r   r	   Z	isCocoaTkr   r   )rY  r  rZ  r  r   r   r   r`    s"    
  r`  c             C   s4   | j }|jddd |jddd |jddd d S )	NZtcl_wordBreakAfterza br   r   Ztcl_wordcharsz\wZtcl_nonwordcharsz\W)r  r  )r]   r  r   r   r   fixwordbreaks  s    r  c             C   s   | }t | tjdd  r&tjd }nd }tj|d  t||d}|j}d|d< x,tdD ] }|jdd| t	| d  qZW d S )	NrE   )r]   r   
   r@      r   z  rN  )
r  r   argvr	   ZsetupAppr   r>   r   r   r   )r   r]   r   r   r>   r}  r   r   r   _editor_window  s    r	  __main__)r:   zidlelib.idle_test.test_editorr5   F)	verbosityexit)r   )6Zimportlib.abcr  importlib.utilrS   rW   r  r  r  r%  ZtkinterZtkinter.ttkr   Ztkinter.simpledialogZsimpledialogr   Ztkinter.messageboxZ
messageboxr   Zidlelib.configr   r8  r   r   r   r   r	   Zidlelib.multicallr
   r   r   r   r   r   r  Zpython_versionr  r   r   r   objectr   r  r  r  r   r  r`  r  r	  r7  Zunittestr:   Zidlelib.idle_test.htestr   r   r   r   r   <module>   sn   


            4
	
