%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python3.8/idlelib/__pycache__/
Upload File :
Create Path :
Current File : //usr/local/lib/python3.8/idlelib/__pycache__/editor.cpython-38.pyc

U

q©ßa ã@säddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlTddlm
Z
ddlmZddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddl m!Z!ddlm"Z"dZ#de $¡Z%ejdkZ&dd„Z'Gdd„dƒZ(dd„Z)e *d¡Z+dd„Z,Gd d!„d!ƒZ-d"d#„Z.d$d%d&d'œZ/d(d)„Z0d*d+„Z1d,d-„Z2e3d.kràdd/l4m5Z5e5d0d1d2d3dd4l6m7Z7e7e2ƒdS)5éN)Ú*)ÚFont)Ú	Scrollbar)Úsimpledialog)Ú
messagebox)ÚidleConf)Úconfigdialog)Úgrep)Úhelp)Ú
help_about)Úmacosx)ÚMultiCallCreator)Úpyparse)Úquery)Úreplace)Úsearch)Úwheel_event)Úwindowéz (%s)ÚdarwincCsbtj\}}}}}d||f}|d|f7}|dkrB|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%sÚfinalr)ÚsysÚversion_info)ÚmajorÚminorÚmicroÚlevelÚserialÚrelease©r ú*/usr/local/lib/python3.8/idlelib/editor.pyÚ_sphinx_version%sr"c@sFeZdZddlmZddlmZmZddlm	Z	ddl
mZmZddl
mZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZmZmZmZddl m!Z!ddl"m#Z#ddl$m%Z%e& '¡Z(dZ)dZ*dZ+dßdd„Z,dàdd„Z-dd„Z.dd„Z/dd„Z0dd„Z1dádd „Z2d!d"d#d$d%d&d'gZ3d(d)„Z4d*d+„Z5d,d-„Z6d.d/„Z7d0d1„Z8dZ9d2d3„Z:d4gZ;d5d6„Z<d7d8„Z=d9d:„Z>d;d<„Z?dâd=d>„Z@dãd?d@„ZAdädAdB„ZBdådCdD„ZCdEdF„ZDdGdH„ZEdIdJ„ZFdædKdL„ZGdçdMdN„ZHdOdP„ZIdQdR„ZJdSdT„ZKdUdV„ZLdWdX„ZMdYdZ„ZNd[d\„ZOd]d^„ZPd_d`„ZQdadb„ZRdcdd„ZSdèdedf„ZTdédgdh„ZUdêdidj„ZVdkdl„ZWdmdn„ZXdodp„ZYdqdr„ZZdsdt„Z[dudv„Z\dwdx„Z]dydz„Z^e_j`e_jad{Zbd|d}„Zcd~d„Zdd€d„Zed‚dƒ„Zfd„d…„Zgd†d‡„Zhdˆd‰„ZidŠd‹„ZjdëdŒd„ZkdŽd„Zldd‘„Zmd’d“„Znd”d•„Zod–d—„Zpd˜d™„Zqdšd›„Zrdœd„ZsdìdŸd „Ztd¡d¢„Zudíd£d¤„Zvd¥d¦„Zwd§d¨„Zxd©dª„Zyd«d¬„Zzd­d®„Z{d¯d°„Z|d±d²„Z}d³d´„Z~dµd¶„Zd·d¸iZ€d¹dº„Zdîd»d¼„Z‚dïd½d¾„Zƒd¿dÀ„Z„dðdÁd„Z…dñdÃdÄ„Z†dÅdÆ„Z‡dÇdÈ„ZˆdÉdÊ„Z‰dËdÌ„ZŠdòdÍd΄Z‹dÏdЄZŒdÑdÒ„ZdÓdÔ„ZŽdÕdÖ„Zd×dØ„ZdÙdÚ„Z‘dÛdÜ„Z’dódÝdÞ„Z“dS)ôÚEditorWindowr)Ú
Percolator)ÚColorDelegatorÚcolor_config)Ú
UndoDelegator)Ú	IOBindingÚencoding)Úmainmenu)ÚMultiStatusBar)ÚAutoComplete)Ú
AutoExpand)ÚCalltip)ÚCodeContext)ÚLineNumbers)ÚFormatParagraphÚFormatRegionÚIndentsÚRstrip)Ú
ParenMatch)ÚSqueezer)Ú
ZoomHeightNTcCsH	ddlm}tjdkrtj tjdd¡}tj	 
d¡rvddtjdd…}tj d	¡r^d
}qÌd}tj ||dd¡}nVtj	dd…dkr²tj tjdd
t
ƒ¡}	tj |	¡rÌ|	}ntj	dkrÌtj tjd¡}tj |¡}tj |¡r|t_tj	dkrdtjt_ndtjdd…t_||_|p*|j}||_t|ƒ|_tj||jd|_}
|rl|j|_|j|j_ni|_i|j_tjotj tjd¡|_d|_t|
ƒ|_ }t!|dd|_"}tj#ddddd}
dddd|
d tj#ddd!ddd"œ}t$t%ƒ|f|Ž|_&}|j&|j_'| (¡| )¡|j *d#|j+¡|j ,d$|j-¡t. /¡rt| ,d$|j-¡| ,d%|j0¡| ,d&|j0¡n| ,d'|j0¡| ,d(t1¡| ,d)t1¡| ,d*t1¡| ,d+|j2¡| ,d,|j3¡| ,d-|j4¡| ,d.|j5¡| ,d/|j6¡| ,d0|j7¡| ,d1|j8¡| ,d2|j9¡| ,d3|j:¡| ,d4|j;¡| ,d5d6d7„¡| ,d8|j<¡| ,d9|j=¡| ,d:|j>¡| ,d;|j?¡| ,d<|j@¡| ,d=|jA¡| ,d>|jB¡| ,d?|jC¡| ,d@|jD¡| ,dA|jE¡| ,dB|jF¡| G|¡|_H}| ,dC|jI¡| ,dD|jJ¡| ,dE|jK¡| ,dF|jL¡| ,dG|jM¡| ,dH|jN¡| O|¡}| ,dI|jP¡| ,dJ|jQ¡| ,dK| Rd¡¡| ,dL| RdM¡¡| ,dN|jS¡| ,dO|jT¡| ,dP|jU¡|r||j|<|rÔ||jV|<| ,dQ|jW¡| ,dR|jjX¡| ,dS|jY¡| ,dT|jZ¡| ,dU|j[¡| \¡|j]t^t_dMdV|j`dMdMdW|jadMdMdW|jb|dX<|jcdMdtddY|je|dZ<t f|jdd¡|d[<|jcdMdMtddY| g¡| h¡tj#dd\d]d^d}||_id_|_j|jj|_k| l¡tmtd`ƒsð|j&dat_n| o¡db|_p| q|¡|_r}| s¡|_t}| u|¡|jv|_v|jw|_w| x|jy¡| z|¡|_{}| ||j}¡dc|_~| dc¡d|_€d|_d|_‚|rÚtj ƒ|¡rÊtj |¡sÊ| „|¡rÚdd|_~| …|¡}| |¡n| †|¡dd|_~| ‡¡| y¡| ˆ¡| ‰¡|jŠ ‹de¡}|rP| Œdf¡}|dkr$dg}|dkr>| ¡|dM}||_Žt |j¡t‘j’|_’t“j”|_”t“j•|_•| –dhdi¡| –djdkdldm¡| –dndo¡| –dpdq¡| –drdqdsdt¡| —|¡}| ,dh|j˜¡| ,dj|j™¡| ,du|jš¡| ,dv| ›|¡jœ¡| ,dw| |¡jž¡| Ÿ|¡}| ,dx|j ¡| ,dr|j¡¡||ƒ}| ,dy|j¢¡| ,dz|j£¡| ,d{|j¤¡| ,d|| ¥|¡j¦¡| §|¡|_¨}| ,dn|j©¡| ,dp|jª¡| ,d}|j«¡| ,d~| ¬|¡j­¡|j®rè| ¯|¡|_| ,d|jj°¡n| ±d€dd‚¡|j²	r6| ³|¡|_‚tj#dddƒd^d	r&| ´¡| ,d„|j´¡n| ±d€d…d‚¡dS)†Nr)Ú
ScriptBindingZDocz
index.htmlÚlinuxzpython-docs-z%s.%s.%séz/var/www/html/python/z/var/www/html/python/index.htmlz/usr/share/doc/ÚwinzPython%s.chmrz0Resources/English.lproj/Documentation/index.htmlzfile://zhttps://docs.python.org/%d.%d/é)Úmenuzrecent-files.lstÚÚvbar)ÚnameÚmainr#ÚwidthÚint©ÚtypeÚtextéZnoneZ
wordprocessorÚheight)r@ÚpadxÚwrapZhighlightthicknessrBZtabstylerHZWM_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>>cSsdS©NÚbreakr ©Úeventr r r!Ú<lambda>©óz'EditorWindow.__init__.<locals>.<lambda>z<<select-all>>z<<remove-selection>>z<<find>>z<<find-again>>z<<find-in-files>>z<<find-selection>>z<<replace>>ú
<<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>>)ÚsideÚfillÚexpand)ZweightÚcommand)ÚrowÚcolumnZstickyZyscrollcommandÚfontÚIndentz
use-spacesÚboolrÚblink_off_timeÚ
insertofftime)é2iôi@KLFTrÚendéÿÿÿÿz<<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*ontextÚdisabledzline-numbers-defaultz<<toggle-line-numbers>>ú*ine*umbers)µZidlelib.runscriptr8r#Úhelp_urlÚosÚpathÚjoinrÚbase_prefixÚplatformÚcountrÚisdirr"ÚisfileÚnormpathÚflistÚrootÚMenuÚmenubarrZListedToplevelÚtopÚvarsÚtkinter_varsZinversedictÚ
instance_dictrZuserdirÚrecent_files_pathÚprompt_last_lineÚFrameÚ
text_framerr?Ú	GetOptionr
ZTextrFZfocused_widgetÚ
createmenubarÚapply_bindingsÚprotocolÚcloseÚbindÚclose_eventrZisAquaTkÚright_menu_eventrÚhandle_winconfigÚcutÚcopyÚpasteÚcenter_insert_eventÚhelp_dialogÚpython_docsÚabout_dialogÚ
config_dialogÚopen_module_eventÚ
select_allÚremove_selectionÚ
find_eventÚfind_again_eventÚfind_in_files_eventÚfind_selection_eventÚ
replace_eventÚgoto_line_eventÚsmart_backspace_eventÚnewline_and_indent_eventÚsmart_indent_eventr2ÚfregionÚindent_region_eventZdedent_region_eventZcomment_region_eventZuncomment_region_eventZtabify_region_eventZuntabify_region_eventr3Ztoggle_tabs_eventZchange_indentwidth_eventÚmove_at_edge_if_selectionÚ
del_word_leftÚdel_word_rightÚ
home_callbackÚdictÚnew_callbackZclose_all_callbackÚopen_module_browserÚopen_path_browserÚopen_turtle_demoÚset_status_barÚpackZLEFTZBOTHZrowconfigureZcolumnconfigureÚhandle_yviewZgridZNSEWÚsetÚGetFontZ	focus_setÚ	set_widthÚusetabsÚtabwidthÚindentwidthÚset_notabs_indentwidthÚhasattrr_Úupdate_cursor_blinkÚnum_context_linesr$Úperr'ÚundoÚinsertfilterÚundo_block_startÚundo_block_stopZset_saved_change_hookÚsaved_change_hookr(ÚioZset_filename_change_hookÚfilename_change_hookZ	good_loadÚset_indentation_paramsÚcolorÚcode_contextÚline_numbersÚexistsÚloadfileÚispythonsourceZset_filenameÚResetColorizerÚupdate_recent_files_listÚload_extensionsÚmenudictÚgetÚindexÚ
add_separatorÚ	wmenu_endZregister_callbackÚpostwindowsmenurZ
askintegerrZaskyesnoÚ	showerrorÚ	event_addr,Zautocomplete_eventZtry_open_completions_eventZforce_open_completions_eventr-Zexpand_word_eventr1Zformat_paragraph_eventr5Zflash_paren_eventZparen_closed_eventZcheck_module_eventZrun_module_eventZrun_custom_eventr4Z	do_rstripr.ÚctipZtry_open_calltip_eventZrefresh_calltip_eventZforce_open_calltip_eventr7Zzoom_height_eventÚallow_code_contextr/Ztoggle_code_context_eventÚupdate_menu_stateÚallow_line_numbersr0Útoggle_line_numbers_event)ÚselfrqÚfilenameÚkeyrrr8ZdochomeZpyverZbasepathZchmfilerur|r?rBZtext_optionsrFršÚindentsZ	usespacesr²r³r¸Ú	is_py_srcr=rbZautocompleteZ
parenmatchZ
scriptbindingrÌr r r!Ú__init__HsÒ
ÿÿ

