HEX

Warning: set_time_limit() [function.set-time-limit]: Cannot set time limit - prohibited by configuration in /home/u547966/brikov.ru/www/wp-content/plugins/admin-menu-editor/menu-editor.php on line 745
Server: Apache
System: Linux 4.19.0-0.bpo.9-amd64 x86_64 at red40
User: u547966 (5490)
PHP: 5.3.29-mh2
Disabled: syslog, dl, popen, proc_open, proc_nice, proc_get_status, proc_close, proc_terminate, posix_mkfifo, chown, chgrp, accelerator_reset, opcache_reset, accelerator_get_status, opcache_get_status, pcntl_alarm, pcntl_fork, pcntl_waitpid, pcntl_wait, pcntl_wifexited, pcntl_wifstopped, pcntl_wifsignaled, pcntl_wifcontinued, pcntl_wexitstatus, pcntl_wtermsig, pcntl_wstopsig, pcntl_signal, pcntl_signal_dispatch, pcntl_get_last_error, pcntl_strerror, pcntl_sigprocmask, pcntl_sigwaitinfo, pcntl_sigtimedwait, pcntl_exec, pcntl_getpriority, pcntl_setpriority
Upload Files
File: //usr/lib/python3.5/idlelib/__pycache__/EditorWindow.cpython-35.pyc


Fa@sXddlZddlZddlZddlZddlZddlZddlZddlZddlTddl	j
Zddlj
ZddlZddlZddlmZddlmZddlmZddlmZddlmZddlmZdd	lmZdd
lmZmZmZddlmZddlmZd
Z dej!Z"ddZ#Gddde$Z%e%Z&Gddde$Z'ddZ(ddZ)ddl*Z*e*Z+[*Gddde$Z,ddZ-dddd d!d"iZ.d#d$Z/d%d&Z0d'd(Z1e2d)krTdd*l3m4Z4e4e1dS)+N)*)MultiCallCreator)
WindowList)SearchDialog)
GrepDialog)
ReplaceDialog)PyParse)idleConf)aboutDialogtextViewconfigDialog)
macosxSupport)helpz (%s)cCstj\}}}}}d||f}|d|f7}|dkrY|d|f7}n$|dkr}|d|d|f7}|S)zYFormat sys.version_info to produce the Sphinx version string used to install the chm docsz%s%sz%s	candidatezrc%sfinalr)sysversion_info)majorminormicrolevelserialreleaser*/usr/lib/python3.5/idlelib/EditorWindow.py_sphinx_versionsrc@sReZdZddZdddZddZdd	Zdd
dZdS)
HelpDialogcCsd|_d|_dS)N)parentdlg)selfrrr__init__-s	zHelpDialog.__init__NcCsUddl}|jdtdd|jdkr>|j||rQ|j|dS)z 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
        rNzEditorWindow.HelpDialog is no longer used by Idle.
It will be removed in 3.6 or later.
It has been replaced by private help.HelpWindow

stacklevel)warningswarnDeprecationWarningrshow_dialog
nearwindow)r rnearwrrrdisplay1s	

