python (3.12.0)

(root)/
lib/
python3.12/
idlelib/
__pycache__/
editor.cpython-312.opt-2.pyc

̑e
LddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlddlm
Z
ddlmZddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddl m!Z!ddl"m#Z#ddlm$Z$dZ%dejLzZ'ejdk(Z(dZ)GddZ*dZ+ejXdZ-dZ.GddZ/d Z0d!d"d#d$Z1d%Z2d&Z3d'Z4e5d(k(r dd)l6m7Z7e7d*d+d,-dd.l8m9Z9e9e4yy)/N)*)Font)	Scrollbar)simpledialog)
messagebox)idleConf)configdialog)grep)help)
help_about)macosx)MultiCallCreator)pyparse)query)replace)search)wheel_event)
py_extensions)windowz (%s)darwinc	tj\}}}}}||}||z
}|dk(r
|d|z
}|S|dk7r||d|z
}|S)N	candidatercfinalr)sysversion_info)majorminormicrolevelserialreleases      B/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/idlelib/editor.py_sphinx_versionr%&sz_),)9)9&E5%wG%GRx= N
'	eAhZx((NceZdZddlmZddlmZmZddlm	Z	ddl
mZmZddl
mZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZmZmZmZddl m!Z!ddl"m#Z#e$jJZ&dZ'dZ(dZ)dZ*dwdZ+dxdZ,dZ-dZ.dZ/dZ0dxdZ1	gdZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9d gZ:d!Z;d"Z<d#Z=d$Z>dxd%Z?dxd&Z@dxd'ZAdxd(ZBd)ZCd*ZDd+ZEdxd,ZFdxd-ZGd.ZHd/ZId0ZJd1ZKd2ZLd3ZMd4ZNd5ZOd6ZPd7ZQd8ZRdxd9ZSdxd:ZTdxd;ZUd<ZVd=ZWd>ZXd?ZYd@ZZdAZ[dBZ\dCZ]e^je^jzdDzZadEZbdFZcdGZddHZedIZfdJZgdKZhdLZidxdMZjdNZkdOZldPZmdQZndRZodSZpdTZqdUZrdydVZsdWZtdydXZudYZvdZZwd[Zxd\Zyd]Zzd^Z{d_Z|d`Z}daZ~dbdciZddZdxdeZdzdfZdgZdxdhZdxdiZdjZdkZdlZdmZd{dnZdoZdpZdqZdrZdsZdtZduZdxdvZy)|EditorWindowr)
Percolator)ColorDelegatorcolor_config)
UndoDelegator)	IOBindingencoding)mainmenu)MultiStatusBar)AutoComplete)
AutoExpand)Calltip)CodeContext)LineNumbers)FormatParagraphFormatRegionIndentsRstrip)
ParenMatch)
ZoomHeightNTcD"ddlm}tjtj
j
tjdd}tjjdr`ddtjddzz}tj
jd	rd
}nd}tj
j
||dd}ntjdddk(rYddl
}	d
}
dtjd}	|	j|	j |}
tj
j'|
rD|
}nAtjdk(r.tj
j
tjd}tj
j)|}tj
j'|r;|t_tjdk(r<dtjzt_ndtjddzt_||_|xs|j,}||_t/||_t3j4||j0x|_}|r-|j8|_|j<|j6_ni|_i|j6_t@jBxr.tj
j
t@jBd|_"d
|_#tI|x|_%}
tM|
dx|_'}tAjPdddd}ddd d|d!tAjPddd"dd#}tStT|
fi|x|_+}|jV|j6_,|j[|j]|j6j_d$|j`|j6jcd%|jdtgjhrU|jcd%|jd|jcd&|jj|jcd'|jjn|jcd(|jj|jcd)tl|jcd*tl|jcd+tl|jcd,|jn|jcd-|jp|jcd.|jr|jcd/|jt|jcd0|jv|jcd1|jx|jcd2|jz|jcd3|j||jcd4|j~|jcd5|j|jcd6d7|jcd8|j|jcd9|j|jcd:|j|jcd;|j|jcd<|j|jcd=|j|jcd>|j|jcd?|j|jcd@|j|jcdA|j|jcdB|j|j|x|_M}|jcdC|j|jcdD|j|jcdE|j|jcdF|j|jcdG|j|jcdH|j|j|}|jcdI|j|jcdJ|j|jcdK|jd|jcdL|jdM|jcdN|j|jcdO|j|jcdP|j|r||j<|<|r||j|<|jcdQ|j|jcdR|j*j|jcdS|j|jcdT|j|jcdU|j|j|
jttdMV|
jdMdMW|
jdMdMW|j|dX<|jdMdtY|j|dZ<tAj|j,dd|d[<|jdMdMtY|j|jtAjPdd\d]d^}||_nd_|_o|j|_p|jtt@d`s|jVdat@_s|jdb|_u|j|x|_w}|jx|_y}|j||j|_{|j|_||j|j|j|x|_}|j|jdc|_|j	dcd|_d|_d|_|rtj
j|r]tj
j|s>|j|rEdd|_|j|}|j	|n|j|dd|_|j|j|j|j|jj!de}|rY|j#df}|dg}|dk\r|j%|dMz}||_t3j(|j*t,j.|_t0j2|_t0j4|_|j7dhdi|j7djdkdldm|j7dndo|j7dpdq|j7drdqdsdt|j9||j:}|jcdh|j<|jcdj|j>|jcdu|j@|jcdv|jC|jD|jcdw|jG|jH|jK|}|jcdx|jL|jcdr|jN||}|jcdy|jP|jcdz|jR|jcd{|jT|jcd||jW|jX|j[|x|_}|jcdn|j^|jcdp|j`|jcd}|jb|jcd~|je|jf|jhr@|jk||_|jcd|jjln|joddd|jpr_|js||_tAjPdddd^r|ju|jcd|jty|jodddy#t"$r1	|	j|	j$|}
n#t"$rYnwxYwYwxYw)Nr)
ScriptBindingDocz
index.htmllinuxzpython-docs-z%s.%s.%sz/var/www/html/python/z/var/www/html/python/index.htmlz/usr/share/doc/winzSoftware\Python\PythonCore\z\Help\Main Python Documentationrz0Resources/English.lproj/Documentation/index.htmlzfile://zhttps://docs.python.org/%d.%d/)menuzrecent-files.lstvbar)namemainr(widthinttypetextnone
wordprocessorheight)rFpadxwraphighlightthicknessrHtabstylerPWM_DELETE_WINDOW<<close-window>>z<Control-Button-1>z<2>z<3>z<MouseWheel>z
<Button-4>z
<Button-5>z<Configure>z<<cut>>z<<copy>>z	<<paste>>z<<center-insert>>z<<help>>z<<python-docs>>z<<about-idle>>z<<open-config-dialog>><<open-module>>z<<do-nothing>>cyNbreak)events r$<lambda>z'EditorWindow.__init__.<locals>.<lambda>sr&z<<select-all>>z<<remove-selection>>z<<find>>z<<find-again>>z<<find-in-files>>z<<find-selection>>z<<replace>>
<<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>><<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>>)sidefillexpand)weightcommand)rowcolumnstickyyscrollcommandfontIndentz
use-spacesboolrblink_off_time
insertofftime)2ii@KLFTrendz<<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<<run-custom>>z
<<do-rstrip>>z<<force-open-calltip>>z<<zoom-height>>z<<toggle-code-context>>optionsz*ode*ontextdisabledzline-numbers-defaultz<<toggle-line-numbers>>*ine*umbers)idlelib.runscriptr=r(help_urlospathjoinrbase_prefixplatformcountrisdirwinregwinver
QueryValueHKEY_CURRENT_USERFileNotFoundErrorHKEY_LOCAL_MACHINEisfilenormpathflistrootMenumenubarrListedTopleveltopvarstkinter_varsinversedict
instance_dictruserdirrecent_files_pathprompt_last_lineFrame
text_framerrE	GetOptionrTextrLfocused_widget
createmenubarapply_bindingsprotocolclosebindclose_eventr
isAquaTkright_menu_eventrhandle_winconfigcutcopypastecenter_insert_eventhelp_dialogpython_docsabout_dialog
config_dialogopen_module_event
select_allremove_selection
find_eventfind_again_eventfind_in_files_eventfind_selection_event
replace_eventgoto_line_eventsmart_backspace_eventnewline_and_indent_eventsmart_indent_eventr7fregionindent_region_eventdedent_region_eventcomment_region_eventuncomment_region_eventtabify_region_eventuntabify_region_eventr8toggle_tabs_eventchange_indentwidth_eventmove_at_edge_if_selection
del_word_leftdel_word_right
home_callbackdictnew_callbackclose_all_callbackopen_module_browseropen_path_browseropen_turtle_demoset_status_barpackLEFTBOTHrowconfigurecolumnconfigurehandle_yviewgridNSEWsetGetFont	focus_set	set_widthusetabstabwidthindentwidthset_notabs_indentwidthhasattrrmupdate_cursor_blinknum_context_linesr)perr,undoinsertfilterundo_block_startundo_block_stopset_saved_change_hooksaved_change_hookr-ioset_filename_change_hookfilename_change_hook	good_loadset_indentation_paramscolorcode_contextline_numbersexistsloadfileispythonsourceset_filenameResetColorizerupdate_recent_files_listload_extensionsmenudictgetindex
add_separator	wmenu_endregister_callbackpostwindowsmenur
askintegerraskyesno	showerror	event_addr1user_input_insert_tagsautocomplete_eventtry_open_completions_eventforce_open_completions_eventr2expand_word_eventr6format_paragraph_eventr:flash_paren_eventparen_closed_eventcheck_module_eventrun_module_eventrun_custom_eventr9	do_rstripr3ctiptry_open_calltip_eventrefresh_calltip_eventforce_open_calltip_eventr;zoom_height_eventallow_code_contextr4toggle_code_context_eventupdate_menu_stateallow_line_numbersr5toggle_line_numbers_event)selfrfilenamekeyrr=dochomepyverbasepathr~docfileKEYrrrErHtext_optionsrLrindents	usespacesrrr	is_py_srcrDrpautocomplete
parenmatch
scriptbindingr	s                               r$__init__zEditorWindow.__init__JsM
3  (ww||COOULIG||!!'*&c6F6Fr6J)JJ77==!89?G0H ggll8U+0,@Gbq!U*5cjj\:;$//0H0H#NG77>>'*%G)'',,sJLgg&&w/Gww~~g&(/%<<8+,58M8M,ML))I+.+;+;BQ+?*@%
!uzz	Dz..t$,,GG3 %