ÿÿ
ÿÿù







ÿ






ÿÿ
ÿÿ
ÿ
ÿÿzEditorWindow.__init__cCs| ¡dS©N)rª©rÑrPr r r!r…`szEditorWindow.handle_winconfigcCs^|j}tt|jj| d¡| d¡gƒƒ}| ¡d|}t|| d¡d d¡}|||_	dS)NZborderrIr<r\)r\Ú0)
rFÚsumÚmapÚtkZgetintZcgetZwinfo_widthrÚmeasurerB)rÑrFZ
inner_paddingZpixel_widthZzero_char_widthr r r!rªcsÿÿzEditorWindow.set_widthcCs|j ¡\}}|j |¡dSrM)r¸ZdefaultfilenamerqÚnew)rÑrPÚdirnameÚbasenamer r r!r¡pszEditorWindow.new_callbackcCsÂ|jd@dkr|jdkrdS|j d¡rd|j ddd¡rd|j ddd¡rdt|j d¡ d¡d	ƒ}n8|j dd¡}tt	|ƒƒD]}||d
kr~qœq~t	|ƒ}t|j d¡ d¡d	ƒ}||krÂd}dt
|ƒd
}|jd	@dkrò|j ddd¡n²|j d¡s|j dd¡n@|j |j d¡d|j d¡¡rB|j dd¡n|j dd¡|j |¡}|j d¡}|j |d|¡r„||}}|j ddd¡|j 
d||¡|j d|¡|j d¡dS)NérZHomeZiomarkú<=zinsert lineendúinsert linestartÚ.rU)ú ú	Úinsertzinsert linestart+ÚcÚselú1.0rbú	sel.firstZ	my_anchorú<úsel.lastú>rN)ÚstateZkeysymrFrÆÚcomparerCÚsplitrÅÚrangeÚlenÚstrÚ
tag_removeÚmark_setÚtag_addÚsee)rÑrPZinsertptÚlineZlineatÚdestÚfirstÚlastr r r!rŸusFÿþ
ÿ
zEditorWindow.home_callbackcCs°| |j¡|_t|jdddd}tjdkr<|jjddtd|jjdd	td|jjd
dtd|jjt	t
d|jt	t
d|j d
|j
¡|j d
dd¡|j |j
¡dS)NrUZgrey75)rHZborderwidthZ
backgroundrZ	_padding1z    )rVr[zCol: ?rùzLn: ?)rVrWz<<set-line-and-column>>z<KeyRelease>z<ButtonRelease>)r+ruÚ
status_barr{rrlÚ	set_labelZRIGHTr¦ZBOTTOMÚXrFr‚Úset_line_and_columnrËZ
after_idle)rÑÚsepr r r!r¥ s
ÿzEditorWindow.set_status_barcCs>|j t¡ d¡\}}|j dd|¡|j dd|¡dS)Nrär[zCol: %srùzLn: %s)rFrÆZINSERTrñrýrþ)rÑrPrùr[r r r!r°sz EditorWindow.set_line_and_column)ÚfileZ_File)ÚeditZ_Edit)ÚformatZF_ormat)ÚrunZ_Run)rdZ_Options)rZ_Window)r
Z_HelpcCsâ|j}i|_}|jD]N\}}t|ƒ\}}t||›ddƒ}t||d|d||<}|j|||dqt ¡r’t|ddd|d<}|jd|d	| 	¡t|jdd
|_
|jdjdd
d|j
d|jd t
¡|_| ¡dS)NZ_menu_postcommandr)r@ÚtearoffÚpostcommand)Úlabelr=Ú	underlineZapple)r@rZapplicationZIDLE)rr=©rrr:zRecent Files)rr	r=r
)rtrÄÚ
menu_specsÚprepstrÚgetattrrsZadd_cascaderZ
isCarbonTkÚ
fill_menusÚrecent_files_menuZinsert_cascaderÆÚENDÚbase_helpmenu_lengthÚreset_help_menu_entries)rÑZmbarrÄr@rr	rr=r r r!r~Às,
ÿÿþzEditorWindow.createmenubarcCsJ|jd}| d¡}|dkr d}||jkr<| |jd|¡t |¡dS)NrrbrcrU)rÄrÆrÈÚdeleterZadd_windows_to_menu)rÑr=rbr r r!rÉÖs


zEditorWindow.postwindowsmenucCs|j|}|j||ddS)z$Update label for menu item at index.)rN©rÄÚentryconfig)rÑr=rÆrÚmenuitemr r r!Úupdate_menu_labelàs
zEditorWindow.update_menu_labelcCs|j|}|j||ddS)z$Update state for menu item at index.©rïNr)rÑr=rÆrïrr r r!rÎås
zEditorWindow.update_menu_statecGsR|dkr<t|dƒ}t| d¡|ƒ| d¡}d}|df}|jj|f|žŽdS)zHandle scrollbar.Zmovetorrbú@0,0ZscrollZunitsrN)ÚfloatÚroundÚ	getlinenorFÚyview)rÑrPÚargsZfractionÚlinesr r r!r§êsÿzEditorWindow.handle_yviewc	Cs4|j}| d|j›d|j›¡}z | dd|¡o<| |dd¡}Wntk
rXd}YnX|sx| ddd	¡| d
|¡|js†| 	¡|j}||_
tjdd…dk}|r´|j
d
d|jD]P}z|\}}	}
Wntk
räYqºYnX|
dkrðqºt||
ƒƒ}|j||dqº| |j|j¡|r0|jj
dddS)Nú@ú,rërâríFrérêrbrçr:r;Zarrow)ZcursorrZibeamrN)rFrÆÚxÚyrðÚTclErrorrõröÚrmenuÚ
make_rmenurPrrlZconfigÚrmenu_specsÚ
ValueErrorr
ZentryconfigureZtk_popupZx_rootZy_root)rÑrPrFZnewdexZin_selectionr%ZiswinÚitemrÚ	eventnameZverify_staterïr r r!r„÷s>ÿ


zEditorWindow.right_menu_event)ÚCloserKNcCsft|jdd}|jD]F}|d|d}}|dk	rR|j|fdd„}|j||dq| ¡q||_dS)Nrr
rUcSs| |¡dSrשÚevent_generate©rFr*r r r!rY$sz(EditorWindow.make_rmenu.<locals>.command©rrY)rsrFr'Úadd_commandrÇr%)rÑr%r)rr*rYr r r!r&s

zEditorWindow.make_rmenucCs| ¡Sr×)Úrmenu_check_copy©rÑr r r!Úrmenu_check_cut+szEditorWindow.rmenu_check_cutcCs8z|j d¡}Wntk
r&YdSX|r0dSdSdS)NrëreÚnormal©rFrÆr$)rÑZindxr r r!r1.s
zEditorWindow.rmenu_check_copycCs8z|jj d|jd¡Wntk
r.YdSXdSdS)Nztk::GetSelectionZ	CLIPBOARDrer4)rFrÜÚcallr$r2r r r!Úrmenu_check_paste6s
zEditorWindow.rmenu_check_pastecCst |j¡dS)zHandle Help 'About IDLE' event.rN)rZAboutDialogrurØr r r!rŒ>szEditorWindow.about_dialogcCst |jd¡dS)z&Handle Options 'Configure IDLE' event.ZSettingsrN)rZConfigDialogrurØr r r!rDszEditorWindow.config_dialogcCs"|jr|j}n|j}t |¡dS)zHandle Help 'IDLE Help' event.rN)rrrur
Z
show_idlehelp)rÑrPÚparentr r r!rŠJs

zEditorWindow.help_dialogc
Csntjdd…dkr^zt |j¡Wqjtk
rZ}ztjdt|ƒ|j	dW5d}~XYqjXnt
 |j¡dS)Nr:r;úDocument Start Failure©ÚtitleÚmessager8rN)rrlrhÚ	startfilergÚOSErrorrrÊrôrFÚ
webbrowserÚopen)rÑrPÚwhyr r r!r‹TsÿzEditorWindow.python_docscCs|j d¡dS)Nz<<Cut>>rN©rFr-rØr r r!r†_szEditorWindow.cutcCs |j d¡sdS|j d¡dS)Nréz<<Copy>>rN)rFZ
tag_rangesr-rØr r r!r‡cszEditorWindow.copycCs|j d¡|j d¡dS)Nz	<<Paste>>rçrN)rFr-rørØr r r!rˆjszEditorWindow.pastecCs.|j ddd¡|j dd¡|j d¡dS)Nrérêzend-1crçrN)rFr÷rörørØr r r!roszEditorWindow.select_allcCs |j ddd¡|j d¡dS)NrérêrbrçrN)rFrõrørØr r r!ruszEditorWindow.remove_selectioncs*|jj‰|jj‰d‰‡‡‡‡fdd„}|S)zè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.

        )zsel.first+1czsel.last-1ccsB|jd@dkr>zˆdƒˆdˆˆƒWntk
r<YnXdS)NrGrrërç)rïr$rO©Ú
edge_indexZedges_tableZself_text_indexZself_text_mark_setr r!Úmove_at_edge…sz<EditorWindow.move_at_edge_if_selection.<locals>.move_at_edge)rFrÆrö)rÑrDrEr rCr!rœzs
z&EditorWindow.move_at_edge_if_selectioncCs|j d¡dS)Nz
<Meta-Delete>rNrBrØr r r!rŽszEditorWindow.del_word_leftcCs|j d¡dS)Nz<Meta-d>rNrBrØr r r!rž’szEditorWindow.del_word_rightcCst |j¡dSrM)rÚfindrFrØr r r!r‘–szEditorWindow.find_eventcCst |j¡dSrM)rZ
find_againrFrØr r r!r’šszEditorWindow.find_again_eventcCst |j¡dSrM)rZfind_selectionrFrØr r r!r”žsz!EditorWindow.find_selection_eventcCst |j|j|j¡dSrM)r	rFr¸rqrØr r r!r“¢sz EditorWindow.find_in_files_eventcCst |j¡dSrM)rrFrØr r r!r•¦szEditorWindow.replace_eventcCsT|j}t |dd¡j}|dk	rP| ddd¡| d|›d¡| d¡| ¡dS)	Nz
Go To Linez/Enter a positive integer
('big' = end of file):rérêrbrçú.0rN)rFrZGotoÚresultrõrörør)rÑrPrFÚlinenor r r!r–ªsþ
zEditorWindow.goto_line_eventcCspz|j dd¡ ¡}Wntk
r.d}YnXt |jdd|¡j}|dk	rl|jr`|j |¡n|j	 
|¡|S)z¯Get module name from user and open it.

        Return module path or None for calls by open_module_browser
        when latter is not invoked in named editor window.
        rërír>zOpen ModulezAEnter the name of a Python module