zHelpDialog.displaycCsr||_tjjtjjtjjtd}tj|d|dd|_	}|j
d|jddS)Nzhelp.txtZHelpZmodalFz	<Destroy>+)rospathjoinabspathdirname__file__rZ	view_filerbinddestroy)r rfnrrrrr'Cs	-"zHelpDialog.show_dialogcCs\|j}|jd|jdf}|j|jd||j|jdS)N
z=+%d+%d)rZwinfo_rootxZwinfo_rootyZwithdrawZgeometry	deiconifylift)r r)rgeomrrrr(Is	 

zHelpDialog.nearwindowcCsd|_d|_dS)N)rr)r Zevrrrr4Ts	zHelpDialog.destroy)__name__
__module____qualname__r!r+r'r(r4rrrrr+s
rc@seZdZddlmZddlmZmZddlm	Z	ddl
mZmZm
Z
ddlmZddlmZddlmZd	Zd	d	d	d	d
dZdd
ZddZddZddZd	ddZdddddddgZd$d%Zd&d'Zd	Zd(d)ZdgZ d,d-Z!d.d/Z"d0d1Z#d2d3Z$d	d4d5Z%d	d6d7Z&d	d8d9Z'd	d:d;Z(d<d=Z)d>d?Z*d@dAZ+d	dBdCZ,d	dDdEZ-dFdGZ.dHdIZ/dJdKZ0dLdMZ1dNdOZ2dPdQZ3dRdSZ4dTdUZ5dVdWZ6d	dXdYZ7d	dZd[Z8d	d\d]Z9d	d^d_Z:d`daZ;dbdcZ<dddeZ=dfdgZ>dhdiZ?djdkZ@dldmZAdndoZBeCjDeCjEdpZFdqdrZGdsdtZHdudvZIdwdxZJdydzZKd{d|ZLd}d~ZMd	ddZNddZOddZPddZQddZRddZSddZTddZUddZVdddZWddZXdddZYddZZddZ[ddZ\ddZ]ddZ^ddZ_ddZ`ddZaddZbddZcd	ddZdd	d	ddZeddZfd	ddZgd	ddZhddZiddZjddZkddZldddZmddZnddZoddZpddZqddZrddZsddZtddZuddZvddZwddZxddZyddZzddZ{ddZ|ddZ}ddZ~ddZd	S)EditorWindowr)
Percolator)ColorDelegatorcolor_config)
UndoDelegator)	IOBindingfilesystemencodingencoding)Bindings)Toplevel)MultiStatusBarNcCs	tjdkr|tjjtjdd}tjjdrddtj	dd}tjj
drrd}qd	}tjj||dd}n}tjddd
krtjjtjddt}tjj|r|}n'tjdkrtjjtjd
}tjj
|}tjj|rb|t_tjdkr|dtjt_ndtj	ddt_||_|p|j}||_ytjWntk
rdt_YnXt||_tj|d|j|_}	|r|j|_|j|j_ni|_i|j_tjjtjd|_t|	|_}
t |
dd|_!}tj"ddddd|_#ddddddd d!d|j#d"tj"ddd"ddi}t$d#krd$|d%<t%t&|
||_'}
|j'|j_(|j)|j*|jj+d&|j,|jj-d'|j.t/j0r|
j-d'|j.|
j-d(|j1|
j-d)|j1n|
j-d*|j1|
j-d+|j2|
j-d,|j3|
j-d-|j4|
j-d.|j5|
j-d/|j6|
j-d0|j7|
j-d1|j8|
j-d2|j9|
j-d3|j:|
j-d4d5d6|
j-d7|j;|
j-d8|j<|
j-d9|j=|
j-d:|j>|
j-d;|j?|
j-d<|j@|
j-d=|jA|
j-d>|jB|
j-d?|jC|
j-d@|jD|
j-dA|jE|
j-dB|jF|
j-dC|jG|
j-dD|jH|
j-dE|jI|
j-dF|jJ|
j-dG|jK|
j-dH|jL|
j-dI|jM|
j-dJ|jNd!|
j-dK|jNdL|
j-dM|jO|
j-dN|jP|
j-dO|jQ|r||j|<|rn||jR|<|
j-dP|jS|
j-dQ|jjT|
j-dR|jU|
j-dS|jV|
j-dT|jW|jX|
jY|dU<|jZdVt[dWt\|j]|
dX<tj^|jdd|
dY<|
jZdVt_dWt`dZdL|
jZdVtadWt`dZdL|
jbtj"dd[d\dd]}||_cd^|_d|jd|_e|jfd_|_gdf|_h|ji|
|_j}|jk|_l}|jm||jn|
_n|jo|
_o|jp|jq|jr||_s}|jt|jud_|_v|jwd_d|_x|rtjjy|rtjj
|r|jz|rdc|_v|j{|}|jw|n|j||dc|_v|j}|jq|j~|j|jjdd}|rs	|jde}|dkr:	dg}|d!krZ	|j|dL}||_tj|jtj|_tj|_tj|_dS)hNZDocz
index.htmlZlinuxzpython-docs-z%s.%s.%sz/var/www/html/python/z/var/www/html/python/index.htmlz/usr/share/doc/winzPython%s.chmdarwinz0Resources/English.lproj/Documentation/index.htmlzfile://zhttps://docs.python.org/%d.%d/r#z>>> menuzrecent-files.lstnamevbarmainr=widthtypeinttextZpadxZwrapZnoneZhighlightthicknessrheightg!@Z
wordprocessorZtabstyleZWM_DELETE_WINDOWz<<close-window>>z<Control-Button-1>z<2>z<3>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>>cSsdS)Nbreakr)eventrrr<lambda>sz'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>>commandsidefillZyscrollcommandfontexpandIndentz
use-spacesboolrF2@KLTwindowsend)r`rarb)r=help_urlr-r.r/rbase_prefixplatformcountrisdirrisfilenormpathflistrootps1AttributeErrorMenumenubarrZListedTopleveltopvarstkinter_varsZinversedict
instance_dictr	Z
GetUserCfgDirrecent_files_pathFrame
text_frameZ	ScrollbarrM	GetOptionrOZ	TkVersionrZTextrRZfocused_widget
createmenubarapply_bindingsZprotocolcloser3close_eventr
ZisAquaTkright_menu_eventcutcopypastecenter_insert_eventhelp_dialogpython_docsabout_dialog
config_dialogopen_module
select_allremove_selection
find_eventfind_again_eventfind_in_files_eventfind_selection_event
replace_eventgoto_line_eventsmart_backspace_eventnewline_and_indent_eventsmart_indent_eventindent_region_eventdedent_region_eventcomment_region_eventuncomment_region_eventtabify_region_eventuntabify_region_eventtoggle_tabs_eventchange_indentwidth_eventmove_at_edge_if_selection
del_word_leftdel_word_right
home_callbackdictnew_callbackZclose_all_callbackopen_class_browseropen_path_browseropen_turtle_demoset_status_baryviewpackRIGHTYsetGetFontZLEFTZBOTHZTOPZ	focus_setusetabstabwidthindentwidthset_notabs_indentwidthcontext_use_ps1num_context_linesr>perrAundoinsertfilterundo_block_startundo_block_stopZset_saved_change_hooksaved_change_hookrBioZset_filename_change_hookfilename_change_hookZ	good_loadset_indentation_paramscolorexistsloadfileispythonsourceZset_filenameResetColorizerupdate_recent_files_listload_extensionsmenudictgetindex
add_separator	wmenu_endZregister_callbackpostwindowsmenutkMessageBoxaskyesnotkSimpleDialog
askinteger	showerror)r rmfilenamekeyrnZdochomeZpyverZbasepathZchmfilersryrMZtext_optionsrRZ	usespacesrrr	is_py_srcrKrdrrrr!fs<						
		









	
		
	
	%	
	





	zEditorWindow.__init__cCst|trty|j|j}WnLtk
rsy|j|j}Wn!tk
rn|jd}YnXYnXtjdd|S)z3Return filename as BMP unicode so diplayable in Tk.z	iso8859-1u[𐀀-􏿿]u�)
isinstancebytesdecoderCUnicodeDecodeErrorrDresub)r rrrr_filename_to_unicode?s

z!EditorWindow._filename_to_unicodecCs)|jj\}}|jj|dS)NrU)rZdefaultfilenamermnew)r rVr1basenamerrrrNszEditorWindow.new_callbackcCss|jd@dkr&|jdkr&dS|jjdr|jjdddr|jjdddrt|jjdjdd	}nO|jjdd}x7tt	|D]}||dkrPqWt	|}t|jjdjdd	}||krd}d
t
|d}|jd	@dkrV|jjdddn|jjds~|jjddnY|jj|jjdd|jjdr|jjddn|jjdd|jj|}|jjd}|jj|d|r ||}}|jjddd|jj
d|||jjd||jjddS)NrZHomeZiomarkz<=zinsert lineendzinsert linestart.rX 	insertzinsert linestart+cselz1.0rdz	sel.firstZ	my_anchor<zsel.last>rU)rr)stateZkeysymrRrcomparerQsplitrrangelenstr
tag_removemark_settag_addsee)r rVZinsertptlineZlineatdestfirstlastrrrrSs@"(%
zEditorWindow.home_callbackcCs|j|j|_t|jdddddd}tjdkr^|jjddd	t|jjd
dd	t|jjdd
d	t|jjd	t	dt
|jd	t	dt
|jjd|j
|jjddd|jj|j
dS)NrTrXZborderwidthZ
backgroundZgrey75rJZ	_padding1z    rZcolumnzCol: ?rzLn: ?r[z<<set-line-and-column>>z<KeyRelease>z<ButtonRelease>)rGrs
status_barrxrrh	set_labelrrZBOTTOMXrRr3set_line_and_column	event_addZ
after_idle)r seprrrr~s!
zEditorWindow.set_status_barcCsS|jjtjd\}}|jjdd||jjdd|dS)NrrzCol: %srzLn: %s)rRrZINSERTrrr)r rVrrrrrrs!z EditorWindow.set_line_and_columnfile_Fileedit_EditformatF_ormatrun_Runoptions_Optionsrc_Windowr_HelpcCs2|j}i|_}xe|jD]Z\}}t|\}}t|d|dd||<}|jd|d|d|q Wtjrt|dddd|d<}|jdd	d||jt|jdd|_	|jd
j
dddddd|j	|jd
jt|_
|jdS)NrLtearoffrlabelrK	underlineZappleZapplicationZIDLErrHzRecent Filesr)rrr
menu_specsprepstrrqZadd_cascader
Z
isCarbonTk
fill_menusrecent_files_menuZinsert_cascaderENDbase_helpmenu_lengthreset_help_menu_entries)r ZmbarrrLrrrKrrrr{s"	
  

zEditorWindow.createmenubarcCse|jd}|jd}|dkr.d}||jkrT|j|jd|tj|dS)NrcrdrXre)rrrdeleterZadd_windows_to_menu)r rKrdrrrrs
zEditorWindow.postwindowsmenuc	
Cs |jjdd|j|jf|js6|j|j}||_tjdddk}|rz|jj	ddxp|j
D]e}y|\}}}Wntk
rwYnX|dkrqt||}|j
|d|qW|j|j|j|r|jj	dddS)	Nrz@%d,%drHrIZcursorZarrowrZibeam)rRrxyrmenu
make_rmenurVrrhZconfigrmenu_specs
ValueErrorgetattrZentryconfigureZtk_popupZx_rootZy_root)	r rVrZiswinitemr	eventnameZverify_staterrrrrs(#	
		
zEditorWindow.right_menu_eventClose<<close-window>>cCst|jdd}xj|jD]_}|d|d}}|dk	rt|j|dd}|jd|d|q|jqW||_dS)NrrrXcSs|j|dS)N)event_generate)rRrrrrrYsz(EditorWindow.make_rmenu.<locals>.commandrrY)rqrRradd_commandrr)r rrrrrYrrrrszEditorWindow.make_rmenucCs
|jS)N)rmenu_check_copy)r rrrrmenu_check_cutszEditorWindow.rmenu_check_cutcCsAy|jjd}Wntk
r.dSYnX|r9dSdSdS)Nz	sel.firstdisablednormal)rRrTclError)r Zindxrrrrs

	zEditorWindow.rmenu_check_copycCsAy |jjjd|jdWntk
r8dSYnXdSdS)Nztk::GetSelectionZ	CLIPBOARDrr)rRtkcallr)r rrrrmenu_check_pastes
 
	zEditorWindow.rmenu_check_pastecCstj|jddS)zHandle Help 'About IDLE' event.z
About IDLEN)r
ZAboutDialogrs)r rVrrrrszEditorWindow.about_dialogcCstj|jddS)z&Handle Options 'Configure IDLE' event.ZSettingsN)rZConfigDialogrs)r rVrrrrszEditorWindow.config_dialogcCs/|jr|j}n	|j}tj|dS)zHandle Help 'IDLE Help' event.N)rnrsrZ
show_idlehelp)r rVrrrrrs		zEditorWindow.help_dialogcCstjdddkr}ytj|jWqtk
ry}z*tjdddt|d|j	WYdd}~XqXnt
j|jdS)NrHrItitlezDocument Start FailuremessagerrU)rrhr-	startfilerfOSErrorrrrrR
webbrowseropen)r rVwhyrrrrs,zEditorWindow.python_docscCs|jjddS)Nz<<Cut>>rU)rRr)r rVrrrrszEditorWindow.cutcCs*|jjdsdS|jjddS)Nrz<<Copy>>rU)rRZ
tag_rangesr)r rVrrrrszEditorWindow.copycCs$|jjd|jjddS)Nz	<<Paste>>rrU)rRrr)r rVrrrr%szEditorWindow.pastecCs=|jjddd|jjdd|jjddS)Nrz1.0zend-1crrU)rRrrr)r rVrrrr*szEditorWindow.select_allcCs*|jjddd|jjddS)Nrz1.0rdr)rRrr)r rVrrrr0szEditorWindow.remove_selectioncs=|jj|jjdfdd}|S)zCursor 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.

        sel.first+1csel.last-1ccsK|jd@dkrGyddWntk
rFYnXdS)NrSrz	sel.firstr)rr)rV)
edge_indexedges_tableself_text_indexself_text_mark_setrrmove_at_edge?s

z<EditorWindow.move_at_edge_if_selection.<locals>.move_at_edge)r*r+)rRrr)r r,r0r)r,r-r.r/rr4s
z&EditorWindow.move_at_edge_if_selectioncCs|jjddS)Nz
<Meta-Delete>rU)rRr)r rVrrrrHszEditorWindow.del_word_leftcCs|jjddS)Nz<Meta-d>rU)rRr)r rVrrrrLszEditorWindow.del_word_rightcCstj|jdS)NrU)rfindrR)r rVrrrrPszEditorWindow.find_eventcCstj|jdS)NrU)rZ
find_againrR)r rVrrrrTszEditorWindow.find_again_eventcCstj|jdS)NrU)rZfind_selectionrR)r rVrrrrXsz!EditorWindow.find_selection_eventcCs tj|j|j|jdS)NrU)rZgreprRrrm)r rVrrrr\sz EditorWindow.find_in_files_eventcCstj|jdS)NrU)rreplacerR)r rVrrrr`szEditorWindow.replace_eventcCsp|j}tjddd|}|dkr1dS|dkrK|jdS|jdd||jddS)NZGotozGo to line number:rrUrrz%d.0)rRrrbellrr)r rVrRlinenorrrrds		
zEditorWindow.goto_line_eventc!Csy|jjdd}Wntk
r3d}Yn
X|j}tjddd|jd|}|rs|j}|s}dSytjj|}WnNt	t
fk
r}z(tjdt
|d|jdSWYdd}~XnX|dkr
tjdd	d|jdSt|jtjjsBtjdd
d|jdSy|jj|}Wn/tk
rtjddd|jdSYnX|jr|jj|n|jj||S)Nz	sel.firstzsel.lastZModulezAEnter the name of a Python module
to search on sys.path and open:rinitialvaluezImport errorzmodule not foundznot a source-based modulez$loader does not support get_filename)rRrrstriprZ	askstring	importlibutil	find_specrImportErrorrrrrloaderabcSourceLoaderget_filenamerprmr(rr)r rVrLspecmsgZ	file_pathrrrrpsH
	


	
		zEditorWindow.open_modulecCs|jj}|jjdko!|s@|j}|dkr@dStjj|\}}tjj|\}}ddl	m
}|j
|j||gdS)NZPyShellEditorWindowr)ClassBrowser)rr	__class__r:rr-r.rsplitextidlelibrBrm)r rVrheadtailbaseextrBrrrrszEditorWindow.open_class_browsercCs$ddlm}|j|jdS)Nr)PathBrowser)rErJrm)r rVrJrrrrszEditorWindow.open_path_browsercCs5ddl}tjddg}|j|dddS)Nrz-cz,from turtledemo.__main__ import main; main()shellF)
subprocessr
executablePopen)r rVrLcmdrrrrs
	zEditorWindow.open_turtle_democCsi|dk	re|dkre|jjdd||jjddd|jjddd|jdS)Nrrz%d.0rz1.0rdz
