Viewing File: /opt/alt/python35/lib64/python3.5/idlelib/__pycache__/EditorWindow.cpython-35.opt-2.pyc



];@s}ddlZddlZddlZddlZddlZddlZddlZddlZddlTddl	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)kryddl3Z3e3j4d*d+d,d-d.dd/l5m6Z6e6e1dS)0N)*)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)Nz%s%sz%s	candidatezrc%sfinalr)sysversion_info)majorminormicrolevelserialreleaser1/opt/alt/python35/lib64/python3.5/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)NrzEditorWindow.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ddl
mZddlmZddlmZejZd	Zd	d	d	d	d
dZdd
ZddZddZddZd	ddZdddddddgZd$d%Zd&d'Zd	Z d(d)Z!dgZ"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/dFdGZ0dHdIZ1dJdKZ2dLdMZ3dNdOZ4dPdQZ5dRdSZ6dTdUZ7dVdWZ8d	dXdYZ9d	dZd[Z:d	d\d]Z;d	d^d_Z<d`daZ=dbdcZ>dddeZ?dfdgZ@dhdiZAdjdkZBdldmZCdndoZDeEjFeEjGdpZHdqdrZIdsdtZJdudvZKdwdxZLdydzZMd{d|ZNd}d~ZOd	ddZPddZQddZRddZSddZTddZUddZVddZWddZXdddZYddZZdddZ[ddZ\ddZ]ddZ^ddZ_ddZ`ddZaddZbddZcddZdddZed	ddZfd	d	ddZgddZhd	ddZid	ddZjddZkddZlddZmddZndddZoddZpddZqddZrddZsddZtddZuddZvddZwddZxddZyddZzddZ{ddZ|ddZ}ddZ~ddZddZddZd	S)EditorWindowr)
Percolator)ColorDelegatorcolor_config)
UndoDelegator)	IOBindingencoding)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.htmllinuxz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=widthtypeinttextZpadxwrapZnoneZhighlightthicknessrheightg!@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)rarbrc)r=help_urlr-r.r/rbase_prefixplatformcountrisdirrisfilenormpathflistrootps1AttributeErrorMenumenubarrZListedTopleveltopvarstkinter_varsZinversedict
instance_dictr	Z
GetUserCfgDirrecent_files_pathFrame
text_frameZ	ScrollbarrM	GetOptionrOZ	TkVersionrZTextrRZfocused_widget
createmenubarapply_bindingsprotocolcloser3close_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 rnfilenamekeyroZdochomeZpyverZbasepathZchmfilertrzrMZtext_optionsrRZ	usespacesrrr	is_py_srcrKrerrrr!gs<						
		









	
		
	
	%	
	





	zEditorWindow.__init__cCst|trty|j|j}WnLtk
rsy|j|j}Wn!tk
rn|jd}YnXYnXtjdd|S)Nz	iso8859-1u[𐀀-􏿿]u�)
isinstancebytesdecodefilesystemencodingUnicodeDecodeErrorrCresub)r rrrr_filename_to_unicode@s

z!EditorWindow._filename_to_unicodecCs)|jj\}}|jj|dS)NrV)rZdefaultfilenamernnew)r rWr1basenamerrrrOszEditorWindow.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.rY 	insertzinsert linestart+cselz1.0rez	sel.firstZ	my_anchor<zsel.last>rV)rr)stateZkeysymrRrcomparerQsplitrrangelenstr
tag_removemark_settag_addsee)r rWZinsertptlineZlineatdestfirstlastrrrrTs@"(%
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)NrUrYZborderwidthZ
backgroundZgrey75rJZ	_padding1z    r[columnzCol: ?rzLn: ?r\z<<set-line-and-column>>z<KeyRelease>z<ButtonRelease>)rFrt
status_barryrri	set_labelrrZBOTTOMXrRr3set_line_and_column	event_addZ
after_idle)r seprrrrs!
zEditorWindow.set_status_barcCsS|jjtjd\}}|jjdd||jjdd|dS)NrrzCol: %srzLn: %s)rRrZINSERTrrr)r rWrrrrrrs!z EditorWindow.set_line_and_columnfile_Fileedit_EditformatF_ormatrun_Runoptions_Optionsrd_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)rsr
menu_specsprepstrrrZadd_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)NrdrerYrf)rrrdeleterZadd_windows_to_menu)r rKrerrrrs
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_rmenurWrriconfigrmenu_specs
ValueErrorgetattrZentryconfigureZtk_popupZx_rootZy_root)	r rWrZiswinitemr	eventnameZverify_staterrrrrs(#	
		
zEditorWindow.right_menu_eventClose<<close-window>>cCst|jdd}xj|jD]_}|d|d}}|dk	rt|j|dd}|jd|d|q|jqW||_dS)NrrrYcSs|j|dS)N)event_generate)rRrrrrrZsz(EditorWindow.make_rmenu.<locals>.commandrrZ)rrrRradd_commandrr)r rrrrrZrrrrs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	CLIPBOARDr!r")rRtkcallr#)r rrrrmenu_check_pastes
 
	zEditorWindow.rmenu_check_pastecCstj|jddS)Nz