to search on sys.path and open:N)rFrÅÚstripr$rZ
ModuleNamerHrqr@r¸r¿)rÑr@Ú	file_pathr r r!Úopen_module¸s
üzEditorWindow.open_modulecCs| ¡dSrM)rLrØr r r!rŽÐszEditorWindow.open_module_eventcCsJ|jj}|jjdkr|s,| ¡}|dkr,dSddlm}| |j|¡dS)NZPyShellEditorWindowrNr)Úbrowser)	r¸rÒÚ	__class__Ú__name__rLÚidlelibrMZ
ModuleBrowserrr)rÑrPrÒrMr r r!r¢Ôsÿz EditorWindow.open_module_browsercCsddlm}| |j¡dS)Nr)ÚpathbrowserrN)rPrQZPathBrowserrr)rÑrPrQr r r!r£ßszEditorWindow.open_path_browsercCs&ddl}tjddg}|j|dddS)Nrz-cz,from turtledemo.__main__ import main; main()F)ÚshellrN)Ú
subprocessrÚ
executableÚPopen)rÑrPrSÚcmdr r r!r¤äsþzEditorWindow.open_turtle_democCsN|dk	rJ|dkrJ|j dd|¡|j ddd¡|j ddd¡| ¡dS)Nrrçz%d.0rérêrbz
insert +1l)rFrörõr÷Úcenter)rÑrIr r r!Úgotolineís
zEditorWindow.gotolinecCs`|rtj |¡rdStj tj |¡¡\}}tj |¡dkr@dS|j dd¡}| d¡o^d|kS)NT)z.pyz.pywrêz1.0 lineendz#!Zpython)	rhrirnÚsplitextràÚnormcaserFrÅÚ
startswith)rÑrÒÚbaseÚextrùr r r!rÀôszEditorWindow.ispythonsourcecCs|jr|j |¡d|_dSr×)rqZunregister_maybe_terminater2r r r!Ú
close_hookýszEditorWindow.close_hookcCs
||_dSr×)r^)rÑr^r r r!Úset_close_hookszEditorWindow.set_close_hookcCs2|jr|j |¡| ¡|j |¡| ¡dSr×)rqZfilename_changed_editr·ruZupdate_windowlist_registryrÁr2r r r!r¹s
z!EditorWindow.filename_change_hookcCsV|jr
dS| |jj¡r"| ¡|_|jrR|j |j¡|j |j¡|j |j¡dSr×)	r»rÀr¸rÒr%r²Úremovefilterr³r´r2r r r!Ú
_addcolorizers
zEditorWindow._addcolorizercCs,|js
dS|j ¡|j |j¡d|_dSr×)r»Zremovecolorsr²r`r2r r r!Ú_rmcolorizers