insert +1l)rRrrrcenter)r r4rrrgotolines
zEditorWindow.gotolinecCs|stjj|rdStjjtjj|\}}tjj|dkr]dS|jjdd}|jdod|kS)	NT.py.pywz1.0z1.0 lineendz#!Zpython)rRrS)	r-r.rjrDrnormcaserRr
startswith)r rrHrIrrrrrs$zEditorWindow.ispythonsourcecCs&|jr"|jj|d|_dS)N)rmZunregister_maybe_terminate)r rrr
close_hooks	zEditorWindow.close_hookcCs
||_dS)N)rV)r rVrrrset_close_hookszEditorWindow.set_close_hookcCsA|jr|jj||j|jj||jdS)N)rmZfilename_changed_editrrsZupdate_windowlist_registryr)r rrrrs
	
z!EditorWindow.filename_change_hookcCsw|jr
dS|j|jjr1|j|_|jrs|jj|j|jj|j|jj|jdS)N)	rrrrr?rremovefilterrr)r rrr
_addcolorizers		zEditorWindow._addcolorizercCs:|js
dS|jj|jj|jd|_dS)N)rZremovecolorsrrX)r rrr_rmcolorizers
	
zEditorWindow._rmcolorizercCs(|j|jtj|jdS)zUpdate the color themeN)rZrYr=r@rR)r rrrrs