About IDLE)r
ZAboutDialogrt)r rWrrrrszEditorWindow.about_dialogcCstj|jddS)NZSettings)rZConfigDialogrt)r rWrrrrszEditorWindow.config_dialogcCs/|jr|j}n	|j}tj|dS)N)rortrZ
show_idlehelp)r rWrrrrrs		zEditorWindow.help_dialogcCstjdddkr}ytj|jWqtk
ry}z*tjdddt|d|j	WYdd}~XqXnt
j|jdS)NrHrItitlezDocument Start FailuremessagerrV)rrir-	startfilergOSErrorrrrrR
webbrowseropen)r rWwhyrrrrs,zEditorWindow.python_docscCs|jjddS)Nz<<Cut>>rV)rRr)r rWrrrrszEditorWindow.cutcCs*|jjdsdS|jjddS)Nrz<<Copy>>rV)rRZ
tag_rangesr)r rWrrrrszEditorWindow.copycCs$|jjd|jjddS)Nz	<<Paste>>rrV)rRrr)r rWrrrr&szEditorWindow.pastecCs=|jjddd|jjdd|jjddS)Nrz1.0zend-1crrV)rRrrr)r rWrrrr+szEditorWindow.select_allcCs*|jjddd|jjddS)Nrz1.0rer)rRrr)r rWrrrr1szEditorWindow.remove_selectioncs=|jj|jjdfdd}|S)Nsel.first+1csel.last-1ccsK|jd@dkrGyddWntk
rFYnXdS)NrSrz	sel.firstr)rr#)rW)
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 r0r4r)r0r1r2r3rr5s
z&EditorWindow.move_at_edge_if_selectioncCs|jjddS)Nz
<Meta-Delete>rV)rRr)r rWrrrrIszEditorWindow.del_word_leftcCs|jjddS)Nz<Meta-d>rV)rRr)r rWrrrrMszEditorWindow.del_word_rightcCstj|jdS)NrV)rfindrR)r rWrrrrQszEditorWindow.find_eventcCstj|jdS)NrV)rZ
find_againrR)r rWrrrrUszEditorWindow.find_again_eventcCstj|jdS)NrV)rZfind_selectionrR)r rWrrrrYsz!EditorWindow.find_selection_eventcCs tj|j|j|jdS)NrV)rZgreprRrrn)r rWrrrr]sz EditorWindow.find_in_files_eventcCstj|jdS)NrV)rreplacerR)r rWrrrraszEditorWindow.replace_eventcCsp|j}tjddd|}|dkr1dS|dkrK|jdS|jdd||jddS)NZGotozGo to line number:rrVrrz%d.0)rRrrbellrr)r rWrRlinenorrrres		
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)rRrr#striprZ	askstring	importlibutil	find_specrImportErrorrrrrloaderabcSourceLoaderget_filenamerqrnr,rr)r rWrLspecmsgZ	file_pathrrrrqsH
	


	
		zEditorWindow.open_modulecCs|jj}|jjdko!|s@|j}|dkr@dStjj|\}}tjj|\}}ddl	m
}|j
|j||gdS)NZPyShellEditorWindowr)ClassBrowser)rr	__class__r:rr-r.rsplitextidlelibrFrn)r rWrheadtailbaseextrFrrrrszEditorWindow.open_class_browsercCs$ddlm}|j|jdS)Nr)PathBrowser)rIrNrn)r rWrNrrrrszEditorWindow.open_path_browsercCs5ddl}tjddg}|j|dddS)Nrz-cz,from turtledemo.__main__ import main; main()shellF)
subprocessr
executablePopen)r rWrPcmdrrrrs
	zEditorWindow.open_turtle_democCsi|dk	re|dkre|jjdd||jjddd|jjddd|jdS)Nrrz%d.0rz1.0rez