D&+%6%6DHH" "D%'DHH"!)!1!1"6bggll  "476!#',Sz1*$Zf==	D""6>7O&'+",,uF	2+D1*MMM	D"&)),djj9

($*:*:;??II($*:*:;
II*4+@+@AIIeT223
IIeD112		.+.		,,		,,		-!6!67		)TXX&		*dii(		+tzz*		%t'?'?@		*d../		#T%5%56		"D$5$56		*D,>,>?		#T%;%;<		"$9:		"DOO4		($*?*?@		*doo.		"D$9$9:		%t'?'?@		&(A(AB		-!3!34		/4#7#78		'(B(BC		*4+H+HI		$T%<%<=!%!2!24!88w		%w'B'BC		%w'B'BC		&(D(DE		('*H*HI		%w'B'BC		')F)FG,,t$		#W%>%>?		*G,L,LM		(D::1=>		)T;;A>?		%t'9'9:		&(;(;<		)4+=+=>&)Ed#"&

3II+T->->?II-tzz/L/LMII.0H0HIII-t/E/EFII,d.C.CDTQ7!,""1Q"/++Y		a$	/!%
''		6>JV		a$	/&&vx'3&B	$}
 ==##%x!12&*ii&@H#  ""2..3--//	D $ 5 5#33""4#9#9:~~d++"
##D$=$=>##E*
  ww~~h'

h0G;;x(%)DN $ 3 3H =I//	:)!% %%'}}  ***U#C{ax""$Ag DN$$T%9%9:'11"++
#--	
);713H+-E	G-/GH,.GH)+D24M	O
((t/J/JK		$l&E&EF		,99	;		.;;	=		#T__T%:%L%LM		(&&t,CC	E__T*
		#Z%A%AB		$j&C&CD%d+
		$m&F&FG		"M$B$BC		"M$B$BC		/4;;t#4#>#>?<<--	D		($*E*EF		')C)CD		*D,I,IJ		#T__T%:%L%LM"" $ 0 0 6DII/''AA
C
""9mZH"" $ 0 0 6D!!&."8vG..0II/1O1OP""9mZHU)"("3"3F4M4M47#9,	sG7AC%C%	ADC/ADDADD	ADDADDADDADDADc$|jyN)rrr\s  r$rzEditorWindow.handle_winconfiglsr&c	D|j}tt|jj|jd|jdg}|j
d|zz
}t||jdjd}||z|_	y)NborderrQrCrj)rj0)
rLsummaptkgetintcgetwinfo_widthrmeasurerH)rrL
inner_paddingpixel_widthzero_char_widths     r$rzEditorWindow.set_widthosyyC81D1561B1DEF
&&(1}+<<
DIIf-.66s;	 O3
r&ct|jj\}}|jj|yrY)rdefaultfilenamernew)rr\dirnamebasenames    r$rzEditorWindow.new_callback|s, GG335