zEditorWindow.ResetColorizer_cCs|jd||j|}|rK||jkrK|jd|d|d|j|krs|jd|n|jd|d|j|dS)NZERRORz
 wordstart
rz+1c)rr
IDENTCHARSrr)r rRposcharrrrcolorize_syntax_errorsz"EditorWindow.colorize_syntax_errorcCs#tj|jdd|jd<dS)z.Update the text widgets' font if it is changedrNr=r\N)r	rrnrR)r rrr	ResetFontszEditorWindow.ResetFontcCstj|j_}x-|jD]\}}|jj||q#WxY|jD]K}tj|}|rSx-|jD]\}}|jj||q{WqSWdS)z/Remove the keybindings before they are changed.N)	r	GetCurrentKeySetrEdefault_keydefsitemsrRZevent_deleteget_standard_extension_namesGetExtensionBindings)r keydefsrVkeylist
extensionNamexkeydefsrrrRemoveKeybindingsszEditorWindow.RemoveKeybindingsc
Cstj|j_}|jx6|jD](}tj|}|r-|j|q-Wi}xa|jjD]S}i||d<x<|dD]0}|r|d||dt|dd<qWqlWx|j	D]}|j	|}|j
t}|dkrq|d7}xtd|D]}	|j
|	dkr|j|	d}
|
r|j|	d}d}||kr|||kr|||}|rt||}
|j|	d|
qWqWdS)z-Update the keybindings after they are changedrrXNrYacceleratorrr5)r	rbrErcr|rerfmenudefsrrrr
rrPZ	entrycgetget_acceleratorZentryconfig)
r rgrirjZ
menuEventDictrKrZmenubarItemrdrZaccelZitemNamerVrrrApplyKeybindings
s<
,