insert +1l)rRrrrcenter)r r8rrrgotolines
zEditorWindow.gotolinecCs|stjj|rdStjjtjj|\}}tjj|dkr]dS|jjdd}|jdod|kS)	NT.py.pywz1.0z1.0 lineendz#!python)rVrW)	r-r.rkrHrnormcaserRr
startswith)r rrLrMrrrrrs$zEditorWindow.ispythonsourcecCs&|jr"|jj|d|_dS)N)rnZunregister_maybe_terminate)r rrr
close_hooks	zEditorWindow.close_hookcCs
||_dS)N)r[)r r[rrrset_close_hookszEditorWindow.set_close_hookcCsA|jr|jj||j|jj||jdS)N)rnZfilename_changed_editrrtZupdate_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removecolorsrr])r rrr_rmcolorizers
	
zEditorWindow._rmcolorizercCs(|j|jtj|jdS)N)r_r^r=r@rR)r rrrrs

zEditorWindow.ResetColorizer_cCs|jd||j|}|rK||jkrK|jd|d|d|j|krs|jd|n|jd|d|j|dS)NERRORz
 wordstart
rz+1c)rr
IDENTCHARSrr)r rRposcharrrrcolorize_syntax_errorsz"EditorWindow.colorize_syntax_errorcCs#tj|jdd|jd<dS)NrNr=r])r	rrorR)r rrr	ResetFontszEditorWindow.ResetFontcCstj|j_}x-|jD]\}}|jj||q#WxY|jD]K}tj|}|rSx-|jD]\}}|jj||q{WqSWdS)N)	r	GetCurrentKeySetrDdefault_keydefsitemsrRZevent_deleteget_standard_extension_namesGetExtensionBindings)r keydefsrWkeylist
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)NrrYrZacceleratorrr9)r	rhrDrir}rkrlmenudefsr
rrr
rrPZ	entrycgetget_acceleratorZentryconfig)
r rmrorpZ
menuEventDictrKrZmenubarItemrerZaccelZitemNamerWrrrApplyKeybindingss<
,

zEditorWindow.ApplyKeybindingscCs+|js'tjddddd|_dS)NrNr_z
num-spacesrPrQ)rr	r{r)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)NrrYrrrZ)
r	ZGetAllExtraHelpSourcesListrrr
rrr"_EditorWindow__extra_help_callbackr)r Z	help_listZhelpmenuZhelpmenu_lengthentryrSrrrr6s


z$EditorWindow.reset_help_menu_entriescs|fdd}|S)Ncs|jd	s!tjj|}tjdddkrytj|Wqtk
r}z*tj	dddt
|djWYdd}~XqXn
tj
|dS)
NwwwhttprHrIr'zDocument Start Failurer(r)rxry)rZr-r.rmrrir)r*rrrrRr+r,)helpfiler-)r rrdisplay_extra_helpIs,z>EditorWindow.__extra_help_callback.<locals>.display_extra_helpr)r rzr{r)r rZ__extra_help_callbackGsz"EditorWindow.__extra_help_callbackcsmg}tjj|jrOt|jddddd}|j}WdQRX|rtjj|d}||kr|j||jd|gxD|D]<}d|kstjj|ddrj	|qWfd
d|D}d}|dt
|}y9t|jd
dddd}|j|WdQRXWnxtk
r}zXt
|jddsd|j_tjdddd|jt|d|jWYdd}~XnXx|jjD]}|j}	|	jdtxlt|D]^\}
}|j}|j|}|j|}
|	jd||
d|d|
ddqWqWdS)NrrCutf_8errorsr6rbrrYcs"g|]}|kr|qSrr).0r.)	bad_pathsrr
<listcomp>gs	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.rrrrZrrf)r-r.rrxr,	readlinesr0removerappendr
writelinesr*rrorrshowwarningrrrRrtrwrrr
	enumeraterstrip#_EditorWindow__recent_file_callbackr)r new_fileZrf_listZrf_list_filer.ZulcharsZrf_fileerrinstancerKi	file_nameZ