wr&c|jdzdk7r|jdk(ry|jjdrq|jj	dddrT|jj	dddr7t|jjdj
dd	}nI|jjdd}tt|D]}||d
vsnt|}t|jjdj
dd	}||k(rd}dt|zd
z}|jd	zdk(r|jjdddnQ|jjds|jjddn|jj	|jjdd|jjdr|jjddn|jjdd|jj|}|jjd}|jj	|d|r||}}|jjddd|jjd|||jjd||jjdy)NrHomeiomark<=zinsert lineendinsert linestart.r`) 	insertzinsert linestart+csel1.0rp	sel.first	my_anchor<sel.last>rZ)statekeysymrLrcomparerIsplitrrangelenstr
tag_removemark_settag_addsee)rr\insertptlinelineatdestfirstlasts        r$rzEditorWindow.home_callbacksPKK!O!ellf&<99??8$99Xt-=>99/x@499??84::3?BCH99==!35EFD!#d),
#>3
#TTYY__X.44S9!<=vH"3x=04KKMaII  u599??;/		"";999$$TYY__[%A3%)YY__X%>@II&&{K@II&&{J?IIOOD)E99??;/Dyy  s40!%dII  u5IIeUD1		8T*		

hr&c|j|j|_t|jddd}tj
dk(r"|jj
ddt|jj
dd	t|jj
d
dt|jjtt|jtt|jjd
|j|jjd
dd|jj|jy)Nr`grey75)rPborderwidth
backgroundr	_padding1z    )rargzCol: ?rVzLn: ?)rarbz<<set-line-and-column>>z<KeyRelease>z<ButtonRelease>)r0r
status_barrrr{	set_labelRIGHTrBOTTOMXrLrset_line_and_columnr
after_idle)rseps  r$rzEditorWindow.set_status_bars--dhh7DHHQA(K<<8#
OO%%k6%F!!(H5!A!!&'!>&q1f1%		0$2J2JK		5*,=	?		T556r&c|jjtjd\}}|jjdd|z|jjdd|zy)Nr>rgzCol: %srVzLn: %s)rLrINSERTrMr`ra)rr\rVrgs    r$rez EditorWindow.set_line_and_columnsTyyv.44S9f!!(I,>?!!&(T/:r&))file_File)edit_Edit)formatF_ormat)run_Run)rr_Options)r_Window)r_Helpcv	|j}ix|_}|jD]K\}}t|\}}t	||dd}t||d|x||<}|j
|||Mtjr&t|ddx|d<}|j
d|	|jt|jd
|_
|jdjdd
d|j|jdjt|_|jy)N_menu_postcommandr)rFtearoffpostcommand)labelrD	underlineapple)rFrwapplicationIDLE)ryrDrwrjr@zRecent Files)ryrzrDr)rr
menu_specsprepstrgetattrradd_cascader

isCarbonTk
fill_menusrecent_files_menuinsert_cascaderENDbase_helpmenu_lengthreset_help_menu_entries)rmbarrrFryrzrxrDs        r$rzEditorWindow.createmenubarsB	||#%%
??	JKD%&u~Iu!$4&0A(BDIK$(D!5@%B
BHTNT5tyI	J-1$W:;.=
=H]#d65!%dllA!>

f,,Qn78262H2H	-	J%)MM&$9$?$?$D!$$&r&c	|jd}|jd}|d}||jkDr|j|jdz|t	j
|y)Nrrprqr`)rrrdeleteradd_windows_to_menu)rrDrps   r$rzEditorWindow.postwindowsmenus`	}}X&jj;CKKq(#.""4(r&cJ	|j|}|j||y)N)ryrentryconfig)rrDrrymenuitems     r$update_menu_labelzEditorWindow.update_menu_label&.==&U%0r&cJ	|j|}|j||y)NrJr)rrDrrJrs     r$rzEditorWindow.update_menu_staterr&c	|dk(rCt|d}t|jd|z|jdz
}d}|df}|jj|g|y)Nmovetorrp@0,0scrollunitsrZ)floatround	getlinenorLyview)rr\argsfractionliness     r$rzEditorWindow.handle_yviewslHT!W~H4>>%08;<^^F+,EE7#D		%%r&c|j}|jd|jd|j}	|j	dd|xr|j	|dd}|s%|j
ddd	|jd
||js|j|j}||_
tjdddk(}|r|jd
|jD]0}	|\}}	}
|