zEditorWindow.ApplyKeybindingscCs+|js'tjddddd|_dS)zCUpdate the indentwidth if changed and not using tabs in this windowrNr^z
num-spacesrPrQN)rr	rzr)r rrrr.s	z#EditorWindow.set_notabs_indentwidthcCstj}|jd}|jt}||jkrN|j|jd||r|jx;|D]3}|j|d}|j	d|dd|qeW||jd<dS)z3Update the additional help entries on the Help menurrXrrrYN)
r	ZGetAllExtraHelpSourcesListrrr
rr
r"_EditorWindow__extra_help_callbackr)r Z	help_listZhelpmenuZhelpmenu_lengthentryrOrrrr5s


z$EditorWindow.reset_help_menu_entriescs|fdd}|S)zCCreate a callback with the helpfile value frozen at definition timecs|jd	s!tjj|}tjdddkrytj|Wqtk
r}z*tj	dddt
|djWYdd}~XqXn
tj
|dS)
NwwwhttprHrIr#zDocument Start Failurer$r)rrrs)rUr-r.rlrrhr%r&rrrrRr'r()helpfiler))r rrdisplay_extra_helpHs,z>EditorWindow.__extra_help_callback.<locals>.display_extra_helpr)r rtrur)r rZ__extra_help_callbackFsz"EditorWindow.__extra_help_callbackcsmg}tjj|jrOt|jddddd}|j}WdQRX|rtjj|d}||kr|j||jd|gxD|D]<}d	|kstjj|ddrj	|qWfdd|D}d
}|dt
|}y9t|jddddd}|j|WdQRXWnxtk
r}zXt
|jddsd|j_tjdddd|jt|d|jWYdd}~XnXx|jjD]}|j}	|	jdtxlt|D]^\}
}|j}|j|}|j|}
|	jd||
d|d|
ddqWqWdS)z/Load and update the recent files list and menusrrDutf_8errorsr2Nr\rrXcs"g|]}|kr|qSrr).0r.)	bad_pathsrr
<listcomp>fs	z9EditorWindow.update_recent_files_list.<locals>.<listcomp>Z1234567890ABCDEFGHIJKr*recentfilelist_error_displayedFTr#zIDLE Warningr$z|Cannot update File menu Recent Files list. Your operating system says:
%s
Select OK and IDLE will continue without updating.rrrrYrre)r-r.rrwr(	readlinesr0removerappendr
writelinesr&rrnr}rshowwarningrrrRrsrvr	r
r
	enumeraterstrip#_EditorWindow__recent_file_callbackr)r new_fileZrf_listZrf_list_filer.ZulcharsZrf_fileerrinstancerKi	file_nameZ
ufile_namecallbackr)r{rrUsL

)	z%EditorWindow.update_recent_files_listcs|fdd}|S)Ncsjjd|dS)NZeditFile)rr()Z
fn_closure)r rropen_recent_filesz=EditorWindow.__recent_file_callback.<locals>.open_recent_filer)r rrr)r rZ__recent_file_callbacksz#EditorWindow.__recent_file_callbackcCs|j}|j}|r9|r9|d|t}n$|rH|}n|rW|}nd}|pl|pl|}|jsd|}d|}|jj||jj|dS)Nz - Untitledz*%s*z*%s)short_title
long_title_py_version	get_savedrsZwm_titleZwm_iconname)r ZshortZlongr#Ziconrrrrs		