ufile_namecallbackr)rrrVsL

)	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_savedrtZwm_titleZwm_iconname)r Zshortlongr'Ziconrrrrs		

zEditorWindow.saved_change_hookcCs
|jjS)N)rr)r rrrrszEditorWindow.get_savedcCs|jj|dS)N)r	set_saved)r flagrrrrszEditorWindow.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)Nr9)rrr)r rrrrszEditorWindow.long_titlecCs|jdS)N)rT)r rWrrrrsz EditorWindow.center_insert_eventrcCsb|j}|j\}}|j|}||}td||d}|jt|dS)NrYr#)rRgetwindowlines	getlinenomaxrfloat)r markrRrtbotr8rUZnewtoprrrrTs	
zEditorWindow.centercCsm|j}|jd}|jd}||krc|jdkrct|d}||d}||fS)Nz@0,0z@0,65535rYrU)rRrZwinfo_heightrQ)r rRrtrrUrrrrs	zEditorWindow.getwindowlinescCs"|j}tt|j|S)N)rRrQrr)r rrRrrrrs	zEditorWindow.getlinenocCs:|jj}tjd|}ttt|jS)Nz(\d+)x(\d+)\+(-?\d+)\+(-?\d+))rtZwm_geometryrmatchlistmaprQgroups)r r9mrrrget_geometryszEditorWindow.get_geometrycCs|jdS)N)r)r rWrrrrszEditorWindow.close_eventcCsb|jr^|jsQ|jjdkr7|jj|jj|jj|jjSdS)Nr")rrrtrr7lowerr8	maybesave)r rrrrs	