zEditorWindow._rmcolorizercCsH| ¡| ¡t |j¡|jdk	r0|j ¡|jdk	rD|j ¡dS)zUpdate the color themeN)	rbrar#r&rFr¼Zupdate_highlight_colorsr½Z
update_colorsr2r r r!rÁs


zEditorWindow.ResetColorizerÚ_cCsp| d|¡| |¡}|r6||jkr6| d|d|¡d| |¡krR| d|¡n| d|d¡| |¡dS)NÚERRORz
 wordstartÚ
rçz+1c)r÷rÅÚ
IDENTCHARSrörø)rÑrFÚposÚcharr r r!Úcolorize_syntax_error-s
z"EditorWindow.colorize_syntax_errorcCs2tjddddd}|s"d|jd<ntj|jd<dS)	z&Update the cursor blink configuration.rAr#zcursor-blinkr^rDrr`N)rr}rFr_)rÑZcursorblinkr r r!r°8sÿz EditorWindow.update_cursor_blinkcCsN|jdk	r|j ¡|jdk	r(|j ¡t |jdd¡}||jd<| ¡dS)z.Update the text widgets' font if it is changedNrAr#r\)r¼Zupdate_fontr½rr©rrrFrª)rÑZnew_fontr r r!Ú	ResetFontBs