zEditorWindow.saved_change_hookcCs
|jjS)N)rr)r rrrrszEditorWindow.get_savedcCs|jj|dS)N)r	set_saved)r ZflagrrrrszEditorWindow.set_savedcCs|jjdS)N)r
reset_undo)r rrrrszEditorWindow.reset_undocCs:|jj}|r'tjj|}nd}|j|S)Nr)rrr-r.rr)r rrrrrs
zEditorWindow.short_titlecCs|j|jjpdS)Nr5)rrr)r rrrrszEditorWindow.long_titlecCs|jdS)N)rP)r rVrrrrsz EditorWindow.center_insert_eventrcCsb|j}|j\}}|j|}||}td||d}|jt|dS)NrXr#)rRgetwindowlines	getlinenomaxrfloat)r markrRrsbotr4rTZnewtoprrrrPs	
zEditorWindow.centercCsm|j}|jd}|jd}||krc|jdkrct|d}||d}||fS)Nz@0,0z@0,65535rXrT)rRrZwinfo_heightrQ)r rRrsrrTrrrrs	zEditorWindow.getwindowlinescCs"|j}tt|j|S)N)rRrQrr)r rrRrrrrs	zEditorWindow.getlinenocCs:|jj}tjd|}ttt|jS)zReturn (width, height, x, y)z(\d+)x(\d+)\+(-?\d+)\+(-?\d+))rsZwm_geometryrmatchlistmaprQgroups)r r9mrrrget_geometryszEditorWindow.get_geometrycCs|jdS)N)r})r rVrrrr~szEditorWindow.close_eventcCsb|jr^|jsQ|jjdkr7|jj|jj|jj|jjSdS)Nr)rrrsrr7lowerr8	maybesave)r rrrrs	


zEditorWindow.maybesavecCs,|j}t|dkr(|j|S)NZcancel)rr_close)r Zreplyrrrr}s
zEditorWindow.closecCs|jjr"|jd|jjtj|j|j|jjd|_d|_|j	r}|j	jdd|_	d|_
d|_|jjd|_|j
j|jr|jdS)NrF)rrrrZunregister_callbackrunload_extensionsr}rrrRrurrsr4rV)r rrrrs"

						
	
	zEditorWindow._closecCsi|_|jdS)N)
extensionsload_standard_extensions)r rrrrs	zEditorWindow.load_extensionscCsFx6t|jjD]}t|dr|jqWi|_dS)Nr})rrvalueshasattrr})r insrrrrszEditorWindow.unload_extensionscCsTxM|jD]?}y|j|Wq
tdt|tjYq
Xq
WdS)NzFailed to load extension)reload_extensionprintrepr	traceback	print_exc)r rLrrrrsz%EditorWindow.load_standard_extensionscCstjddS)NZeditor_onlyT)r	Z
GetExtensions)r rrrresz)EditorWindow.get_standard_extension_namescCsyKytjd|dt}Wn'ttfk
rItj|}YnXWn"tk
rotd|YnXt||}tj|}t	|dr|j
|j|||}||j|<|r|j
|x|D]}|jdd}x*|dddkr'|dd}qWx*|ddd	krT|dd}q+W|d
}t	||r|jj|t||qWdS)
Nrpackagez
Failed to import extension: rm-r[rXrrZ_eventrere)r8
import_module__package__r;	TypeErrorrrr	rfrrrmrr|r2rRr3)r rLmodclsrgrZveventZ
methodnamerrrr
s2





zEditorWindow.load_extensioncCsa|dkr|jj}|j}||_x0|jD]"\}}|r7|j||q7WdS)N)rErcrRrgrdr)r rgrRrVrhrrrr|%s		zEditorWindow.apply_bindingsc
Csi|dkr|jj}|dkr0|jj}|j}|j}x |D]\}}|j|}|smqIx|D]}|s|jqt|\}	}
|	dddk}|r|	dd}	t|	\}}	t||
}
||
dd}|r;|j	|
t
}|jd|	d|d|d	|
d
|qt|jd|	d|d|d	|
qtWqIWdS)zAdd appropriate entries to the menus and submenus

        Menus that are absent or None in self.menudict are ignored.
        NrX!cSs|j|dS)N)r)rRrrrrrYGsz(EditorWindow.fill_menus.<locals>.commandrrrYrlZvariable)
rErmrcrrRrrrrnget_var_objZ
BooleanVarZadd_checkbuttonr)r rmrgrrRZmnameZ	entrylistrKrqrrZcheckbuttonrrlrYvarrrrr.s8		


zEditorWindow.fill_menuscCs5|j|}|r%|j}|St|dS)N)rr	NameError)r rLrvaluerrrgetvarSs
zEditorWindow.getvarcCs8|j||}|r(|j|nt|dS)N)rrr)r rLrvartyperrrrsetvar[szEditorWindow.setvarcCs=|jj|}|r9|r9||j|j|<}|S)N)rurrR)r rLrrrrrrbs
zEditorWindow.get_var_objcCs<|jr4|jjd|p3d|jj|kSdSdS)NZTODOSTRINGrX)rrR
tag_prevrangeZ	tag_names)r Z
text_indexrrris_char_in_stringrs	zEditorWindow.is_char_in_stringcCsOy2|jjd}|jjd}||fSWntk
rJdSYnXdS)Nz	sel.firstzsel.last)NN)rRrr)r rrrrrget_selection_indices~s
z"EditorWindow.get_selection_indicescCs|jdpt}t|S)Ntabs)rRTK_TABWIDTH_DEFAULTrQ)r Zcurrentrrrget_tk_tabwidthszEditorWindow.get_tk_tabwidthcCs[|j}|j|krW|jjdd|dd|jd|}|jd|dS)Nr\Zmeasurez
-displayofnr)rRrr r!ZmasterZ	configure)r ZnewtabwidthrRZpixelsrrrset_tk_tabwidths		
zEditorWindow.set_tk_tabwidthTcCsl|rX|rX|j}d|ko/dknr=||_|j|jkrXd|_|j|jdS)Nr#rF)guess_indentrrrr)r rZguessrrrrrs		z#EditorWindow.set_indentation_paramscCs|j}|j\}}|rK|rK|j|||jd|dS|jdd}|dkr|jdddr|jdn
|jdS|dd	kr|jddS|j}t|j	|}|d
kst
|d|j|j}|jr't
jjdd}	nd}	d
}
x]||	krCP|dd}|
d}
t|j	|}||ks|dd	kr6Pq6W|j|jd|
d||kr|jdd
|||jdS)NrrUzinsert linestartr5rz1.0z	insert-1crXz 	rr\z
insert-%dcrrererere)rRrr
rrrr3rr
expandtabsAssertionErrorrrrrorrrr)r rVrRrrcharsrZhaveZwantlast_line_of_promptZ
ncharsdeletedrrrrsJ	

		