zEditorWindow.maybesavecCs,|j}t|dkr(|j|S)Ncancel)rr_close)r Zreplyrrrrs
zEditorWindow.closecCs|jjr"|jd|jjtj|j|j|jjd|_d|_|j	r}|j	jdd|_	d|_
d|_|jjd|_|j
j|jr|jdS)NrF)rrrrZunregister_callbackrunload_extensionsrrrrRrvrrtr4r[)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)rkload_extensionprintrepr	traceback	print_exc)r rLrrrrsz%EditorWindow.load_standard_extensionscCstjddS)NZeditor_onlyT)r	Z
GetExtensions)r rrrrksz)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: rs-r`rYrrZ_eventrfrf)r<
import_module__package__r?	TypeErrorrrr	rlrrrsrr}r6rRr3)r rLmodclsrmrZveventZ
methodnamerrrrs2





zEditorWindow.load_extensioncCsa|dkr|jj}|j}||_x0|jD]"\}}|r7|j||q7WdS)N)rDrirRrmrjr)r rmrRrWrnrrrr}&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)
NrY!cSs|j|dS)N)r)rRrrrrrZHsz(EditorWindow.fill_menus.<locals>.commandrrrZrrvariable)
rDrsrirrRrrr
rtget_var_objZ
BooleanVarZadd_checkbuttonr)r rsrmrrRZmnameZ	entrylistrKrwrrZcheckbuttonrrrrZvarrrrr/s8		


zEditorWindow.fill_menuscCs5|j|}|r%|j}|St|dS)N)rr	NameError)r rLrvaluerrrgetvarTs
zEditorWindow.getvarcCs8|j||}|r(|j|nt|dS)N)rrr)r rLrvartyperrrrsetvar\szEditorWindow.setvarcCs=|jj|}|r9|r9||j|j|<}|S)N)rvrrR)r rLrrrrrrcs
zEditorWindow.get_var_objcCs<|jr4|jjd|p3d|jj|kSdSdS)NZTODOSTRINGrY)rrR
tag_prevrangeZ	tag_names)r Z
text_indexrrris_char_in_stringss	zEditorWindow.is_char_in_stringcCsOy2|jjd}|jjd}||fSWntk
rJdSYnXdS)Nz	sel.firstzsel.last)NN)rRrr#)r rrrrrget_selection_indicess
z"EditorWindow.get_selection_indicescCs|jdpt}t|S)Ntabs)rRTK_TABWIDTH_DEFAULTrQ)r currentrrrget_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|j
|j
}|jrtj
jd
d}	nd}	d}
x]||	kr1P|dd}|
d}
t|j	|}||ks||dd	kr$Pq$W|j|jd|
d||kr|jdd
|||jdS)NrrVzinsert linestartr9rz1.0z	insert-1crYz 	rbrz
insert-%dcrrfrfrfrf)rRrrrrrr7rr
expandtabsrrrrprrrr)r rWrRrrcharsrZhaveZwantlast_line_of_promptZ
ncharsdeletedrrrrsH	

		


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 linestartrrrV)rRrr
index2linerrrr
classifywsrrreindent_torrrrrr)
r rWrRrrprefixraw	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|d
dkr4||	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
jkrz|t
jkrn|t
jkr|jd|no|t
jkr,|j|j nJ|t
j!krv|j"dkr`|jd|qv|j|j#ndS|j$}|jd||j%r|j&|n|r|j'r|j(|dSWd|j)d|j*XdS)Nrzinsert linestartrz 	rYrbrVzinsert - %d charsz.0Zconsolez1.0rfrfrf)+rRrrrrrrrrrprrrrZParserrrrrrrZset_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_indentZget_base_indent_stringZis_block_openerrZis_block_closerrrr)r rWrRrrrrrindentrlnorcontextZstartatZstartatindexZrawtextZbodr|rrrrrs	
%	





z%EditorWindow.newline_and_indent_eventcCs||jdd}|S)NcSs||d|S)Nz+%dcr)offsetZ_startindexZ_icisrrrinnercsz6EditorWindow._build_char_in_string_func.<locals>.inner)r)r Z
startindexrrrrrbsz'EditorWindow._build_char_in_string_funcc
Cs|j\}}}}xptt|D]\}||}|r+t||j\}}	|	|j}	|j|	||d||<q+W|j||||dS)NrV)
get_regionrrrrr_make_blanks
set_region)
r rWrJrKrlinesrdrrrrrrrhs

%z EditorWindow.indent_region_eventc
Cs|j\}}}}xytt|D]e}||}|r+t||j\}}	t|	|jd}	|j|	||d||<q+W|j||||dS)NrrV)	rrrrrrrrr)
r rWrJrKrrrdrrrrrrrss
%z EditorWindow.dedent_region_eventcCsk|j\}}}}x6tt|dD]}||}d|||<q/W|j||||dS)NrYz##)rrrr)r rWrJrKrrrdrrrrr~s

z!EditorWindow.comment_region_eventcCs|j\}}}}xtt|D]r}||}|sDq+|dddkrm|dd}n&|dddkr|dd}|||<q+W|j||||dS)Nr#z##rY#)rrrr)r rWrJrKrrrdrrrrrs
z#EditorWindow.uncomment_region_eventc
Cs|j\}}}}|j}|dkr4dSxxtt|D]d}||}|rGt||\}	}
t|
|\}}d|d|||	d||<qGW|j||||dS)Nrr)r_asktabwidthrrrdivmodr)
r rWrJrKrrrrdrrrntabsnspacesrrrrs
(z EditorWindow.tabify_region_eventcCs|j\}}}}|j}|dkr4dSx1tt|D]}||j|||<qGW|j||||dS)N)rrrrrr)r rWrJrKrrrrdrrrrs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 columnsrrrV)rr)rr)rrrRr)r rWrrrrs!
	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)rr:minvaluer#maxvaluerV)rrRrr)r rWrrrrrs				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 +1crb)rRrrrr)r rRrrrJrKrrrrrrs	zEditorWindow.get_regioncCs|j}dj|}||kr2|jdS|jddd|jd||j|j|||j|||j|j	d|ddS)Nrbrz1.0rer)