t!||
}|j#||2|j%|j&|j(|r|jjdy#t
$rd}YwxYw#t$rYwxYw)N@,rEr<rHFrCrDrprAr@rAarrow)cursorribeamrZ)rLrxyrLTclErrorrQrRrmenu
make_rmenur\rr{configrmenu_specs
ValueErrorrentryconfiguretk_popupx_rooty_root)rr\rLnewdexin_selectionriswinitemry	eventnameverify_staterJs            r$rzEditorWindow.right_menu_event(syyyay%''34	! LLdFCC<<zB
OOE5%0MM(F+zzOO


Ra E)KKwK'$$		5D
15.y,#/GD,/1E  e 4		5	u||U\\2IIG,7	! L	! 

s#(E%1E7%E43E47	FF)CloserVNct|jd}|jD]B}|d|d}}|$|j|fd}|j||3|j	D||_y)Nrr~r`c&|j|yr$event_generaterLrs  r$rez(EditorWindow.make_rmenu.<locals>.commandUs''	2r&ryre)rrLradd_commandrr)rrrryrres      r$rzEditorWindow.make_rmenuPstTYY*$$	&D#AwQ9E !%i3!!w!?##%	&
r&c"|jSr$)rmenu_check_copyrs r$rmenu_check_cutzEditorWindow.rmenu_check_cut\s$$&&r&cd	|jjd}|rdSdS#t$rYywxYw)NrEnormalrsrLrr)rindxs  r$rzEditorWindow.rmenu_check_copy_s<	499??;/D $833		s#	//c	|jjjd|jdy#t$rYywxYw)Nztk::GetSelection	CLIPBOARDrrs)rLr+callrrs r$rmenu_check_pastezEditorWindow.rmenu_check_pastegs?	IILL0$))[I		s14	AAcD	tj|jyrY)rAboutDialogrr%s  r$rzEditorWindow.about_dialogos)txx(r&cF	tj|jdy)NSettingsrZ)r	ConfigDialogrr%s  r$rzEditorWindow.config_dialogus0!!$((:6r&cz	|jr
|j}n|j}tj|yrY)rrr
show_idlehelp)rr\parents   r$rzEditorWindow.help_dialog{s/(99YYFXXF6"r&c2tjdddk(r!	tj|jytj|jy#t
$r5}t
jdt||jYd}~yd}~wwxYw)Nr@rADocument Start FailuretitlemessagerrZ)rr{rw	startfilervOSErrorrrrPrL
webbrowseropen)rr\whys   r$rzEditorWindow.python_docss~<<u$
8T]]+
OODMM*
8$$+CHTYY88
8sA	B!+BBc:|jjdy)Nz<<Cut>>rZrLrr%s  r$rzEditorWindow.cuts		  +r&cr|jjdsy|jjdy)NrCz<<Copy>>rZ)rL
tag_rangesrr%s  r$rzEditorWindow.copys,yy##E*		  ,r&cp|jjd|jjdy)Nz	<<Paste>>rArZ)rLrrTr%s  r$rzEditorWindow.pastes'		  -		

hr&c|jjddd|jjdd|jjdy)NrCrDzend-1crArZ)rLrSrRrTr%s  r$rzEditorWindow.select_alls?		%1		8U+		

hr&ct|jjddd|jjdy)NrCrDrprArZ)rLrQrTr%s  r$rzEditorWindow.remove_selections+		UE51		

hr&c|	|jj|jjdfd}|S)N)zsel.first+1czsel.last-1cct|jdzdk(r	ddyy#t$rYywxYw)NrMrrErA)rJr)r\
edge_indexedges_tableself_text_indexself_text_mark_sets r$move_at_edgez<EditorWindow.move_at_edge_if_selection.<locals>.move_at_edgesHaA%#K0&xZ1HI& s+	77)rLrrR)rrrrrrs ` @@@r$rz&EditorWindow.move_at_edge_if_selections9	))//!YY//5	r&c:|jjdy)Nz
<Meta-Delete>rZrr%s  r$rzEditorWindow.del_word_lefts		  1r&c:|jjdy)Nz<Meta-d>rZrr%s  r$rzEditorWindow.del_word_rights		  ,r&cBtj|jyrY)rfindrLr%s  r$rzEditorWindow.find_eventsDIIr&cBtj|jyrY)r
find_againrLr%s  r$rzEditorWindow.find_again_events$))$r&cBtj|jyrY)rfind_selectionrLr%s  r$rz!EditorWindow.find_selection_eventsdii(r&cntj|j|j|jyrY)r
rLrrr%s  r$rz EditorWindow.find_in_files_events!		$))TWWdjj1r&cBtj|jyrY)rrLr%s  r$rzEditorWindow.replace_events		"r&c|j}tj|ddj}|I|j	ddd|jd|d|j
d|jy)	Nz
Go To Linez/Enter a positive integer
('big' = end of file):rCrDrprA.0rZ)rLrGotoresultrQrRrTre)rr\rLlinenos    r$rzEditorWindow.goto_line_eventstyyl)&		
OOE5%0MM(vhbM2HHX$$&r&cd		|jjddj}t	j
|jdd|j}|D|jr|jj||S|jj||S#t$rd}YwxYw)NrErHrBzOpen ModulezAEnter the name of a Python module
to search on sys.path and open:)rLrstriprr
ModuleNamerrrrr)rrF	file_paths   r$open_modulezEditorWindow.open_modules		99==j9??AD$$		=2	f		
 zz

	*  +	D	s*B!!B/.B/c$|jyrY)rr%s  r$rzEditorWindow.open_module_eventsr&c|jj}|jjdk(r|s|j	}|yddlm}|j|j|y)NPyShellEditorWindowrZr)browser)	rr	__class____name__ridlelibr
ModuleBrowserr)rr\rrs    r$rz EditorWindow.open_module_browsersX77##''+@@'')H#dii2r&cFddlm}|j|jy)Nr)pathbrowserrZ)rrPathBrowserr)rr\rs   r$rzEditorWindow.open_path_browsers'		*r&cXddl}tjddg}|j|dy)Nrz-cz,from turtledemo.__main__ import main; main()F)shellrZ)
subprocessr
executablePopen)rr\rcmds    r$rzEditorWindow.open_turtle_demos1~~=?	E*r&c|p|dkDrj|jjdd|z|jjddd|jjddd|j	yyy)NrrAz%d.0rCrDrpz
insert +1l)rLrRrQrScenter)rrs  r$gotolinezEditorWindow.gotolinesc&1*IIx&9II  u5IIeX|<KKM	#-r&cv|rtjj|rytjjtjj	|\}}tjj|tvry|jjdd}|jdxrd|vS)NTrDz1.0 lineendz#!python)
rwrxr}splitextr7normcaserrLr
startswith)rrbaseextrVs     r$rzEditorWindow.ispythonsource%s277==2GG$$RWW%5%5h%?@	c
77C M1yy}}UM2t$9T)99r&cb|jr#|jj|d|_yyr$)runregister_maybe_terminaters r$
close_hookzEditorWindow.close_hook.s'::JJ11$7DJr&c||_yr$)r)rrs  r$set_close_hookzEditorWindow.set_close_hook3s	$r&c|jr|jj||j|jj	||jyr$)rfilename_changed_editrrupdate_windowlist_registryrrs r$rz!EditorWindow.filename_change_hook6sE::JJ,,T2 ++D1r&c|jry|j|jjr|j	|_|jr2|j
j
|j|jyy)N)filterafter)rrrrr*rinsertfilterafterrrs r$
_addcolorizerzEditorWindow._addcolorizer=s_::tww//0,,.DJ::HH&&djj		&Jr&c|jsy|jj|jj|jd|_yr$)rremovecolorsrremovefilterrs r$_rmcolorizerzEditorWindow._rmcolorizerFs9zz