z"EditorWindow.smart_backspace_eventc

CsE|j}|j\}}|jz|ry|ryt|t|krY|j|S|j|||jd||jdd}t||j	\}}|t
|kr|j||jnU|j
rd}n3t
|j|j	}|j}	d|	||	}|jd||jddSWd|jXdS)Nrzinsert linestartrrrU)rRrr
index2linerr
rr
classifywsrrreindent_torrrrrr)
r rVrRrrprefixraw	effectiveZpadrrrrrs,	

			
zEditorWindow.smart_indent_eventcCs|j}|j\}}|jz|rT|rT|j|||jd||jdd}dt|}}x*||kr||dkr|d}q|W||kr|jdddS|d|}d}tj	j
dd
}	x@|r4|ddkr4||	kr4|dd}|d}qW|rO|jd|dx&|jddkrw|jdqRW|jddt|jd}
t
j|j|j}|jsax|jD]}t|
|d}
t|
d	}|j|d}|j||j|j|j|}|dk	sF|
dkrPqW|j|pZdnW|jd
d}|r|d}nd}|j|d}|j||jd|j}|t
jkr|t
jkrn|t
jkr|jd|n|t
jkr,|j|j nc|t
j!krv|j"dkr`|jd|q|j|j#ndst$d|fdS|j%}|jd||j&r|j'|n|r|j(r|j)|dSWd|j*d|j+XdS)Nrzinsert linestartrz 	rXr\rUzinsert - %d charsz.0Zconsolez1.0zbogus continuation type %rrerere),rRrrr
rrrrrrorrrrZParserrrrrrrZset_strZfind_good_parse_start_build_char_in_string_funcZset_lorZget_continuation_typeZC_NONEZC_STRING_FIRST_LINEZC_STRING_NEXT_LINESZ	C_BRACKETrZcompute_bracket_indentZC_BACKSLASHZget_num_lines_in_stmtZcompute_backslash_indentrZget_base_indent_stringZis_block_openerrZis_block_closerrrr)r rVrRrrrrrindentrZlnorcontextZstartatZstartatindexZrawtextZbodrvrrrrrs	
%	





z%EditorWindow.newline_and_indent_eventcCs||jdd}|S)NcSs||d|S)Nz+%dcr)offsetZ_startindexZ_icisrrrinnerbsz6EditorWindow._build_char_in_string_func.<locals>.inner)r)r Z
startindexrrrrrasz'EditorWindow._build_char_in_string_funcc
Cs|j\}}}}xptt|D]\}||}|r+t||j\}}	|	|j}	|j|	||d||<q+W|j||||dS)NrU)
get_regionrrrrr_make_blanks
set_region)
r rVrFrGrlinesr^rrrrrrrgs

%z EditorWindow.indent_region_eventc
Cs|j\}}}}xytt|D]e}||}|r+t||j\}}	t|	|jd}	|j|	||d||<q+W|j||||dS)NrrU)	rrrrrrrrr)
r rVrFrGrrr^rrrrrrrrs
%z EditorWindow.dedent_region_eventcCsk|j\}}}}x6tt|dD]}||}d|||<q/W|j||||dS)NrXz##)rrrr)r rVrFrGrrr^rrrrr}s

z!EditorWindow.comment_region_eventcCs|j\}}}}xtt|D]r}||}|sDq+|dddkrm|dd}n&|dddkr|dd}|||<q+W|j||||dS)Nr#z##rX#)rrrr)r rVrFrGrrr^rrrrrs
z#EditorWindow.uncomment_region_eventc
Cs|j\}}}}|j}|dkr4dSxxtt|D]d}||}|rGt||\}	}
t|
|\}}d|d|||	d||<qGW|j||||dS)Nrr)r_asktabwidthrrrdivmodr)
r rVrFrGrrrr^rrrntabsnspacesrrrrs
(z EditorWindow.tabify_region_eventcCs|j\}}}}|j}|dkr4dSx1tt|D]}||j|||<qGW|j||||dS)N)rrrrrr)r rVrFrGrrrr^rrrrsz"EditorWindow.untabify_region_eventcCsW|jddd
|jdd|jdd	d
|jrS|j|_d|_dS)NzToggle tabsz
Turn tabs onoffz?
Indent width will be
remains atz 8.z!
 Note: a tab is always 8 columnsrrrU)rr)rr)rrrRr)r rVrrrrs!
	zEditorWindow.toggle_tabs_eventcCs\|jddd|jd|jdddd}|rX||jkrX|jrX||_d	S)