rRr/r7rrrrrrr)r rJrKrrrRnewcharsrrrrs	


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)rRrrrrrr)r rrRrrrrs	
zEditorWindow.reindent_tocCs.|jddd|jd|jddddS)	Nz	Tab widthzColumns per tab? (2-16)rr:rr#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)rdr)rr)rrN)r:r;r<Zidlelib.Percolatorr>Zidlelib.ColorDelegatorr?r@Zidlelib.UndoDelegatorrAZidlelib.IOBindingrBrCrIrDtkinterrEZidlelib.MultiStatusBarrFrgetfilesystemencodingrrgr!rrrrrr	r|rrrrrr rr&rrrrrrrrrrrrrrrrrrrrrrrUrr[r\rr^r_rstring
ascii_lettersdigitsrcrfrgrqrurrrvrrrrrrrrrrTrrrrrrrrrrrkrr}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr=[s+	
		+	$.	
		%	0#k


	r=cCstt|S)N)rQr)rrrrrsrcCstd}}x]|D]U}|dkr:|d}|d}q|dkre|d}||d|}qPqW||fS)NrrrYrr)srrrZchrrrrs




rc@sOeZdZddZddZejejdddZd
dZ	dS)rcCs6||_||_d|_|_d|_|_dS)Nr)rRrrfinishedblkopenlineindentedline)r rRrrrrr!0s		zIndentSearcher.__init__cCsd|jr
dS|jd}|_t|d}|jj|ddrMdS|jj||dS)Nr9rYz.0z>=rez lineend+1c)rrrrRrr)r rrrrrreadline6s	zIndentSearcher.readlineclassdefforiftrywhilec		Cs[|jrnK||kr0||kr0||_n'||krW|jrW||_d|_dS)NrY)rrr)	r rPtokenstartrerINDENTNAMEZOPENERSrrr
tokeneater?s		zIndentSearcher.tokeneatercCstj}|jt_zVy4tj|j}x|D]}|j|q4WWntjtfk
riYnXWd|t_X|j|j	fS)N)
	_tokenizetabsizergenerate_tokensrr
TokenErrorSyntaxErrorrr)r Zsave_tabsizetokensrrrrrKs	
	
zIndentSearcher.runN)rrrrrr)
r:r;r<r!rrrrrrrrrrr)s
	rcCsG|jd}|dkr=|d|||dd}||fS)Nr`rrY)r5)rrrrrr
]s"r
Zbracketleft[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>>r9rz-[a-z]\bcSs|jjS)N)groupupper)rrrrrXvsz!get_accelerator.<locals>.<lambda>z\b\w+\bcSstj|j|jS)N)keynamesrr)rrrrrXwszKey-ZCancelz
Ctrl-BreakzControl-zCtrl-rr,z><rrr>rrr)rr
Z	isCocoaTkrr)rmrrnrrrrrtls"	
rtcCsF|j}|jddd|jddd|jddddS)	NZtcl_wordBreakAfterza brrZ
tcl_wordcharsz[a-zA-Z0-9_]Ztcl_nonwordcharsz
[^a-zA-Z0-9_])r$r%)ror$rrr
fixwordbreakss	rcCsx|}t|tjddr3tjd}nd}tj|dtd|d|}|jjd|jdS)NrYrorz<<close-all-windows>>)	rrargvr
ZsetupAppr=rRr3r)rrorrrrr_editor_windows
r__main__zidlelib.idle_test.test_editor	verbosityr#exitF)r)7r<Z
importlib.abcimportlib.utilr-rirrrrZtkinter.simpledialogZsimpledialogrZtkinter.messageboxZ
messageboxrrr+Zidlelib.MultiCallrrIrrrrrZidlelib.configHandlerr	r
rrr
rrZpython_versionrrobjectrZ
helpDialogr=rrtokenizerrr
rrtrrr:ZunittestrNZidlelib.idle_test.htestrrrrr<module>sf
-	
4
	
Back to Directory File Manager