!djj)
r&c	|j|jtj|j|j
|j
j
|j|jjyyr$)	r-r)r(r+rLrupdate_highlight_colorsr
update_colorsrs r$rzEditorWindow.ResetColorizerMsp !!$)),(557(++-)r&_c0|jd||j|}|r$||jvr|jd|dz|d|j|k(r|jd|n|jd|dz|j	|y)NERRORz
 wordstart
rAz+1c)rSr
IDENTCHARSrRrT)rrLposchars    r$colorize_syntax_errorz"EditorWindow.colorize_syntax_error\s{Wc"xx}DDOO+LL#"4c:488C= MM(C(MM(C%K0
r&c	tjdddd}|sd|jd<ytj|jd<y)NrGr(zcursor-blinkrlrJrrn)rrrLrm)rcursorblinks  r$rz EditorWindow.update_cursor_blinkgsF0((VE)*DIIo&*2)@)@DIIo&r&c	|j|jj|j|jjtj|j
dd}||jd<|jy)NrGr(rj)rupdate_fontrrrrrLr)rnew_fonts  r$	ResetFontzEditorWindow.ResetFontqsu8
())+())+##DIIv~F$		&r&c~	tjx|j_}|j	D]"\}}|j
j|g|$|jD]O}tj|}|s|j	D]"\}}|j
j|g|$Qyr$)	rGetCurrentKeySetr/default_keydefsitemsrLevent_deleteget_standard_extension_namesGetExtensionBindings)rkeydefsr\keylist
extensionNamexkeydefss      r$RemoveKeybindingszEditorWindow.RemoveKeybindingss	
3;2K2K2MM

%%mmo	4NE7"DII""5373	4!>>@	<M44]CH&.nn&6<NE7*DII**5;7;<	<r&c	tjx|j_}|j	|jD]+}tj|}|s|j	|-i}|jjD]4}i||d<|dD]"}|s|d||dt|dd<$6|jD]}|j|}|jt}|*|dz
}td|D]u}	|j|	dk(s|j|	d}
|
s-|j|	d}d}||vr|||vr|||}|sWt||}
|j!|	|
wy)Nrr`reacceleratorryrB)rL)rr@r/rArrDrEmenudefsrrrrrNrK	entrycgetget_acceleratorr)
rrFrHrI
menuEventDictrDrmenubarItemrpraccelitemNamer\s
             r$ApplyKeybindingszEditorWindow.ApplyKeybindingss	
3;2K2K2MM

%!>>@	.M44]CH##H-	.
MM**	JD%'M$q'"Q
JBFq'M$q'*747+;A+>?
J	J
 ==	GK==-D**S/C{1HCq#
G99U#y0 NN5-@E#'>>%#A "&-7'=+EE(5k(B8(L $3GU$CE ,,U,F
G	Gr&c\	|jstjdddd|_yy)NrGrkz
num-spacesrIrJ)rrrrrs r$rz#EditorWindow.set_notabs_indentwidths-M||'11&(<7< >Dr&cv	tj}|jd}|jt}||j
kDr|j
|j
dz||rA|j|D],}|j|d}|j|d|.||jd<y)Nrr`rr)
rGetAllExtraHelpSourcesListrrrrrr_extra_help_callbackr)r	help_listhelpmenuhelpmenu_lengthentryrs      r$rz$EditorWindow.reset_help_menu_entriessB779	==("..-T666OOT66:_M""$"
B//a9$$58S$A
B!)

fr&c	|ffd	}|S)Ncl|jdstjj|}tj
dddk(r	tj|ytj|y#t$r5}tjdt|jYd}~yd}~wwxYw)N)wwwhttpr@rArr)rrwrxrrr{rrrrrPrLrr)helpfilerrs  r$display_extra_helpz=EditorWindow._extra_help_callback.<locals>.display_extra_helps&&777++H5||BQ5(<LL*
)	<((/G #C<<<s	A55	B3>+B..B3r[)rresourcerbs`  r$rXz!EditorWindow._extra_help_callbacksG(0
	*"!r&c	g}|j}|rFtjj|r't	|dd5}|j}ddd|rItjj
|dz}||vr|j||jd|g}|D]:}d|vs#tjj|ddr*|j|<|Dcgc]	}||vs|}}d}|dt|}|r*	t	|d	dd5}|j|ddd|j&j(D]u}
|
j*}|j-dt.t1|D]C\}}
|
j3}
|
j5|
}|j7||dz|
z|dEwy#1swYuxYwcc}w#1swYxYw#t$rY}	t|jd
ds7d|j_t!j"d
d|	d|j$Yd}	~	
d}	~	wwxYw)Nutf_8r)r.errorsr4rrq1234567890ABCDEFGHIJKwrecentfiles_messageFTzIDLE Warningz)Cannot save Recent Files list to disk.
  z