NzIndent widthz6New indent width (2-16)
(Always use 8 when using tabs)rr6minvaluer#maxvaluerU)rrRrr)r rVrrrrrs				z%EditorWindow.change_indentwidth_eventcCs|j}|j\}}|rP|rP|j|d}|j|d}n|jd}|jd}|j||}|jd}||||fS)Nz
 linestartz-1c lineend +1czinsert linestartzinsert lineend +1cr\)rRrrrr)r rRrrrFrGrrrrrrs	zEditorWindow.get_regioncCs|j}dj|}||kr2|jdS|jddd|jd||j|j|||j|||j|j	d|ddS)Nr\rz1.0rdr)
rRr/r3rrrr
rrr)r rFrGrrrRnewcharsrrrrs	


zEditorWindow.set_regioncCs=|jr1t||j\}}d|d|Sd|SdS)Nrr)rrr)r rrrrrrrs	zEditorWindow._make_blankscCse|j}|j|jdddr8|jdd|rW|jd|j||jdS)Nzinsert linestartz!=r)rRrrr
rrr)r rrRrrrrs	
zEditorWindow.reindent_tocCs.|jddd|jd|jddddS)	Nz	Tab widthzColumns per tab? (2-16)rr6rr#rr)rrRr)r rrrrs		zEditorWindow._asktabwidthcCsrt|j|jj\}}|r`|r`t||j\}}t||j\}}n
d}}||S)Nr)IndentSearcherrRrrr)r ZopenerZindentedrZindentsmallZindentlargerrrrs!
zEditorWindow.guess_indent)rr)rr)rr)rr)rr)rcr)rr)rrN)r:r;r<Zidlelib.Percolatorr>Zidlelib.ColorDelegatorr?r@Zidlelib.UndoDelegatorrAZidlelib.IOBindingrBrCrDrErEtkinterrFZidlelib.MultiStatusBarrGrfr!rrrrrrr{rrrrrrrr"rrrrrrrrrrrrrrrrrrrrrrrQrrVrWrrYrZrstringZ
ascii_lettersZdigitsr]r`rarkrorrrprrrrrrrrrrPrrrr~rr}rrrrrerr|rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr=[s+	
		+	$.	
		%	0#k


	r=cCstt|S)N)rQr)rrrrrsrcCstd}}x]|D]U}|dkr:|d}|d}q|dkre|d}||d|}qPqW||fS)NrrrXrr)srrrZchrrrrs




rc@sOeZdZddZddZejejdddZd
dZ	dS)rcCs6||_||_d|_|_d|_|_dS)Nr)rRrrfinishedblkopenlineindentedline)r rRrrrrr!/s		zIndentSearcher.__init__cCsd|jr
dS|jd}|_t|d}|jj|ddrMdS|jj||dS)Nr5rXz.0z>=rdz lineend+1c)rrrrRrr)r rrrrrreadline5s	zIndentSearcher.readlineclassdefforiftrywhilec		Cs[|jrnK||kr0||kr0||_n'||krW|jrW||_d|_dS)NrX)rrr)	r rPtokenstartrdrINDENTNAMEZOPENERSrrr
tokeneater>s		zIndentSearcher.tokeneatercCstj}|jt_zVy4tj|j}x|D]}|j|q4WWntjtfk
riYnXWd|t_X|j|j	fS)N)
	_tokenizetabsizergenerate_tokensrr
TokenErrorSyntaxErrorrr)r Zsave_tabsizetokensrrrrrJs	
	
zIndentSearcher.runN)rrrrrr)
r:r;r<r!rrrrrrrrrrr(s
	rcCsG|jd}|dkr=|d|||dd}||fS)Nr[rrX)r1)rrrrrr\s"rZbracketleft[Zbracketright]Zslash/cCs	|j|}|s.tjr2|dkr2dS|d}tjddd|}tjd	d
d|}tjdd|}tjdd
|}tjdd|}tjdd|}tjdd|}tjdd|}tjdd|}|S)N<<open-module>>
<<goto-line>><<change-indentwidth>>r5rz-[a-z]\bcSs|jjS)N)groupupper)rrrrrWusz!get_accelerator.<locals>.<lambda>z\b\w+\bcSstj|j|jS)N)keynamesrr)rrrrrWvszKey-ZCancelz
Ctrl-BreakzControl-zCtrl-rr,z><rrr>rrr)rr
Z	isCocoaTkrr)rgrrhrrrrrnks"	
rncCsF|j}|jddd|jddd|jddddS)	NZtcl_wordBreakAfterza brrZ
tcl_wordcharsz[a-zA-Z0-9_]Ztcl_nonwordcharsz
[^a-zA-Z0-9_])r r!)rnr rrr
fixwordbreakss	r	cCsx|}t|tjddr3tjd}nd}tj|dtd|d|}|jjd|jdS)NrXrnrz<<close-all-windows>>)	r	rargvr
ZsetupAppr=rRr3r~)rrnrrrrr_editor_windows
r__main__)r)5r8Z
importlib.abcimportlib.utilr-rhrrrrZtkinter.simpledialogZsimpledialogrZtkinter.messageboxZ
messageboxrrr'Zidlelib.MultiCallrrErrrrrZidlelib.configHandlerr	r
rrr
rrZpython_versionrrobjectrZ
helpDialogr=rrtokenizerrrrrnr	rr:Zidlelib.idle_test.htestrrrrr<module>sb
-	
4