zEditorWindow.ResetFontcCsxt ¡|j_}| ¡D]\}}|jj|f|žŽq| ¡D]6}t |¡}|r<| ¡D]\}}|jj|f|žŽqVq<dS)z/Remove the keybindings before they are changed.N)	rÚGetCurrentKeySetr*Údefault_keydefsÚitemsrFZevent_deleteÚget_standard_extension_namesÚGetExtensionBindings)rÑÚkeydefsrPÚkeylistÚ
extensionNameÚxkeydefsr r r!ÚRemoveKeybindingsSs
zEditorWindow.RemoveKeybindingsc
CsBt ¡|j_}| ¡| ¡D]}t |¡}|r | |¡q i}|jjD]B}i||d<|dD](}|rb|d||dt|dƒd<qbqJ|j	D]¨}|j	|}| 
t¡}|dkr¶q”|d7}td|ƒD]r}	| 
|	¡dkrÈ| |	d¡}
|
rÈ| |	d¡}d}||kr|||kr|||}|rÈt||ƒ}
|j|	|
dqÈq”dS)	z-Update the keybindings after they are changedrrUNrYÚacceleratorrr>)ru)rrkr*rlrrnroÚmenudefsrrÄrÆrròrEZ	entrycgetÚget_acceleratorr)
rÑrprrrsZ
menuEventDictr=r)ZmenubarItemrbrÆZaccelZitemNamerPr r r!ÚApplyKeybindings_s<
$




zEditorWindow.ApplyKeybindingscCs|jstjddddd|_dS)zCUpdate the indentwidth if changed and not using tabs in this windowrAr]z
num-spacesrCrDN)r«rr}r­r2r r r!r®ƒs
ÿz#EditorWindow.set_notabs_indentwidthcCs|t ¡}|jd}| t¡}||jkr8| |jd|¡|rn| ¡|D]$}| |d¡}|j	|d|dqH||jd<dS)z3Update the additional help entries on the Help menur
rUrr/N)
rZGetAllExtraHelpSourcesListrÄrÆrrrrÇÚ"_EditorWindow__extra_help_callbackr0)rÑZ	help_listZhelpmenuZhelpmenu_lengthÚentryrVr r r!rŠs


z$EditorWindow.reset_help_menu_entriescs|f‡fdd„	}|S)zCCreate a callback with the helpfile value frozen at definition timec
s€| d¡stj |¡}tjdd…dkrrzt |¡Wq|tk
rn}ztj	dt
|ƒˆjdW5d}~XYq|Xn
t 
|¡dS)N)ZwwwZhttpr:r;r9r:)r[rhrirprrlr=r>rrÊrôrFr?r@)ÚhelpfilerAr2r r!Údisplay_extra_helps
ÿz>EditorWindow.__extra_help_callback.<locals>.display_extra_helpr )rÑr{r|r r2r!Z__extra_help_callback›sz"EditorWindow.__extra_help_callbackc
sºg}|j}|r>tj |¡r>t|dddd}| ¡}W5QRX|rptj |¡d}||krd| |¡| d|¡g‰|D]*}d|ks˜tj |dd…¡sxˆ 	|¡qx‡fd	d
„|Dƒ}d}|dt
|ƒ…}|rRz*t|dddd}| |¡W5QRXWnVtk
rP}z6t
|jd
dƒs@d|j_tjdd|›d|jdW5d}~XYnX|jjD]Z}	|	j}
|
 dt¡t|ƒD]8\}}| ¡}|	 |¡}
|
j||d||
ddqxqZdS)z/Load and update the recent files list and menusÚrÚutf_8r)r)Úerrorsrerúrccsg|]}|ˆkr|‘qSr r )Ú.0ri©Z	bad_pathsr r!Ú
<listcomp>½sz9EditorWindow.update_recent_files_list.<locals>.<listcomp>Z1234567890ABCDEFGHIJKÚwÚrecentfiles_messageFTzIDLE Warningz)Cannot save Recent Files list to disk.
  z
