��Qc@s�ddlZddlZddlZddlZddlTddlZddlZddlZddlm Z ddl
mZddl
mZddl
m
Z
ddl
mZddl
mZdd l
mZdd
lmZddl
mZmZmZddl
mZd
Zd�Zed�Zdefd��YZe�Zdefd��YZd�Zd�Z ddl!Z!e!Z"[!defd��YZ#d�Z$idd6dd6dd6Z%d�Z&d �Z'd!�Z(e)d"kr�(�ndS(#i�N(t*(tMultiCallCreator(tidlever(t
WindowList(tSearchDialog(t
GrepDialog(t
ReplaceDialog(tPyParse(tidleConf(taboutDialogttextViewtconfigDialog(t
macosxSupporticCs�tj\}}}}}d||f}|rB|d|f7}n|dkrb|d|f7}n'|dkr�|d|d|f7}n|S(sYFormat sys.version_info to produce the Sphinx version string used to install the chm docss%s%ss%st candidatesrc%stfinali(tsystversion_info(tmajortminortmicrotleveltserialtrelease((s*/sys/lib/python2.7/idlelib/EditorWindow.pyt_sphinx_versionsc
CsSd}x�|jd�D]�}|dk r5|j�ntj||�\}}}|dtjkrgPntj||||�}y
|j}Wqtk
r�t d|j
�qXqW|dtjkrFt|�}y
|j}Wntk
r�qFXd}t
jj|�\}} | dkr'd} n|| }|dtjf}n|||fS(sCVersion of imp.find_module() that handles hierarchical module namest.isNo source for module s.pycs.pyN(tNonetsplittclosetimptfind_modulet PY_SOURCEtload_modulet__path__tAttributeErrortImportErrort__name__t
__import__t__file__tostpathtsplitext(
tfullnameR'tfilettgttfilenametdescrtmoduletmtbasetext((s*/sys/lib/python2.7/idlelib/EditorWindow.pyt_find_module$s2
t
HelpDialogcBs;eZd�Zdd�Zd�Zd�Zdd�ZRS(cCsd|_d|_dS(N(Rtparenttdlg(tself((s*/sys/lib/python2.7/idlelib/EditorWindow.pyt__init__Gs cCs9|jdkr|j|�n|r5|j|�ndS(s� Display the help dialog.
parent - parent widget for the help window
near - a Toplevel widget (e.g. EditorWindow or PyShell)
to use as a reference for placing the help window
N(R5Rtshow_dialogt
nearwindow(R6R4tnear((s*/sys/lib/python2.7/idlelib/EditorWindow.pytdisplayKscCsr||_tjjtjjtjjt��d�}tj|d|dt �|_
}|jd|jd�dS(Nshelp.txttHelptmodals <Destroy>t+(
R4R&R'tjointabspathtdirnameR%R
t view_filetFalseR5tbindtdestroy(R6R4tfnR5((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR8Xs -"cCs\|j}|j�d|j�df}|j�|jd|�|j�|j�dS(Ni
s=+%d+%d(R5twinfo_rootxtwinfo_rootytwithdrawtgeometryt deiconifytlift(R6R:R5tgeom((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR9^s
cCsd|_d|_dS(N(RR5R4(R6tev((s*/sys/lib/python2.7/idlelib/EditorWindow.pyREis N(R#t
__module__R7RR;R8R9RE(((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR3Es
tEditorWindowcBs�eZddlmZddlmZddlmZddlm Z m
Z
mZddlm
Z
ddlmZddlmZd~Zd~d~d~d~d�Zd �Zd
�Zd�Zd�Zd~d
�Zdd�d�d�d�d�d�gZej�red=d�ed<nd�Zd �Zd~Zd!�Z d�gZ!d$�Z"d%�Z#d&�Z$d'�Z%d~d(�Z&d~d)�Z'd~d*�Z(d~d+�Z)d,�Z*d-�Z+d.�Z,d~d/�Z-d~d0�Z.d1�Z/d2�Z0d3�Z1d4�Z2d5�Z3d6�Z4d7�Z5d8�Z6d9�Z7d~d:�Z8d~d;�Z9d~d<�Z:d=�Z;d>�Z<d?�Z=d@�Z>dA�Z?dB�Z@dC�ZAdD�ZBdE�ZCdF�ZDdG�ZEdH�ZFdI�ZGdJ�ZHd~dK�ZIdL�ZJdM�ZKdN�ZLdO�ZMdP�ZNdQ�ZOdR�ZPdS�ZQdTdU�ZRdV�ZSdTdW�ZTdX�ZUdY�ZVdZ�ZWd[�ZXd\�ZYd]�ZZd^�Z[d_�Z\d`�Z]da�Z^d~db�Z_d~d~dc�Z`dd�Zad~de�Zbd~df�Zcdg�Zddh�Zedi�Zfdj�Zgehdk�Zidl�Zjdm�Zkdn�Zldo�Zmdp�Zndq�Zodr�Zpds�Zqdt�Zrdu�Zsdv�Ztdw�Zudx�Zvdy�Zwdz�Zxd{�Zyd|�Zzd}�Z{RS(�i�(t
Percolator(tColorDelegator(t
UndoDelegator(t IOBindingtfilesystemencodingtencoding(tBindings(tToplevel(tMultiStatusBarc
Cs�tjdkrstjjtjdd�}tjj d�r�ddtj
d }tjjd�rld}q
d }tjj||dd�}nztjd d
kr�jjtjddt��}tjj
|�r
|}q
n'tj�r
tjjtjd�}ntjj|�}tjj
|�r\|t_tjd
krpdtjt_qpqsdtj
d t_ntj�} ||_|p�|j}||_ytjWntk
r�dt_nXt|�|_tj|d|j�|_}
|r|j|_|j|j_ni|_i|j_tjjtj �d�|_!t"|
�|_#}t$|dd�|_%}tj&ddddd�|_'idd6dd6dd6|j'd6tj&ddd dd�d 6}
t(d!kr�|
d#<nt)t*�||
�|_+}|j+|j_,|j-�|j.�|jj/d$|j0�|jj1d%|j2�tj�r�|j1d%|j2�|j1d&|j3�n|j1d'|j3�|j1d(|j4�|j1d)|j5�|j1d*|j6�|j1d+|j7�|j1d,|j8�|j1d-|j9�|j1d.|j:�|j1d/|j;�|j1d0|j<�|j1d1d2��|j1d3|j=�|j1d4|j>�|j1d5|j?�|j1d6|j@�|j1d7|jA�|j1d8|jB�|j1d9|jC�|j1d:|jD�|j1d;|jE�|j1d<|jF�|j1d=|jG�|j1d>|jH�|j1d?|jI�|j1d@|jJ�|j1dA|jK�|j1dB|jL�|j1dC|jM�|j1dD|jN�|j1dE|jO�|j1dF|jPdG��|j1dH|jPdI��|j1dJ|jQ�|j1dK|jR�|j1dL|jS�|r�||j|<|r_||jT|<n|j1dM|jU�|j1dN|jjV�|j1dO|jW�|j1dP|jX�n|jY�|jZ|dQ<|j[dRt\dSt]�|j^|dT<dU}tj&dddVddW�rdX}n|j_dYtj&dddY�tj&dddZdd�|f�|j[dRt`dStad[dI�|j[dRtbdStad[dI�|jc�tj&dd\d]ddW�}||_dd^|_e|je|_f|jg�th|_idi|_j|jk|�|_l}|jm�|_n}|jo|�|jp|_p|jq|_q|jr|js�|jt|�|_u}|jv|jw�t|j�|_x|jydbjzddcdddedGd|jx�|j{�d|_||r tjj}|�r�jj|�r�j~|�q |j|�n|j��|js�|j�|j�|��|j��|jyj�df�}|r�|j�dg�}|dkrw dh}n|dGkr�|j��|dI}n||_�tj�|j��nt�j�|_�t�j�|_�t�j�|_�dS(jNtDocs
index.htmltlinuxspython-docs-s%s.%s.%sis/var/www/html/python/s/var/www/html/python/index.htmls/usr/share/doc/twinsPython%s.chms0Resources/English.lproj/Documentation/index.htmltdarwinsfile://shttp://docs.python.org/%d.%dis>>> tmenusrecent-files.lsttnametvbartmainRPtwidthttypetintttextitpadxtnonetwraptheightg!@t
wordprocessorttabstyletWM_DELETE_WINDOWs<<close-window>>s<Control-Button-1>s<3>s<<cut>>s<<copy>>s <<paste>>s<<center-insert>>s<<help>>s<<python-docs>>s<<about-idle>>s<<open-config-dialog>>s<<open-module>>s<<do-nothing>>cSsdS(Ntbreak((tevent((s*/sys/lib/python2.7/idlelib/EditorWindow.pyt<lambda>�ss<<select-all>>s<<remove-selection>>s<<find>>s<<find-again>>s<<find-in-files>>s<<find-selection>>s<<replace>>s
<<goto-line>>s<<smart-backspace>>s<<newline-and-indent>>s<<smart-indent>>s<<indent-region>>s<<dedent-region>>s<<comment-region>>s<<uncomment-region>>s<<tabify-region>>s<<untabify-region>>s<<toggle-tabs>>s<<change-indentwidth>>s<Left>is<Right>is<<del-word-left>>s<<del-word-right>>s<<beginning-of-line>>s<<open-new-window>>s<<close-all-windows>>s<<open-class-browser>>s<<open-path-browser>>tcommandtsidetfilltyscrollcommandtnormals font-boldtbooltboldtfonts font-sizetexpandtIndents
use-spacesii2i�i@KLR*tlabelsRecent Filest underlinetwindowstendi�(i2i�i@KL(�RPthelp_urlRR&R'R?RtprefixtplatformtcountRtisdirRtisfileRtrunningAsOSXApptnormpathRtCurrentThemetflisttroottps1R!tMenutmenubarRtListedToplevelttoptvarsttkinter_varstinversedictt
instance_dictt
GetUserCfgDirtrecent_files_pathtFramet
text_framet ScrollbarR`t GetOptionRbt TkVersionRtTextRetfocused_widgett
createmenubartapply_bindingstprotocolRRDtclose_eventtright_menu_eventtcuttcopytpastetcenter_insert_eventthelp_dialogtpython_docstabout_dialogt
config_dialogtopen_modulet
select_alltremove_selectiont
find_eventtfind_again_eventtfind_in_files_eventtfind_selection_eventt
replace_eventtgoto_line_eventtsmart_backspace_eventtnewline_and_indent_eventtsmart_indent_eventtindent_region_eventtdedent_region_eventtcomment_region_eventtuncomment_region_eventttabify_region_eventtuntabify_region_eventttoggle_tabs_eventtchange_indentwidth_eventtmove_at_edge_if_selectiont
del_word_lefttdel_word_rightt
home_callbacktdicttnew_callbacktclose_all_callbacktopen_class_browsertopen_path_browsertset_status_bartyviewtpacktRIGHTtYtsettconfigtLEFTtBOTHtTOPt focus_settusetabsttabwidthtindentwidthtset_notabs_indentwidthRCtcontext_use_ps1tnum_context_linesRQtperRStundotinsertfiltertundo_block_starttundo_block_stoptset_saved_change_hooktsaved_change_hookRTtiotset_filename_change_hooktfilename_change_hooktrecent_files_menutmenudicttinsert_cascadetupdate_recent_files_listtcolortexiststloadfiletset_filenametResetColorizertset_indentation_paramstispythonsourcetload_extensionstgettindext
add_separatort wmenu_endtregister_callbacktpostwindowsmenuttkMessageBoxtaskyesnottkSimpleDialogt
askintegert showerror(R6R�R,tkeyR�tdochometpyvertbasepathtchmfiletcurrentThemeR�R�R`ttext_optionsRet
fontWeightt usespacesR�R�R�R^R}((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR7{s>
%
cCsxt|t�s|r|Sy|j|j�SWnCtk
rsy|j|j�SWqttk
ro|jd�SXnXdS(s8convert filename to unicode in order to display it in Tks iso8859-1N(t
isinstancetunicodetdecodeRUtUnicodeDecodeErrorRV(R6R,((s*/sys/lib/python2.7/idlelib/EditorWindow.pyt_filename_to_unicode]s
cCs)|jj�\}}|jj|�dS(NRm(R�tdefaultfilenameR�tnew(R6RnRAtbasename((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�lscCs||jd@dkr&|jdkr&dS|jjd�r�|jjddd�r�|jjddd�r�t|jjd�jd�d �}nR|jjdd�}x:tt |��D]}||dkr�Pq�q�Wt |�}t|jjd�jd�d �}||krd}nd
t
|�d}|jd @dkr\|jjddd�n�jjd�s�|jjdd�nY|jj|jjd�d|jjd��r�|jjdd�n|jjdd�|jj|�}|jjd�}|jj|d|�r)||}}n|jjddd�|jj
d||�|jjd|�|jjd�dS(NiitHometiomarks<=sinsert lineendsinsert linestartRit s tinsertsinsert linestart+tctsels1.0R}s sel.firstt my_anchort<ssel.lastt>Rm(R
s (tstatetkeysymReR�tcompareRdRR�txrangetlentstrt
tag_removetmark_setttag_addtsee(R6Rntinsertpttlinetlineattdesttfirsttlast((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�qs>"(% 0cCs�|j|j�|_tj�r=|jjdddt�n|jjdddt�|jjdddt�|jjdtdt �|j
jd |j�|j
j
d d
d�|j
j|j�dS(Nt _padding1s RqtcolumnsCol: ?RsLn: ?Rrs<<set-line-and-column>>s<KeyRelease>s<ButtonRelease>(RYR�t
status_barRR�t set_labelR�R�tBOTTOMtXReRDtset_line_and_columnt event_addt
after_idle(R6((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s
cCsS|jjt�jd�\}}|jjdd|�|jjdd|�dS(NRR"sCol: %sRsLn: %s(ReR�tINSERTRR#R$(R6RnRR"((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR'�s!R*t_Fileteditt_EdittformattF_ormattrunt_Runtoptionst_OptionsR|t_Windowsthelpt_Helpi�t_Windowi�cCs�|j}i|_}x_|jD]T\}}t|�\}}t|d|�||<}|jd|d|d|�q Wtj|j�r�t|dd�|d<}|jddd|�n|j �|jdj
t�|_|j
�dS( NR_RzR^R{tappletapplicationtIDLER5(R�R�t
menu_specstprepstrR�tadd_cascadeRtisCarbonAquaTkR�t
fill_menusR�tENDtbase_helpmenu_lengthtreset_help_menu_entries(R6tmbarR�R_RzR{R^((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s
cCsk|jd}|jd�}|dkr1d}n||jkrZ|j|jd|�ntj|�dS(NR|R}i�i(R�R�RR�tdeleteRtadd_windows_to_menu(R6R^R}((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s
c Cs%|jjdd|j|jf�|js9|j�n|j}||_tjd dk}|rz|jj dd�nxr|j
D]g}y|\}}}Wntk
r�q�nX|dkr�q�nt
||��}|j|d|�q�W|j|j|j�|r!|jj dd�ndS( NRs@%d,%diR\tcursortarrowRtibeam(ReRtxtytrmenut
make_rmenuRnRR�R�trmenu_specst
ValueErrorRtgetattrtentryconfigurettk_popuptx_rootty_root( R6RnRKtiswintitemRzt eventnametverify_stateR((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s(#
tCloses<<close-window>>cCs�t|jdd�}xg|jD]\}|d|d}}|dk rq|j|d�}|jd|d|�q|j�qW||_dS(NttearoffiicSs|j|�dS(N(tevent_generate(ReRV((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRp�sRzRp(R�ReRMRtadd_commandR�RK(R6RKRURzRVRp((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRL�scCs
|j�S(N(trmenu_check_copy(R6((s*/sys/lib/python2.7/idlelib/EditorWindow.pytrmenu_check_cutscCs=y|jjd�}Wntk
r*dSX|r5dSdSdS(Ns sel.firsttdisabledRt(ReR�tTclError(R6tindx((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR\s
cCs=y |jjjd|jd�Wntk
r4dSXdSdS(Nstk::GetSelectiont CLIPBOARDR^Rt(RettktcallR_(R6((s*/sys/lib/python2.7/idlelib/EditorWindow.pytrmenu_check_pastes
cCstj|jd�dS(Ns
About IDLE(R tAboutDialogR�(R6Rn((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�scCstj|jd�dS(NtSettings(RtConfigDialogR�(R6Rn((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�scCs8|jr|j}n |j}tj|d|j�dS(NR:(R�R�t
helpDialogR;(R6RnR4((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�s cCsytjd dkreytj|j�Wqutk
ra}tjdddt|�d|j �quXnt
j|j�dS(NiR\ttitlesDocument Start FailuretmessageR4Rm(RR�R&t startfileR~tWindowsErrorR�R�RRet
webbrowsertopen(R6Rntwhy((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�#scCs|jjd�dS(Ns<<Cut>>Rm(ReRZ(R6Rn((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�.scCs*|jjd�sdS|jjd�dS(NR
s<<Copy>>Rm(Ret
tag_rangesRZ(R6Rn((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�2scCs$|jjd�|jjd�dS(Ns <<Paste>>RRm(ReRZR(R6Rn((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�9scCs=|jjddd�|jjdd�|jjd�dS(NR
s1.0send-1cRRm(ReRRR(R6Rn((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�>scCs*|jjddd�|jjd�dS(NR
s1.0R}R(ReRR(R6Rn((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�Dscs:|jj�|jj�d�����fd�}|S(s�Cursor move begins at start or end of selection
When a left/right cursor key is pressed create and return to Tkinter a
function which causes a cursor move from the associated edge of the
selection.
ssel.first+1cssel.last-1ccsM|jd@dkrIy�d��d���WqItk
rEqIXndS(Niis sel.firstR(RR_(Rn(t
edge_indextedges_tabletself_text_indextself_text_mark_set(s*/sys/lib/python2.7/idlelib/EditorWindow.pytmove_at_edgeSs
(ssel.first+1cssel.last-1c(ReR�R(R6RqRu((RqRrRsRts*/sys/lib/python2.7/idlelib/EditorWindow.pyR�Hs
cCs|jjd�dS(Ns
<Meta-Delete>Rm(ReRZ(R6Rn((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�\scCs|jjd�dS(Ns<Meta-d>Rm(ReRZ(R6Rn((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�`scCstj|j�dS(NRm(RtfindRe(R6Rn((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�dscCstj|j�dS(NRm(Rt
find_againRe(R6Rn((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�hscCstj|j�dS(NRm(Rtfind_selectionRe(R6Rn((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�lscCs tj|j|j|j�dS(NRm(RtgrepReR�R�(R6Rn((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�pscCstj|j�dS(NRm(RtreplaceRe(R6Rn((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�tscCsp|j}tjddd|�}|dkr1dS|dkrK|j�dS|jdd|�|jd�dS(NtGotosGo to line number:R4RmiRs%d.0(ReR�R�RtbellRR(R6RnRetlineno((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�xs
c CsPy|jjdd�}Wntk
r2d}n
X|j�}tjddd|jd|�}|ru|j�}n|sdSy"t|�\}}\}}}Wn9ttfk
r�}t j
dt|�d|j�dSX|tj
kr
t j
d d
|d|j�dS|r |j�n|jr<|jj|�n|jj|�dS(Ns sel.firstssel.lastttModulesAEnter the name of a Python module
to search on sys.path and open:R4tinitialvaluesImport errorsUnsupported types%s is not a source module(ReR�R_tstripR�t askstringR2t NameErrorR"R�R�RRRRR�RnR�R�( R6RnR_tfR*tsuffixtmodeRctmsg((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s4
"
cCs�|jj}|s<tjddd|j�|jj�dStjj |�\}}tjj
|�\}}ddlm}|j|j
||g�dS(NsNo filenames&This buffer has no associated filenametmasteri�(tClassBrowser(R�R,R�R�ReR�RR&R'RR(tidlelibR�R�(R6RnR,theadttailR0R1R�((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s
cCs$ddlm}|j|j�dS(Ni�(tPathBrowser(R�R�R�(R6RnR�((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��scCsl|dk rh|dkrh|jjdd|�|jjddd�|jjddd�|j�ndS(NiRs%d.0R
s1.0R}s
insert +1l(RReRRRtcenter(R6R}((s*/sys/lib/python2.7/idlelib/EditorWindow.pytgotoline�s
cCs�|stjj|�rtStjjtjj|��\}}tjj|�dkr]tSy&t|�}|j�}|j �Wnt
k
r�tSX|jd�o�|j
d�dkS(Ns.pys.pyws#!tpythoni(s.pys.pyw(R&R'R�tTrueR(RtnormcaseRntreadlineRtIOErrorRCt
startswithRv(R6R,R0R1R�R((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s$
cCs)|jr%|jj|�d|_ndS(N(R�tunregister_maybe_terminateR(R6((s*/sys/lib/python2.7/idlelib/EditorWindow.pyt
close_hook�s cCs
||_dS(N(R�(R6R�((s*/sys/lib/python2.7/idlelib/EditorWindow.pytset_close_hook�scCsD|jr|jj|�n|j�|jj|�|j�dS(N(R�tfilename_changed_editR�R�tupdate_windowlist_registryR�(R6((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s
cCs}|jr
dS|j|jj�r4|j�|_n|jry|jj|j�|jj|j�|jj|j�ndS(N( R�R�R�R,RRR�tremovefilterR�R�(R6((s*/sys/lib/python2.7/idlelib/EditorWindow.pyt
_addcolorizer�s cCs:|js
dS|jj�|jj|j�d|_dS(N(R�tremovecolorsR�R�R(R6((s*/sys/lib/python2.7/idlelib/EditorWindow.pyt_rmcolorizer�s
cCs�|j�|j�tjddd�}tj|d�}tj|ddd�}tj|d�}|jjd |d d
|d
d|d|d d
|d
�dS(sUpdate the colour themeRatThemeR_RtRFtfgBgtfgthilitet
foregroundt
backgroundtinsertbackgroundtselectforegroundtselectbackgroundN(R�R�RR�tGetHighlightReR�(R6tthemet
normal_colorstcursor_colort
select_colors((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s
c Csnd}tjddddd�r*d}n|jjdtjddd�tjddd dd
�|f�dS(s.Update the text widgets' font if it is changedRtRaRPs font-boldRcRuRvRws font-sizeRdN(RR�ReR�(R6R�((s*/sys/lib/python2.7/idlelib/EditorWindow.pyt ResetFont�s cCs�tj�|j_}x-|j�D]\}}|jj||�q#Wx\|j�D]N}tj|�}|rSx0|j�D]\}}|jj||�q{WqSqSWdS(s/Remove the keybindings before they are changed.N( RtGetCurrentKeySetRWtdefault_keydefstitemsRetevent_deletetget_standard_extension_namestGetExtensionBindings(R6tkeydefsRntkeylistt
extensionNametxkeydefs((s*/sys/lib/python2.7/idlelib/EditorWindow.pytRemoveKeybindings sc
Cs�tj�|j_}|j�x9|j�D]+}tj|�}|r-|j|�q-q-Wi}xd|jjD]V}i||d<x?|dD]3}|r�|d||dt|d�d<q�q�WqoWx�j j
�D]�|j |}|jt�d}x�t
d|�D]�} |j| �dkr|j| d�}
|
r�|j| d�}d}||kr�|||kr�|||}q�n|r�t||�}
|j| d|
�q�q�qqWq�WdS(s-Update the keybindings after they are changediiRptacceleratorRzR~N(RR�RWR�R�R�R�tmenudefsR<R�tkeysR�R@trangeRct entrycgettget_acceleratortentryconfig(
R6R�R�R�t
menuEventDictR^RUtmenubarItemR}R�tacceltitemNameRn((s*/sys/lib/python2.7/idlelib/EditorWindow.pytApplyKeybindingss6
/
cCs.|js*tjddddd�|_ndS(sCUpdate the indentwidth if changed and not using tabs in this windowRaRys
num-spacesRcRdN(R�RR�R�(R6((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�5s cCs�tj�}|jd}|jt�}||jkrQ|j|jd|�n|r�|j�x>|D]3}|j|d�}|j d|dd|�qhWn||jd<dS(s3Update the additional help entries on the Help menuR5iRziRpN(
RtGetAllExtraHelpSourcesListR�R�R@RARDR�t"_EditorWindow__extra_help_callbackR[(R6t help_listthelpmenuthelpmenu_lengthtentrytcmd((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRB<s
!cs|�fd�}|S(sCCreate a callback with the helpfile value frozen at definition timecs�|jd �s$tjj|�}ntjd dkr�ytj|�Wq�tk
r�}tj dddt
|�d�j�q�Xn
tj
|�dS(
NtwwwthttpiR\RisDocument Start FailureRjR4(R�R�(R�R&R'R�RR�RkRlR�R�RReRmRn(thelpfileRo(R6(s*/sys/lib/python2.7/idlelib/EditorWindow.pytdisplay_extra_helpOs((R6R�R�((R6s*/sys/lib/python2.7/idlelib/EditorWindow.pyt__extra_help_callbackMsc
Cs\g}tjj|j�rNt|jd�}z|j�}Wd|j�Xn|r�tjj|�d}||kr�|j|�n|j d|�ng}xD|D]<}d|ks�tjj|dd!�r�|j
|�q�q�Wg|D]}||kr�^q�d}|dt|�!}y,t|jd��}|j|�WdQXWn`t
k
r�}t|jd t�s�t|j_tjd
ddd
t|�d|j�q�nXx�|jjj�D]�} | j}
|
jdt�xlt|�D]^\}}|j�}|j|�}
| j |�}|
j!d||d|
d|dd�q��WdS(s/Load and update the recent files list and menustrNs
iti�t1234567890ABCDEFGHIJKtwtrecentfilelist_error_displayedRis
IDLE ErrorRjs&Unable to update Recent Files list:
%sR4RzR
RpR{("R&R'R�R�Rnt readlinesRR@tremoveRtappendRt
writelinesR�ROR�RCR�R�R�R�RReR�R�R�R�RDR@t enumeratetrstripRt#_EditorWindow__recent_file_callbackR[(R6tnew_filetrf_listtrf_list_filet bad_pathsR'tulcharstrf_fileterrtinstanceR^tit file_namet
ufile_nametcallback((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�\sL
&%
cs|�fd�}|S(Ncs�jjd|�dS(NteditFile(R�Rn(t
fn_closure(R6(s*/sys/lib/python2.7/idlelib/EditorWindow.pytopen_recent_file�s((R6R�R�((R6s*/sys/lib/python2.7/idlelib/EditorWindow.pyt__recent_file_callback�scCs�|j�}|j�}|r5|r5|d|}n$|rD|}n|rS|}nd}|ph|ph|}|j�s�d|}d|}n|jj|�|jj|�dS(Ns - tUntitleds*%s*s*%s(tshort_titlet
long_titlet get_savedR�twm_titletwm_iconname(R6tshorttlongRiticon((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s
cCs
|jj�S(N(R�R�(R6((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��scCs|jj|�dS(N(R�t set_saved(R6tflag((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��scCs|jj�dS(N(R�t
reset_undo(R6((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��scCs4|jj}|r'tjj|�}n|j|�S(N(R�R,R&R'RR(R6R,((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��scCs|j|jjpd�S(NR~(RR�R,(R6((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��scCs|j�dS(N(R�(R6Rn((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��sRcCsb|j}|j�\}}|j|�}||}td||d�}|jt|��dS(Nii(Retgetwindowlinest getlinenotmaxR�tfloat(R6tmarkReR�tbotR}Ritnewtop((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s
cCsp|j}|jd�}|jd�}||krf|j�dkrft|d�}||d}n||fS(Ns@0,0s@0,65535iRi(ReR�twinfo_heightRd(R6ReR�R�Ri((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s cCs"|j}tt|j|���S(N(ReRdR�R�(R6R�Re((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s cCs:|jj�}tjd|�}tt|j��}|S(sReturn (width, height, x, y)s(\d+)x(\d+)\+(-?\d+)\+(-?\d+)(R�twm_geometrytretmatchtmapRdtgroups(R6RMR/ttuple((s*/sys/lib/python2.7/idlelib/EditorWindow.pytget_geometry�scCs|j�dS(N(R(R6Rn((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��scCsh|jrd|j�sW|jj�dkr:|jj�n|jj�|jj�n|jj�SdS(NRt(R�R�R�RRKtlowerRLt maybesave(R6((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR �s
cCs/|j�}t|�dkr+|j�n|S(Ntcancel(R Rt_close(R6treply((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�s
cCs�|jjr%|jd|jj�ntj|j�|j�|jj�d|_d|_ |j
r�|j
jt�d|_
nd|_d|_
|jj�d|_|jj�|jr�|j�ndS(NR�(R�R,R�Rtunregister_callbackR�tunload_extensionsRRR�R�RCReR�R�R�RER�(R6((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�s"
cCsi|_|j�dS(N(t
extensionstload_standard_extensions(R6((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s cCsCx3|jj�D]"}t|d�r|j�qqWi|_dS(NR(RtvaluesthasattrR(R6tins((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�scCs[xT|j�D]F}y|j|�Wq
dGt|�GHddl}|j�q
Xq
WdS(NsFailed to load extensioni�(R�tload_extensiontreprt tracebackt print_exc(R6R_R((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRscCstjdt�S(Nteditor_only(Rt
GetExtensionsR�(R6((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�
scCsVyt|t�t�g�}Wntk
r<dG|GHdSXt||�}tj|�}t|d�r�|j|j |�n||�}||j
|<|rR|j|�x�|j�D]�}|j
dd�}x|d dkr�d}q�Wx|ddkr|d }q�d }t||�r�|jj|t||��q�q�WndS(
Ns
Failed to import extension: R�t-t_iRi�Rt_event(R$tglobalstlocalsR"RORR�RR?R�RR�R�RzReRD(R6R_tmodtclsR�Rtveventt
methodname((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRs,
cCsg|dkr|jj}n|j}||_x3|j�D]%\}}|r:|j||�q:q:WdS(N(RRWR�ReR�R�R((R6R�ReRnR�((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�(s c
Csf|d kr|jj}n|d kr6|jj}n|j}|j}x|D]\}}|j|�}|svqOnx�D]�}|s�|j�q}|\} }
| d dk}|r�| d} nt| �\}} t ||
�}
||
d�}|r8|j
|
t�}|jd| d|d|d|
d|�q}|j
d| d|d|d|
�q}WqOWd S(
sAdd appropriate entries to the menus and submenus
Menus that are absent or None in self.menudict are ignored.
it!cSs|j|�dS(N(RZ(ReRV((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRpJsRzR{RpR�tvariableN(RRWR�R�R�ReR�R�R<R�tget_var_objt
BooleanVartadd_checkbuttonR[(R6R�R�R�Retmnamet entrylistR^R�RzRVtcheckbuttonR{R�Rptvar((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR?1s8
cCs2|j|�}|r%|j�}|St|�dS(N(R%R�R�(R6R_R+tvalue((s*/sys/lib/python2.7/idlelib/EditorWindow.pytgetvarVs
cCs5|j||�}|r(|j|�n t|�dS(N(R%R�R�(R6R_R,tvartypeR+((s*/sys/lib/python2.7/idlelib/EditorWindow.pytsetvar^scCs@|jj|�}|r<|r<||j�|j|<}n|S(N(R�R�Re(R6R_R.R+((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR%es
cCs<|jr4|jjd|�p3d|jj|�kSdSdS(NtTODOtSTRINGi(R�Ret
tag_prevranget tag_names(R6t
text_index((s*/sys/lib/python2.7/idlelib/EditorWindow.pytis_char_in_stringus cCsKy2|jjd�}|jjd�}||fSWntk
rFdSXdS(Ns sel.firstssel.last(NN(ReR�R_R(R6RR ((s*/sys/lib/python2.7/idlelib/EditorWindow.pytget_selection_indices�s
cCs|jdpt}t|�S(Nttabs(RetTK_TABWIDTH_DEFAULTRd(R6tcurrent((s*/sys/lib/python2.7/idlelib/EditorWindow.pytget_tabwidth�scCs^|j}|j�|krZ|jjdd|dd|jd|�}|jd|�ndS(NRwtmeasures
-displayoftnR7(ReR:RbRcR�t configure(R6tnewtabwidthRetpixels((s*/sys/lib/python2.7/idlelib/EditorWindow.pytset_tabwidth�s
cCsu|ra|ra|j�}d|ko/dknr@||_n|j|jkrat|_qan|j|j�dS(Nii(tguess_indentR�R�RCR�R@(R6R�tguessR�((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��scCs�|j}|j�\}}|rK|rK|j||�|jd|�dS|jdd�}|dkr�|jddd�r�|jd�n
|j�dS|dd kr�|jd�dS|j}t|j |��}|d
|j
|j
}|jrtj
jd�d} nd} d}
x\|| kr4Pn|d }|
d
}
t|j |��}||ksy|dd kr$Pq$q$|j�|jd
|
d�||kr�|jdd||�n|j�dS(NRRmsinsert linestartR~Rs1.0s insert-1ci�s is
is
insert-%dcR
(ReR6RDRR�RR|R�Rt
expandtabsR�R�RR�RR�RR�(R6RnReRR tcharsR�thavetwanttlast_line_of_promptt
ncharsdeleted((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��sH
c
CsH|j}|j�\}}|j�z|r||r|t|�t|�krY|j|�S|j||�|jd|�n|jdd�}t||j �\}}|t
|�kr�|j||j�nU|j
r�}n3t
|j|j ��}|j} d| || }|jd|�|jd�dSWd|j�XdS(NRsinsert linestarts R
Rm(ReR6R�t
index2lineR�RDRR�t
classifywsR�Rtreindent_toR�R�RCRRR�(
R6RnReRR Rtrawt effectivetpadR<((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s,
c Cs�|j}|j�\}}|j�z�|rW|rW|j||�|jd|�n|jdd�}dt|�}}x*||kr�||dkr�|d}qW||kr�|jdd�dS|| }d}tj j
d�d} x:|r+|ddkr+|| kr+|d }|d}q�rI|jd |d�nx&|jd�dkrq|jd�qLW|jdd�t|jd��}
t
j|j|j�}|js^x�|jD]�}t|
|d�}
t|
�d
}|j|d�}|j|�|j|j|j|��}|dk s@|
dkr�Pq�q�W|j|pWd�nW|jdd�}|r�|d}nd}|j|d�}|j|�|jd�|j�}|t
jkrw|t
jkr��|t
jkr|jd|�no|t
jkr)|j |j!��nJ|t
j"krs|j#�dkr]|jd|�qs|j |j$��ndS|j%�}|jd|�|j&�r�|j'|�n"|r�|j(�r�|j)|�ndSWd|j*d�|j+�XdS(
NRsinsert linestartis is
Rmi�sinsert - %d charss.0tconsoles1.0(,ReR6R�RDRR�RRRR�RRIR�RtParserR�R�R�R�R�Rtset_strtfind_good_parse_startt_build_char_in_string_funcRtset_loR2tget_continuation_typetC_NONEtC_STRING_FIRST_LINEtC_STRING_NEXT_LINESt C_BRACKETRKtcompute_bracket_indenttC_BACKSLASHtget_num_lines_in_stmttcompute_backslash_indenttget_base_indent_stringtis_block_openerR�tis_block_closerR�RR�(R6RnReRR RR�R<tindentRGtlnoRJtcontexttstartattstartatindextrawtexttbodR�R((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s�
%
cCs||jd�}|S(NcSs||d|�S(Ns+%dc((toffsett_startindext_icis((s*/sys/lib/python2.7/idlelib/EditorWindow.pytinnerhs(R5(R6t
startindexRk((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRSgsc
Cs�|j�\}}}}xmtt|��D]Y}||}|r+t||j�\}} | |j} |j| �||||<q+q+W|j||||�dS(NRm(t
get_regionR�RRJR�R�t_make_blankst
set_region(
R6RnR�R�RDtlinestposRRLRM((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�ms
"c
Cs�|j�\}}}}xvtt|��D]b}||}|r+t||j�\}} t| |jd�} |j| �||||<q+q+W|j||||�dS(NiRm( RmR�RRJR�R�R�RnRo(
R6RnR�R�RDRpRqRRLRM((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�xs
"cCsk|j�\}}}}x6tt|�d�D]}||}d|||<q/W|j||||�dS(Nis##(RmR�RRo(R6RnR�R�RDRpRqR((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s
cCs�|j�\}}}}xttt|��D]`}||}|sGq+n|d dkrd|d}n|d dkr�|d}n|||<q+W|j||||�dS(Nis##it#(RmR�RRo(R6RnR�R�RDRpRqR((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s
c
Cs�|j�\}}}}|j�}|dkr4dSxutt|��D]a}||}|rGt||�\} }
t|
|�\}}d|d||| ||<qGqGW|j||||�dS(Ns R
(Rmt_asktabwidthRR�RRJtdivmodRo(
R6RnR�R�RDRpR�RqRRLRMtntabstnspaces((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s
%cCs�|j�\}}}}|j�}|dkr4dSx1tt|��D]}||j|�||<qGW|j||||�dS(N(RmRsRR�RRCRo(R6RnR�R�RDRpR�Rq((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��scCsZ|jddd
|jdd|jdd d
|j�rV|j|_d|_ndS(NsToggle tabss
Turn tabs tontoffs?
Indent width swill bes
remains ats 8.s!
Note: a tab is always 8 columnsR4iRm(RwRx(swill bes
remains at(R�R�ReR�(R6Rn((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s!
cCs_|jddd|jd|jdddd�}|r[||jkr[|jr[||_nd S(
NsIndent widths6New indent width (2-16)
(Always use 8 when using tabs)R4R�tminvalueitmaxvalueiRm(R�ReR�R�(R6RnR((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR��s cCs�|j}|j�\}}|rP|rP|j|d�}|j|d�}n|jd�}|jd�}|j||�}|jd�}||||fS(Ns
linestarts-1c lineend +1csinsert linestartsinsert lineend +1cs
(ReR6R�R�R(R6ReRR R�R�RDRp((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRm�s cCs�|j}dj|�}||kr2|j�dS|jddd�|jd|�|j�|j||�|j||�|j�|j d|d�dS(Ns
R
s1.0R}R(
ReR?R|RRR�RDRR�R(R6R�R�RDRpRetnewchars((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRo�s
cCs=|jr1t||j�\}}d|d|Sd|SdS(Ns R
(R�RtR�(R6R<RuRv((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRn�s cCsk|j}|j�|jddd�r;|jdd�n|r]|jd|j|��n|j�dS(Nsinsert linestarts!=R(ReR�RRDRRnR�(R6R"Re((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRK�s
cCs.|jddd|jd|jdddd�S( Ns Tab widthsColumns per tab? (2-16)R4R�RyiRzi(R�ReR�(R6((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRs�s cCsrt|j|j�j�\}}|r`|r`t||j�\}}t||j�\}}n
d}}||S(Ni(tIndentSearcherReR�R0RJ(R6topenertindentedRLtindentsmalltindentlarge((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRAs!
N(sfileR+(seditR-(sformatR/(srunR1(R2R3(swindowsR4(shelpR6(swindowsR7(RXs<<close-window>>N(|R#ROtidlelib.PercolatorRQtidlelib.ColorDelegatorRRtidlelib.UndoDelegatorRStidlelib.IOBindingRTRURVR�RWtTkinterRXtidlelib.MultiStatusBarRYRR~R7RR�R�R�R'R;RR�R�R�RKR�RMRLR]R\RdR�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�RBR�R�R�R�R�R�R�R�R�R�R�R�R�RR�R RRR�RRR�RR�R?R-R/R%R5R6R:R@R�R�R�R�R�RSR�R�R�R�R�R�R�R�RmRoRnRKRsRA(((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRPps�� )
! -
% 0 # k
cCstt|��S(N(RdR�(R�((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRIscCstd}}x]|D]U}|dkr:|d}|d}q|dkre|d}||d|}qPqW||fS(NiR
is ((tsR�RLRMtch((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRJs
R|cBs;eZd�Zd�Zejejd
d�Zd �ZRS(cCs6||_||_d|_|_d|_|_dS(Ni(ReR�R�tfinishedRtblkopenlinetindentedline(R6ReR�((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR75s cCsd|jr
dS|jd}|_t|�d}|jj|dd�rMdS|jj||d�S(NR~is.0s>=R}s lineend+1c(R�R�RReRR�(R6R�R�((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�;s tclasstdeftfortifttrytwhilec Cs^|jrnN||kr0||kr0||_n*||krZ|jrZ||_d|_ndS(Ni(R�R�R�( R6RcttokentstartR}RtINDENTtNAMEtOPENERS((s*/sys/lib/python2.7/idlelib/EditorWindow.pyt
tokeneaterDs cCsmtj}|jt_z;ytj|j|j�Wntjtfk
rNnXWd|t_X|j|j fS(N(
t _tokenizettabsizeR�ttokenizeR�R�t
TokenErrortSyntaxErrorR�R�(R6tsave_tabsize((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR0Ps
(R�R�R�R�R�R�( R#ROR7R�R�R�R�R�R0(((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR|.s
cCs>|jd�}|dkr4|| ||d}n||fS(NRii(Rv(R�R�((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR<`st[tbracketleftt]tbracketrightt/tslashcCs|j|�}|s7tj�r;|dddhkr;dS|d}tjdd�|�}tjdd �|�}tjd
d|�}tjdd|�}tjd
d|�}tjdd|�}tjdd|�}tjdd|�}tjdd|�}|S(Ns<<open-module>>s
<<goto-line>>s<<change-indentwidth>>R~is-[a-z]\bcSs|j�j�S(N(tgrouptupper(R/((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRoyss\b\w+\bcSstj|j�|j��S(N(tkeynamesR�R�(R/((s*/sys/lib/python2.7/idlelib/EditorWindow.pyRozssKey-tCancels
Ctrl-BreaksControl-sCtrl-RR>s><R
RR(R�RR�Rtsub(R�RVR�R�((s*/sys/lib/python2.7/idlelib/EditorWindow.pyR�os"
cCsF|j}|jddd�|jddd�|jddd�dS( Nttcl_wordBreakAftersa biR�t
tcl_wordcharss[a-zA-Z0-9_]ttcl_nonwordcharss
[^a-zA-Z0-9_](RbRc(R�Rb((s*/sys/lib/python2.7/idlelib/EditorWindow.pyt
fixwordbreaks�s cCs�t�}t|�|j�tjdr:tjd}nd}td|d|�}|j|j�|j j
d|j�|j�|j
�dS(NiR�R,s<<close-all-windows>>(tTkR�RIRtargvRRPR�tquitReRDR�tmainloopRE(R�R,R,((s*/sys/lib/python2.7/idlelib/EditorWindow.pyttest�s
t__main__(*RR&RRR�R�R�Rmtidlelib.MultiCallRR�RRRRRRtidlelib.configHandlerRR R
RRR8RRR2tobjectR3RhRPRIRJR�R�R|R<R�R�R�R�R#(((s*/sys/lib/python2.7/idlelib/EditorWindow.pyt<module>sX
!( ���
2
|