Select OK to continue.rr?)ryrerz)rrwrxrr	readlinesabspathremoverAappendrO
writelinesrrrrjrshowwarningrLrrrrr	enumeraterstrip#_EditorWindow__recent_file_callbackr)rnew_filerf_listrrf_list_file	bad_pathsrxulcharsrf_fileerrinstancerDi	file_namecallbacks               r$rz%EditorWindow.update_recent_files_lists<9**		2i&y:
3=I&002
3wwx047H7"x(NN1h'		'Dt|277>>$q*#=  &	'%,EDt9/D4EE)!CL)
*)S#*9>0AH&&w/0..	.H--DKK3 )' 2
.9%,,.	#::9E  wqzC'7)'C)1+,!.
.	.=
3
3F
00
*tyy*?G48DII1**!%%(E*9!9 $yy	*
*sHG(	G2GG!G,G!G
GG!!	I*AH>>Ic|ffd	}|S)Nc>jj|y)N)editFile)rr)
fn_closurers r$open_recent_filez=EditorWindow.__recent_file_callback.<locals>.open_recent_filesGGLL*L-r&r[)rr}rs`  r$__recent_file_callbackz#EditorWindow.__recent_file_callbacks(1	.r&c8|j}|j}|r|r|dz|ztz}n|r|}n|r|}nd}|xs|xs|}|js
d|z}d|z}|jj||jj
|y)Nz - untitledz*%s*z*%s)short_title
long_title_py_version	get_savedrwm_titlewm_iconname)rshortlongricons     r$rzEditorWindow.saved_change_hooks  " TEMD(;6E
E
EE%%~~UNE4<D% T"r&c6|jjSr$)rrrs r$rzEditorWindow.get_saved%syy""$$r&c:|jj|yr$)r	set_saved)rflags  r$rzEditorWindow.set_saved(s		D!r&c8|jjyr$)r
reset_undors r$rzEditorWindow.reset_undo+s		r&ct|jj}|rtjj	|SdS)Nr)rrrwrxr7)rrs  r$rzEditorWindow.short_title.s-77##-5rww)E:Er&c6|jjxsdS)NrB)rrrs r$rzEditorWindow.long_title2sww%2%r&c$|jyrY)rr%s  r$rz EditorWindow.center_insert_event5s
r&c|j}|j\}}|j|}||z
}td||dzz
}|j	t|y)Nr`rC)rLgetwindowlinesrmaxrr)rmarkrLrbotrrPnewtops        r$rzEditorWindow.center9sYyy&&(S%sQ*+

5=!r&c|j}|jd}|jd}||k(r)|jdk(rt|d}||zdz
}||fS)Nrz@0,65535r`rP)rLrwinfo_heightrI)rrLrrrPs     r$rzEditorWindow.getwindowlinesAscyynnV$nnZ(#:$++-2h(F,"CCxr&c`|j}tt|j|Sr$)rLrIrr)rrrLs   r$rzEditorWindow.getlinenoKs$yy5D)*++r&c	|jj}tjd|}t	tt|jS)Nz(\d+)x(\d+)\+(-?\d+)\+(-?\d+))rwm_geometryrematchlistr*rIgroups)rgeomms   r$get_geometryzEditorWindow.get_geometryOs@&xx##%HH5t<CQXXZ())r&c$|jyrY)rr%s  r$rzEditorWindow.close_eventUs

r&cF|jr|jsk|jjdk7r|jj	|jj|jj
|jjSy)Nr)rrrrJ	deiconifylowerlift	maybesavers r$rzEditorWindow.maybesaveYsi77>>#88>>#X-HH&&( 

77$$&&
r&c	|j}t|dk7r|j|S#t$rYywxYw)Ncancel)rrP_closeAttributeError)rreplys  r$rzEditorWindow.closebs?	NN$E5zX%
L		s/2	>>cP|jjr&|j|jjtj|j
|j
|jjd|_d|_|jr!|jjd|_	d|_
d|_|jjd|_|jj|jr|jyy)N)rt)rrrrunregister_callbackrunload_extensionsrrrrLrrrdestroyrrs r$rzEditorWindow._closeks77))4773C3C)D""4#7#78 

	::JJDJ	 ??OOr&c2i|_|jyr$)