Select OK to continue.r:Nrå)rrYr	)ryrhrir¾r@Ú	readlinesÚabspathÚremoverçÚappendróÚ
writelinesr>r
rrr…rÚshowwarningrFrurxrrrÚ	enumerateÚrstripÚ#_EditorWindow__recent_file_callbackr0)rÑÚnew_fileZrf_listrKZrf_list_fileriZulcharsZrf_fileÚerrÚinstancer=ÚiÚ	file_nameÚcallbackr r‚r!rªs\ÿ
ÿ
ü
þz%EditorWindow.update_recent_files_listcs|f‡fdd„	}|S)Ncsˆjj|ddS)N)ZeditFile)r¸r@)Z
fn_closurer2r r!Úopen_recent_fileÙsz=EditorWindow.__recent_file_callback.<locals>.open_recent_filer )rÑr“r•r r2r!Z__recent_file_callbackØsz#EditorWindow.__recent_file_callbackcCs‚| ¡}| ¡}|r*|r*|d|t}n|r4|}n|r>|}nd}|pL|pL|}| ¡sfd|}d|}|j |¡|j |¡dS)Nz - Úuntitledz*%s*z*%s)Úshort_titleÚ
long_titleÚ_py_versionÚ	get_savedruZwm_titleZwm_iconname)rÑZshortÚlongr;Ziconr r r!r·ÝszEditorWindow.saved_change_hookcCs
|j ¡Sr×)r³ršr2r r r!ršïszEditorWindow.get_savedcCs|j |¡dSr×)r³Ú	set_saved)rÑÚflagr r r!rœòszEditorWindow.set_savedcCs|j ¡dSr×)r³Ú
reset_undor2r r r!ržõszEditorWindow.reset_undocCs|jj}|rtj |¡SdS)Nr–)r¸rÒrhrirà)rÑrÒr r r!r—øszEditorWindow.short_titlecCs|jjp
dS)Nr>)r¸rÒr2r r r!r˜üszEditorWindow.long_titlecCs| ¡dSrM)rWrØr r r!r‰ÿsz EditorWindow.center_insert_eventrçcCsH|j}| ¡\}}| |¡}||}td||dƒ}| t|ƒ¡dS)NrUr<)rFÚgetwindowlinesrÚmaxrr)rÑÚmarkrFruÚbotrIrHZnewtopr r r!rWs
zEditorWindow.centercCsN|j}| d¡}| d¡}||krF| ¡dkrFt|dƒ}||d}||fS)Nrz@0,65535rUrH)rFrZwinfo_heightrC)rÑrFrur¢rHr r r!rŸs

zEditorWindow.getwindowlinescCs|j}tt| |¡ƒƒSr×)rFrCrrÆ)rÑr¡rFr r r!rszEditorWindow.getlinenocCs(|j ¡}t d|¡}ttt| ¡ƒƒS)zReturn (width, height, x, y)z(\d+)x(\d+)\+(-?\d+)\+(-?\d+))ruZwm_geometryÚreÚmatchÚlistrÛrCÚgroups)rÑZgeomÚmr r r!Úget_geometrys
zEditorWindow.get_geometrycCs| ¡dSrM)rrØr r r!rƒszEditorWindow.close_eventcCsH|jrD| ¡s:|j ¡dkr&|j ¡|j ¡|j ¡|j ¡SdS)Nr4)r¸ršrurïZ	deiconifyÚlowerZliftÚ	maybesaver2r r r!rª#s


zEditorWindow.maybesavecCs<z"| ¡}t|ƒdkr| ¡|WStk
r6YnXdS)NÚcancel)rªrôÚ_closeÚAttributeError)rÑZreplyr r r!r,szEditorWindow.closecCs|jjr|j|jjdt |j¡| ¡|j ¡d|_d|_|j	rX|j	 ¡d|_	d|_
d|_|j ¡d|_|j
 ¡|jrŒ| ¡dS)N)r)r¸rÒrÂrZunregister_callbackrÉÚunload_extensionsrr³r»rFrwr²ruZdestroyr^r2r r r!r¬5s"



zEditorWindow._closecCsi|_| ¡dSr×)Ú
extensionsÚload_standard_extensionsr2r r r!rÃIszEditorWindow.load_extensionscCs0t|j ¡ƒD]}t|dƒr| ¡qi|_dS)Nr)r¥r¯Úvaluesr¯r)rÑÚinsr r r!r®Ms

zEditorWindow.unload_extensionscCsD| ¡D]6}z| |¡Wqtdt|ƒƒt ¡YqXqdS)NzFailed to load extension)rnÚload_extensionÚprintÚreprÚ	tracebackÚ	print_exc)rÑr@r r r!r°Ssz%EditorWindow.load_standard_extensionscCstjddS)NT)Zeditor_only)rZ
GetExtensionsr2r r r!rn[sz)EditorWindow.get_standard_extension_namesZZzDummyZzzdummyc		Cs:|j ||¡}z>ztjd|td}Wn"ttfk
rHt |¡}YnXWn tk
rltd|ƒ‚YnXt||ƒ}t	 
|¡}t|dƒrš| |j
|¡||ƒ}||j|<|r6| |¡|D]t}| dd¡}|dd…dkrî|dd…}qÐ|d	d…d
kr|dd	…}qî|d}t||ƒrÀ|j |t||ƒ¡qÀdS)Nrä)Úpackagez
Failed to import extension: rvú-rcrUrìrcrîZ_event)ÚextfilesrÅÚ	importlibÚ
import_moduleÚ__package__ÚImportErrorÚ	TypeErrorr´r
rror¯rrvr¯rrrFr‚)	rÑr@ZfnameÚmodÚclsrpr²ZveventZ
methodnamer r r!r³bs4






zEditorWindow.load_extensioncCsF|dkr|jj}|j}||_| ¡D]\}}|r$|j|f|žŽq$dSr×)r*rlrFrprmrË)rÑrprFrPrqr r r!r~szEditorWindow.apply_bindingsc	Csê|dkr|jj}|dkr |jj}|j}|j}|D]´\}}| |¡}|sHq0|D]–}|s^| ¡qL|\}	}
|	dd…dk}|r†|	dd…}	t|	ƒ\}}	t||
ƒ}
||
fdd„}|rÐ| 	|
t
¡}|j|	|||
|dqL|j|	|||
dqLq0dS)zAdd appropriate entries to the menus and submenus

        Menus that are absent or None in self.menudict are ignored.
        NrUú!cSs| |¡dSr×r,r.r r r!rY sz(EditorWindow.fill_menus.<locals>.command)rr	rYruÚvariable)rr	rYru)
r*rvrlrÄrFrÅrÇrrwÚget_var_objZ
BooleanVarZadd_checkbuttonr0)rÑrvrprÄrFZmnameZ	entrylistr=rzrr*Zcheckbuttonr	rurYÚvarr r r!r‡s>


þþzEditorWindow.fill_menuscCs&| |¡}|r| ¡}|St|ƒ‚dSr×)rÄrÅÚ	NameError)rÑr@rÅÚvaluer r r!Úgetvar¬s

zEditorWindow.getvarcCs(| ||¡}|r| |¡nt|ƒ‚dSr×)rÄr¨rÆ)rÑr@rÇÚvartyperÅr r r!Úsetvar´szEditorWindow.setvarcCs,|j |¡}|s(|r(||jƒ|j|<}|Sr×)rwrÅrF)rÑr@rÉrÅr r r!rÄ»szEditorWindow.get_var_objcCs,|jr$|j d|¡p"d|j |¡kSdSdS)NZTODOÚSTRINGrU)r»rFÚ
tag_prevrangeZ	tag_names)rÑZ
text_indexr r r!Úis_char_in_stringËs
ÿzEditorWindow.is_char_in_stringcCs>z"|j d¡}|j d¡}||fWStk
r8YdSXdS)Nrërí)NNr5)rÑrûrür r r!Úget_selection_indices×s
z"EditorWindow.get_selection_indicescCs|jdpt}t|ƒS)NÚtabs)rFÚTK_TABWIDTH_DEFAULTrC)rÑÚcurrentr r r!Úget_tk_tabwidthâszEditorWindow.get_tk_tabwidthc	CsB|j}| ¡|kr>|j dd|dd|jd|¡}|j|ddS)Nr\rÝz
-displayofÚn)rÏ)rFrÒrÜr6ZmasterZ	configure)rÑZnewtabwidthrFZpixelsr r r!Úset_tk_tabwidthèsþzEditorWindow.set_tk_tabwidthcCsP|r@|r@| ¡}d|kr$dkr.nn||_|j|jkr@d|_| |j¡dS)Nr<rF)Úguess_indentr­r¬r«rÔ)rÑrÕZguessr’r r r!rºósz#EditorWindow.set_indentation_paramsc
CsP|j}| ¡\}}|r6|r6| ||¡| d|¡dS| dd¡}|dkrp| ddd¡rd| d¡n| ¡dS|dd	krŠ| d¡dS|j}t| 	|¡ƒ}|d
ksªt
‚|d|j|j}d
}	||jkrÐq|dd…}|	d}	t| 	|¡ƒ}||ks|dd	krÂqqÂ| 
¡| d|	d¡||krD| dd
||¡| ¡dS)NrçrNrãr>rîrêz	insert-1crcú 	rrUz
insert-%dcrå)rFrÎrrörÅrðZbellr¬róÚ
expandtabsÚAssertionErrorr­rzrµrçr¶)
rÑrPrFrûrüÚcharsr¬ZhaveZwantZ
ncharsdeletedr r r!r—üsB


z"EditorWindow.smart_backspace_eventc
Csô|j}| ¡\}}| ¡zÊ|r\|r\t|ƒt|ƒkrD|j |¡W¢¤S| ||¡| d|¡| 	dd¡}t
||jƒ\}}|t|ƒkr–| 
||j¡n>|jr¢d}n&t| |j¡ƒ}|j}	d|	||	}| d|¡| d¡W¢dS| ¡XdS)NrçrãrærårN)rFrÎrµr¶Ú
index2lineršr›rrörÅÚget_line_indentr¬róÚreindent_tor­r«r×rçrø)
rÑrPrFrûrüÚprefixÚrawZ	effectiveZpadrÓr r r!r™(s,
zEditorWindow.smart_indent_eventc	Cs|j}| ¡\}}| ¡zÊ|r>|r>| ||¡| d|¡| dd¡}dt|ƒ}}||krv||dkrv|d7}qX||kr”| 	dd¡W¢XdS|d|…}d}|rÔ|d	dkrÔ||j
krÔ|dd	…}|d7}q¤|rè| d
|d¡| d¡dkr| d¡qè| 	dd¡t| d¡ƒ}	t
 |j|j¡}