extensionsload_standard_extensionsrs r$rzEditorWindow.load_extensionss%%'r&ct|jjD]}t|ds|j	!i|_y)Nr)rrvaluesrr)rinss  r$rzEditorWindow.unload_extensionss?..01	CsG$			r&c|jD]}	|j|y#tdt|t	j
YExYw)NzFailed to load extension)rDload_extensionprintrepr	traceback	print_exc)rrFs  r$rz%EditorWindow.load_standard_extensionssO557	&D
&##D)	&
&0$t*=##%s	)+Ac.tjdS)NT)editor_only)r
GetExtensionsrs r$rDz)EditorWindow.get_standard_extension_namess%%$77r&ZzDummyzzdummyc|jj||}		tjd|zt}t||}tj|}t|dr|j|j|||}||j|<|r|j||D]x}|j!dd}|dddk(r|dd}|dddk(r|d	dd
k(r|dd	}|d	dd
k(r|dz}t||sS|j"j%|t||zyy#t
tf$rtj|}YwxYw#t
$rtd|wxYw)Nr>)packagez
Failed to import extension: rM-r1r`rGrqrI_event)extfilesr	importlib
import_module__package__ImportError	TypeErrorrrrrErrrMrrrrLr)	rrFfnamemodclsrFrvevent
methodnames	         r$rzEditorWindow.load_extensions

!!$-	
5--cEk;Oc4 //53
#OOCLL'2$i #(!
E#^^C5
 !n+!+ABJ!!n+ o,!+CRJ!o,'(2
3
+IINN673
+CD
E +
5--e4
5	2D9	s#D//$EEEEE1c	||jj}|j}||_|j	D]\}}|s	|j
|g|yr$)r/rArLrFrBr)rrFrLr\rGs     r$rzEditorWindow.apply_bindingssX0?mm33Gyy%mmo	0NE7u/w/	0r&c		||jj}||jj}|j}|j}|D]\}}|j|}|s|D]}||j
|\}	}
|	dddk(}|r|	dd}	t|	\}}	t||
}
||
fd}|r-|j|
t}|j|	|||
|y|j|	|||
y)Nr`!c&|j|yr$rrs  r$rez(EditorWindow.fill_menus.<locals>.commands++I6r&)ryrzrerLvariable)ryrzrerL)
r/rMrArrLrrrrOget_var_obj
BooleanVaradd_checkbuttonr)rrMrFrrLmname	entrylistrDr\ryrcheckbuttonrzrLrevars                r$rzEditorWindow.fill_menuss0	
}}--H?mm33G==yy (	BE9<<&D"
B=&&(',$E9#(!9#3K" %ab	'.u~$Iu"1'9"EK%)Y7""..y*E,,5I$+%(-*((u	185@)B%
B		Br&cb|j|}|r|j}|St|r$)rr	NameError)rrFrvalues    r$getvarzEditorWindow.getvars/t$GGIELD/!r&cd|j||}|r|j|yt|r$)rrr)rrFrvartypers     r$setvarzEditorWindow.setvars,tW-GGEND/!r&c	|jj|}|s#|r!||jx|j|<}|Sr$)rrrL)rrrrs    r$rzEditorWindow.get_var_objsE	##I.w181CCDi(3
r&c|jr;|jjd|xsd|jj|vSy)NTODOSTRINGr`)rrL
tag_prevrange	tag_names)r
text_indexs  r$is_char_in_stringzEditorWindow.is_char_in_stringsE::99**6:>?tyy22:>>
?r&c	|jjd}|jjd}||fS#t$rYywxYw)NrErHNNr)rrYrZs   r$get_selection_indicesz"EditorWindow.get_selection_indicessG	IIOOK0E99??:.D$;		s9<	AAcF|jdxst}t|S)Ntabs)rLTK_TABWIDTH_DEFAULTrI)rcurrents  r$get_tk_tabwidthzEditorWindow.get_tk_tabwidths ))F#:':7|r&c	|j}|j|k7rC|jjdd|dd|jd|z}|j|yy)Nrjr/z
-displayofn)r)rLrr+rmaster	configure)rnewtabwidthrLpixelss    r$set_tk_tabwidthzEditorWindow.set_tk_tabwidth"s^yy![0WW\\&)T&\"."%"35F
NNN'1r&c|rG|rE|j}d|cxkrdkr
nn||_|j|jk7rd|_|j	|jy)NrCrF)guess_indentrrrr)rrguessr|s    r$rz#EditorWindow.set_indentation_params-sS!!#AA{{#$ 4==0$T]]+r&c|j}|j\}}|r'|r%|j|||jd|y|j	dd}|dk(r6|jdddr|jdy|j
y|dd	vr|jdy|j}t|j|}|d
z
|jz|jz}d}		|dd}|	d
z}	t|j|}||ks|dd	vrn2|j|jd|	zd||kr#|jdd
||z
z|j|jy)NrArZr=rBrIrDz	insert-1crq 	r`rz
insert-%dcr?)rLrrrRrrLbellrrO
expandtabsrrrArr)
rr\rLrYrZcharsrhavewant
ncharsdeleteds
          r$rz"EditorWindow.smart_backspace_event6syy002tTKKt$MM(E*+X6B;||Hc51K(		"IU"KK$==5##H-.d...$2B2BB
#2JE)A-Mu''12Dt|uRy5	
L=0(;$;KK#"533
5r&c$|j}|j\}}|j	|rh|rft|t|k7r+|jj||j
S|j|||jd||jdd}t||j\}}|t|k(r|j||jzng|jrd}n;t|j!|j}|j}	d|	||	zz
z}|j#d||j$|j'd	|j
y#|j
wxYw)NrAr=r@r?rZ)rLrr
index2linerrrrrRrget_line_indentrrOreindent_torrr
rArrT)
rr\rLrYrZprefixraw	effectivepadrs
          r$rzEditorWindow.smart_indent_eventasRyy002t	#e$