|j
s°|jD]`}t|	|dƒ}t|ƒd}
| |
d¡}|
 |¡|
 | |
¡¡}|dk	s”|dkr<qžq<|
 |pªd¡n@| dd¡}|rÌ|d}
nd
}
| |
d¡}|
 |¡|
 d¡|
 ¡}|t
jkrœ|t
jkrn‚|t
jkr,| 	d|¡nh|t
jkrH| |
 ¡¡nL|t
j kr€|
 !¡dkrp| 	d|¡n| |
 "¡¡nds”t#d|fƒ‚W¢PdS|
 $¡}| 	d|¡|
 %¡rÆ| &|¡n|rà|
 '¡rà| (|¡W¢dS| d¡| ¡XdS)a…Insert a newline and indentation after Enter keypress event.

        Properly position the cursor on the new line based on information
        from the current line.  This takes into account if the current line
        is a shell prompt, is empty, has selected text, contains a block
        opener, contains a block closer, is a continuation line, or
        is inside a string.
        rçrãrrÖrUrerNNrczinsert - %d charsrGZconsolerêzbogus continuation type %r))rFrÎrµrør¶rrörÅrórçrzrÚrÆrZParserr­r¬r±r rµZset_codeZfind_good_parse_startÚ_build_char_in_string_funcZset_lorÌZget_continuation_typeZC_NONEZC_STRING_FIRST_LINEZC_STRING_NEXT_LINESZ	C_BRACKETrÜZcompute_bracket_indentZC_BACKSLASHZget_num_lines_in_stmtZcompute_backslash_indentrØZget_base_indent_stringZis_block_openerr™Zis_block_closerr—)rÑrPrFrûrürùr’rÓÚindentÚlnor#ÚcontextZstartatZstartatindexZrawtextZbodr}rèr r r!r˜Ksˆ	




ÿ






z%EditorWindow.newline_and_indent_eventcCs||jfdd„}|S)NcSs||d|ƒS)Nz+%dcr )ÚoffsetZ_startindexZ_icisr r r!ÚinnerÂsz6EditorWindow._build_char_in_string_func.<locals>.inner)rÍ)rÑZ
startindexrär r r!rßÁsÿ
z'EditorWindow._build_char_in_string_funccCs2|jr&t||jƒ\}}d|d|Sd|SdS)Nrærå)r«Údivmodr¬)rÑrÓZntabsZnspacesr r r!Ú_make_blanksÑszEditorWindow._make_blankscCsJ|j}| ¡| ddd¡r(| dd¡|r>| d| |¡¡| ¡dS)Nrãz!=rç)rFrµrðrrçrær¶)rÑr[rFr r r!rÜÛszEditorWindow.reindent_tocCsPt|j|jƒ ¡\}}|r@|r@t||jƒ\}}t||jƒ\}}nd}}||S©Nr)ÚIndentSearcherrFr¬rrÛ)rÑÚopenerZindentedrÞZindentsmallZindentlarger r r!rÕészEditorWindow.guess_indentcCsN|jdkrdS|jjr&|j ¡d}n|j ¡d}|jdd|›dddS)NZShowZHiderdrfz
 Line Numbers)r=rÆr)r½Zis_shownZhide_sidebarZshow_sidebarr)rÑrPZ
menu_labelr r r!rÐòs


ÿz&EditorWindow.toggle_line_numbers_event)NNNN)N)N)N)N)N)N)N)N)N)N)N)N)rç)rç)N)NN)N)N)T)N)”rOÚ
__module__Ú__qualname__Zidlelib.percolatorr$Zidlelib.colorizerr%r&Zidlelib.undor'Zidlelib.iomenur(r)rPr*Zidlelib.statusbarr+Zidlelib.autocompleter,Zidlelib.autoexpandr-Zidlelib.calltipr.Zidlelib.codecontextr/Zidlelib.sidebarr0Zidlelib.formatr1r2r3r4Zidlelib.parenmatchr5Zidlelib.squeezerr6Zidlelib.zoomheightr7rÚgetfilesystemencodingZfilesystemencodingrgrÍrÏrÖr…rªr¡rŸr¥rrr~rÉrrÎr§r%r„r'r&r3r1r7rŒrrŠr‹r†r‡rˆrrrœrržr‘r’r”r“r•r–rLrŽr¢r£r¤rXrÀr^r_r¹rarbrÁÚstringÚ
ascii_lettersÚdigitsrfrir°rjrtrxr®rryrÂrŽr·ršrœržr—r˜r‰rWrŸrr¨rƒrªrr¬rÃr®r°rnrºr³rrrÈrÊrÄrÍrÎrÒrÔrºr—r™r˜rßrærÜrÕrÐr r r r!r#1s


+
ù
%þ









		

$
.


		ÿ
	
%


	,#v
	r#cCstt|ƒƒSr×)rCr)rÆr r r!rÚsrÚz[ \t]*cCs$t |¡}| ¡t| ¡ |¡ƒfS)zÌReturn a line's indentation as (# chars, effective # of spaces).

    The effective # of spaces is the length after properly "expanding"
    the tabs into spaces, as done by str.expandtabs(tabwidth).
    )Ú_line_indent_rer¤rbróÚgroupr×)rùr¬r§r r r!rÛs
rÛc@s8eZdZdd„Zdd„Zejejdfdd„Zdd	„Z	d
S)rècCs(||_||_d|_|_d|_|_dSrç)rFr¬r’ÚfinishedÚblkopenlineÚindentedline)rÑrFr¬r r r!rÖszIndentSearcher.__init__cCsL|jr
dS|jd}|_t|ƒd}|j |dd¡r:dS|j ||d¡S)Nr>rUrGz>=rbz lineend+1c)ròr’rµrFrðrÅ)rÑr’r¡r r r!ÚreadlineszIndentSearcher.readline)ÚclassÚdefÚforÚifÚtryÚwhilec		Cs>|jrn2||kr ||kr ||_n||kr:|jr:||_d|_dS)NrU)ròrórô)	rÑrEÚtokenÚstartrbrùÚINDENTÚNAMEZOPENERSr r r!Ú
tokeneater%szIndentSearcher.tokeneaterc	Cshtj}|jt_zDz$t |j¡}|D]}|j|Žq"Wntjtfk
rNYnXW5|t_X|j|j	fSr×)
ÚtokenizeÚtabsizer¬Úgenerate_tokensrõrÚ
TokenErrorÚSyntaxErrorrórô)rÑZsave_tabsizeÚtokensrür r r!r1s
zIndentSearcher.runN)
rOrêrërÖrõrrþrÿrrr r r r!rès
ý
rècCs6| d¡}|dkr.|d|…||dd…}||fS)NrcrrU)rF)Úsr’r r r!rCs
rú[ú]ú/)ZbracketleftZbracketrightZslashcCs´| |¡}|rt ¡r"|dkr"dS|d}t ddd„|¡}t ddd„|¡}t d	d|¡}t d
d|¡}t dd
|¡}t dd|¡}t dd|¡}t dd|¡}t dd|¡}|S)N>rTrLrSr>rz-[a-z]\bcSs| ¡ ¡Sr×)rñÚupper©r§r r r!rQ\rRz!get_accelerator.<locals>.<lambda>z\b\w+\bcSst | ¡| ¡¡Sr×)ÚkeynamesrÅrñrr r r!rQ]rRzKey-ZCancelz
Ctrl-BreakzControl-zCtrl-r¹ú+z><rårìrî)rÅrZ	isCocoaTkr£Úsub)rpr*rqrr r r!rwRs
rwcCs4|j}| ddd¡| ddd¡| ddd¡dS)	NZtcl_wordBreakAfterza brr¨Z
tcl_wordcharsz\wZtcl_nonwordcharsz\W)rÜr6)rrrÜr r r!Ú
fixwordbreakshsrcCs~|}t|ƒtjdd…r&tjd}nd}t |d¡t||d}|j}d|d<tdƒD] }| dd|t	|ƒd¡qXdS)	NrU)rrrÒé
rHérçz  re)
rrÚargvrZsetupAppr#rFròrçrô)r8rrrÒrrFr’r r r!Ú_editor_windowqsrÚ__main__)rAzidlelib.idle_test.test_editorr<F)Ú	verbosityÚexit)r)8Ú
importlib.abcr»Úimportlib.utilrhrlr£rírrr¶r?ÚtkinterZtkinter.fontrZtkinter.ttkrrrZidlelib.configrrPrr	r
rrZidlelib.multicallr
rrrrZidlelib.treerrrÐZpython_versionr™rr"r#rÚÚcompilerðrÛrèrr
rwrrrOZunittestrAZidlelib.idle_test.htestrr r r r!Ú<module>sx
Z

4
ý	


Zerion Mini Shell 1.0