4(88<<;;EB(
  "'E4(

h.XX0(;F,VT]]CNCc&k!  T-=-=!=><<C #F$5$5dmm$D EI((AY]!23CHc4+F+FGHHX  "D  "s5E=7C4E==Fc	|j}|j\}}|j	|r&|r$|j|||j	d||jdd}dt
|}}||kr||dvr|dz
}||kr||dvr||k(r@|jdd|j	|jd|jy|d|}d}|r|ddvr|dd}|dz
}|r|ddvr|r|jd	|zd|jddvr%|jd|jddvr%|jdd|jt|jd}	tj|j|j }
|j"s|j$D]k}t'|	|z
d}t)|d
z}
|j|
d}|
j+||
j-|j/|
}||dk(skn|
j1xsdnP|j3dd}|r|d}
nd}
|j|
d}|
j+||
j1d|
j5}|tj6k7r|tj8k(rn|tj:k(r|jd||jn|tj<k(r |j?|
jAnd|tjBk(rQ|
jEdkDr|jd||jn |j?|
jG		|jd|jy|
jI}|jd||j|
jKr|jM|n#|r!|
jOr|jQ|	|jd|jy#|jd|jwxYw)
NrAr=rrr`r4rZrqzinsert - %d charsrconsolerD))rLrrrrRrrOrArrTrrrrParserrrrrrrset_codefind_good_parse_start_build_char_in_string_funcset_lorget_continuation_typeC_NONEC_STRING_FIRST_LINEC_STRING_NEXT_LINES	C_BRACKETrcompute_bracket_indentC_BACKSLASHget_num_lines_in_stmtcompute_backslash_indentget_base_indent_stringis_block_openerris_block_closerr)rr\rLrYrZrVr|rindentlnorcontextstartatstartatindexrawtextbodrrBs                  r$rz%EditorWindow.newline_and_indent_events	yy002te	#E4(

h.88.9Dc$iqAa%DGu,Qa%DGu,Av. 779j
HHX  "k"1XFA48u,CRyQ48u,/!3X>((8$-H%((8$-
KK$(C(CDTZZ12Ct//?A((#55G!#-3G#'=4#7L"hh|X>GJJw'11 ;;LIKC'Q,"&&y(;#$Q4L#(L((<:

7#'')AGNN"333'555KK&$2M2MN'+++
$$Q%=%=%?@'---..014Hf$($?$?A(()C)C)EF
HHX  "--/FKK&$*E*EF  "''.A--/**51HHX  "
HHX  "s4A$Q"Q#QAQC#Q3E(Q>A2Q#Q6c&||jfd}|S)Nc||d|zzS)Nz+%dcr[)offset_startindex_iciss   r$innerz6EditorWindow._build_char_in_string_func.<locals>.innersv677r&)r)r
startindexr7s   r$rz'EditorWindow._build_char_in_string_funcs&0..	8r&cl|jr$t||j\}}d|zd|zzSd|zS)Nr@r?)rdivmodr)rrntabsnspacess    r$_make_blankszEditorWindow._make_blankss9<<#At}}5NE7%<#-//7Nr&c|j}|j|jdddr|jdd|r,|j	d|j||j|jy)Nr=z!=rA)rLrrLrrAr=rr)rrgrLs   r$rzEditorWindow.reindent_tosjyy<<*D(;KK*H5KK$"3"3F";33
5r&ct|jj\}}|r9|r7t||j\}}t||j\}}||z
Sdx}}||z
SNr)IndentSearcherrLrprr)ropenerindentedrindentsmallindentlarges      r$rzEditorWindow.guess_indent%sq)$))488:h.vt}}EC.xGC[(()*)K+[((r&c|jy|jjr|jjd}n|jjd}|j	dd|dy)NShowHiderrrtz
 Line Numbers)rDrry)ris_shownhide_sidebarshow_sidebarr)rr\
menu_labels   r$rz&EditorWindow.toggle_line_numbers_event.sp$%%**,J**,JI](2|=%A		Cr&)NNNNr$)rAr)T)r
__module____qualname__idlelib.percolatorr)idlelib.colorizerr*r+idlelib.undor,idlelib.iomenur-r.rr/idlelib.statusbarr0idlelib.autocompleter1idlelib.autoexpandr2idlelib.calltipr3idlelib.codecontextr4idlelib.sidebarr5idlelib.formatr6r7r8r9idlelib.parenmatchr:idlelib.zoomheightr;rgetfilesystemencodingfilesystemencodingrvrrrr"rrrrrrerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr!rr)r-rstring
ascii_lettersdigitsr5r8rr>rJrTrrrXrrsrrrrrrrrrrrrrrrrrrrDrrrrrrrrrrrrrrrrr=rrrr[r&r$r(r(3s->*2 01-'/+MM--2224H!`ID	4
)V7 ;&J#'J)1
1
	
E!J	,K

'4	

(0	
:
%K.%%

5;J	A"
<&GP>)"
",.\ 
#$%"F&",*'((&8	9
HE80$BL""$(,)V!#Fq#p )Cr&r(c*tt|Sr$)rIr)rs r$rr<suU|r&z[ \t]*c	tj|}|jt|j	j|fSr$)_line_indent_rerrprOgroupr
)rVrrs   r$rrAs@
	d#A557C	,,X6777r&cVeZdZ	dZdZejejdfdZdZ	y)rAcJ||_dx|_|_dx|_|_yr@)rLr|finishedblkopenlineindentedline)rrLs  r$r"zIndentSearcher.__init__Ns'	!""/334,r&c|jry|jdzx}|_t|dz}|jj	|ddry|jj||dzS)NrBr`rz>=rpz lineend+1c)rgr|rrLrLr)rr|rs   r$readlinezIndentSearcher.readlineSs`==VVaZDFAw~99T4/yy}}T4-#788r&)classdefforifrtrywhilewithc	|jry||k(r||vr||_y||k(r|jr||_d|_yyy)Nr`)rgrhri)	rrKtokenstartrprVINDENTNAMEOPENERSs	         r$
tokeneaterzIndentSearcher.tokeneater\sI
==
T\ew.#D
V^ 0 0 $DDM!1^r&c		tj|j}|D]}|j|	|j|jfS#tjt
f$rY3wxYwr$)tokenizegenerate_tokensrkry
TokenErrorSyntaxErrorrhri)rtokensrts   r$rpzIndentSearcher.runisu		--dmm<F
('
(
!2!222##[1		s5AA-,A-N)
rrMrNr"rkr{rvrwryrpr[r&r$rArAKs.:4
9#// 

-3r&rAcT	|jd}|dk\r|d|||dzdz}||fS)Nr1rr`)r)sr|s  r$rrzs?		
sAAv
bqEAacdGOa4Kr&[]/)bracketleftbracketrightslashc	|j|}|rtjr|dvry|d}tjdd|}tjdd|}tjdd|}tjd	d
|}tjdd|}tjd
d|}tjdd|}tjdd|}tjdd|}|S)N>r^rWr_rBrz-[a-z]\bc>|jjSr$)rdupperrs r$r]z!get_accelerator.<locals>.<lambda>saggioo&7r&z\b\w+\bcftj|j|jSr$)keynamesrrdrs r$r]z!get_accelerator.<locals>.<lambda>sX\\!'')QWWY%Gr&zKey-Cancelz
Ctrl-BreakzControl-zCtrl-r+z><r?rGrI)rr
	isCocoaTkrsub)rFrrGrs    r$rOrOskk)$G
))+	>616
A
{7;A
zGKA
vr1A
xq)A
z7A&A
sCA
tS!A
sBA
sBAHr&c|j}|jddd|jddd|jdddy)	Ntcl_wordBreakAfterza brr
tcl_wordcharsz\wtcl_nonwordcharsz\W)r+r)rr+s  r$
fixwordbreaksrs?
BGG %+GGE?E*GGE%u-r&c@|}t|tjddrtjd}nd}tj|dt||}|j}d|d<tdD]&}|jdd|zt|zdz(y)	Nr`)rr
rPrAz  r4)
rrargvr
setupAppr(rLrNrArP)rrrrlrLr|s      r$_editor_windowrsD$
xx|88A;
OOD$TH5D99DDN
2Y6Hd1fs1vo456r&__main__)rGzidlelib.idle_test.test_editorrCF)	verbosityexit)rp):
importlib.abcrimportlib.utilrwr{rr^rr{rrtkintertkinter.fontrtkinter.ttkrrridlelib.configrrr	r
rrr
idlelib.multicallrrrrridlelib.treeridlelib.utilrrrpython_versionrrr%r(rcompilercrrArrrOrrrunittestrGidlelib.idle_test.htestrpr[r&r$<module>rs		

! # .$&///11		!
FCFCR0"**Y'8*3*3^$

(
V.
6$z	(AEB+r&