eHSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK r SSK r SSK 7 SSK J r SSKJr SSK Jr SSK Jr SSKJr SSKJr SS KJr SS KJr SS KJr SS KJr SS KJr SSKJr SSKJr SSKJr SSKJr SSK J!r! SSK"J#r# SSKJ$r$ Sr%S\RL"5-r'\RS:Hr(Sr)"SS5r*Sr+\RX"S5r-Sr."SS5r/S r0S!S"S#S$.r1S%r2S&r3S'r4\5S(:XaSS)K6J7r7 \7"S*S+S,S-9 SS.K8J9r9 \9"\45 gg)/N)*)Font) Scrollbar) simpledialog) messagebox)idleConf) configdialog)grep)help) help_about)macosx)MultiCallCreator)pyparse)query)replace)search) wheel_event) py_extensions)windowz (%s)darwinc[Rupp#nUU3nXR- nUS:Xa USU3- nU$US:wa XSSU3- nU$)zYFormat sys.version_info to produce the Sphinx version string used to install the chm docs candidatercfinalr)sys version_info)majorminormicrolevelserialreleases 4/opt/imh/python3.13/lib/python3.13/idlelib/editor.py_sphinx_versionr%&so),)9)9&E%wG G Rx=  N ' AhZx(( Nc\rSrSrSSKJr SSKJrJr SSK J r SSK J r J r SSKJr SSKJr SS KJr SS KJr SS KJr SS KJr SS KJr SSKJrJrJrJ r SSK!J"r" SSK#J$r$ \%RL"5r'Sr(Sr)Sr*Sr+SySjr,SzSjr-Sr.Sr/Sr0Sr1SzSjr2/SQr3Sr4Sr5Sr6Sr7Sr8Sr9S r:S!/r;S"rS%r?SzS&jr@SzS'jrASzS(jrBSzS)jrCS*rDS+rES,rFSzS-jrGSzS.jrHS/rIS0rJS1rKS2rLS3rMS4rNS5rOS6rPS7rQS8rRS9rSSzS:jrTSzS;jrUSzS<jrVS=rWS>rXS?rYS@rZSAr[SBr\SCr]SDr^\_R\_R-SE-rbSFrcSGrdSHreSIrfSJrgSKrhSLriSMrjSzSNjrkSOrlSPrmSQrnSRroSSrpSTrqSUrrSVrsS{SWjrtSXruS{SYjrvSZrwS[rxS\ryS]rzS^r{S_r|S`r}Sar~SbrScSd0rSerSzSfjrS|SgjrShrSzSijrSzSjjrSkrSlrSmrSnrS}SojrSprSqrSrrSsrStrSurSvrSzSwjrSxrg)~ EditorWindow3r) Percolator)ColorDelegator color_config) UndoDelegator) IOBindingencoding)mainmenu)MultiStatusBar) AutoComplete) AutoExpand)Calltip) CodeContext) LineNumbers)FormatParagraph FormatRegionIndentsRstrip) ParenMatch) ZoomHeightNTc "SSKJn [RGc [R R [RSS5n[RRS5(adSS[RSS--n[R RS 5(aS nOS n[R R XSS5nO[RSSS :Xa^SSK n S n S[RS3n U RU R U 5n [R R'U 5(aU nOB[RS:Xa.[R R [RS5n[R R)U5n[R R'U5(a<U[l[RS:XaS[R-[lOS[RSS-[lXlU=(d UR,nX@l[/U5Ul[2R4"X@R0S9=Uln U(a-UR8UlUR<UR6lO0Ul0UR6l[@RB=(a. [R R [@RBS5Ul"S Ul#[IU 5=Ul%n [MU SS9=Ul'n[@RP"SSSSS9nSSS SUS![@RP"SSS"SS9S#.n[S[T5"U 40UD6=Ul+nURVUR6l,UR[5 UR]5 UR6R_S$UR`5 UR6RcS%URd5 [fRh"5(aUURcS%URd5 URcS&URj5 URcS'URj5 OURcS(URj5 URcS)[l5 URnS*:Xa,URcS+[l5 URcS,[l5 URcS-URp5 URcS.URr5 URcS/URt5 URcS0URv5 URcS1URx5 URcS2URz5 URcS3UR|5 URcS4UR~5 URcS5UR5 URcS6UR5 URcS7S85 URcS9UR5 URcS:UR5 URcS;UR5 URcSUR5 URcS?UR5 URcS@UR5 URcSAUR5 URcSBUR5 URcSCUR5 URU5=UlNnURcSDUR5 URcSEUR5 URcSFUR5 URcSGUR5 URcSHUR5 URcSIUR5 URU5nURcSJUR5 URcSKUR5 URcSLURS55 URcSMURSN55 URcSOUR5 URcSPUR5 URcSQUR5 U(aX1R<U'U(aXRU'URcSRUR5 URcSSUR*R5 URcSTUR5 URcSUUR5 URcSVUR5 UR5 U R[[SNSW9 U RSNSNSX9 U RSNSNSX9 URUSY'URSNS[SZ9 URUS['[@R"UR,SS5US\'URSNSN[SZ9 UR5 UR5 [@RP"SS]S^S_S9nU(+UloS`UlpURUlqUR5 [[@Sa5(dURVSb[@ltUR5 ScUlvURU5=UlxnUR5=UlznURU5 URUl|URUl}URUR5 UGRU5=UlnUGRUGR5 SdUlUGR Sd5 SUlSUlSUlU(a[R GRU5(ag[R RU5(dCUGRU5(a+SeUlUGRU5nUGR U5 OUGRU5 SeUlUGR5 UR5 UGR5 UGR5 UGR GR#Sf5nU(a\UGR%Sg5nUcShnUS:aUGR'5 USN-nUUl[2GR*"UGR,5 G[.GR0UlG[2GR4UlG[2GR6UlUGR9SiSj5 UGR9SkSlSmSn5 UGR9SoSp5 UGR9SqSr5 UGR9SsSrStSu5 UGR;XGR<5nURcSiUGR>5 URcSkUGR@5 URcSvUGRB5 URcSwUGREU5GRF5 URcSxUGRIU5GRJ5 UGRMU5nURcSyUGRN5 URcSsUGRP5 U"U5nURcSzUGRR5 URcS{UGRT5 URcS|UGRV5 URcS}UGRYU5GRZ5 UGR]U5=UlnURcSoUGR`5 URcSqUGRb5 URcS~UGRd5 URcSUGRgU5GRh5 UGRj(a@UGRmU5UlURcSUGRGRn5 OUGRqSSS5 UGRr(abUGRuU5Ul[@RP"SSSS_S9(aUGRw5 URcSUGRv5 gUGRqSSS5 g!["a3 U RU R$U 5n GNK!["a GNYf=ff=f)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)rGpadxwraphighlightthicknessrItabstylerQWM_DELETE_WINDOW<>zz<2>z<3>z x11z z z z<>z<>z <>z<>z<>z<>z<>z<><>z<>cgNbreak)events r$'EditorWindow.__init__..s'r&z<>z<>z<>z<>z<>z<>z <> <>z<>z<>z<>z<>z<>z<>z<>z<>z<>z<><>zzz<>z<>z<>z<>z<>z<>z<>z<>)sidefillexpand)weightcommand)rowcolumnstickyyscrollcommandfontIndentz use-spacesboolrblink_off_time insertofftime)2ii@KLFTrendz<>z z<>zzzz<>zz<>zz<>zzz<>z<>z<>z<>z<>z<>z<>z <>z<>z<>z<>optionsz *ode*ontextdisabledzline-numbers-defaultz<> *ine*umbers)idlelib.runscriptr>r(help_urlospathjoinr base_prefixplatformcountrisdirwinregwinver QueryValueHKEY_CURRENT_USERFileNotFoundErrorHKEY_LOCAL_MACHINEisfilenormpathflistrootMenumenubarrListedTopleveltopvars tkinter_vars inversedict instance_dictruserdirrecent_files_pathprompt_last_lineFrame text_framerrF GetOptionrTextrMfocused_widget createmenubarapply_bindingsprotocolclosebind close_eventr isAquaTkright_menu_eventr_windowingsystemhandle_winconfigcutcopypastecenter_insert_event help_dialog python_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_eventr8fregionindent_region_eventdedent_region_eventcomment_region_eventuncomment_region_eventtabify_region_eventuntabify_region_eventr9toggle_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_widthusetabstabwidth indentwidthset_notabs_indentwidthhasattrrpupdate_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_addr2user_input_insert_tagsautocomplete_eventtry_open_completions_eventforce_open_completions_eventr3expand_word_eventr7format_paragraph_eventr;flash_paren_eventparen_closed_eventcheck_module_eventrun_module_eventrun_custom_eventr: do_rstripr4ctiptry_open_calltip_eventrefresh_calltip_eventforce_open_calltip_eventr<zoom_height_eventallow_code_contextr5toggle_code_context_eventupdate_menu_stateallow_line_numbersr6toggle_line_numbers_event)selfrfilenamekeyrr>dochomepyverbasepathrdocfileKEYrrrFrI text_optionsrMrindents usespacesrrr is_py_srcrErs autocomplete parenmatch scriptbindingr s r$__init__EditorWindow.__init__Jsn 3  (ww||COOULIG||!!'**&c6F6Fr6J)JJ77==!899?G0H ggll8+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  ,D1*M MM D"&))   ,djj9  ($*:*:; ??   II($*:*: ; II*4+@+@ A IIeT22 3 IIeD11 2 .+.  E ) IIlK 0 IIlK 0 -!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+=+=> &)  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!122&*ii&@H #   ""2..3--// D  $ 5 5#33 ""4#9#9:~~d++" ##D$=$=> ##E*    ww~~h'' h0G0G;;x((%)DN $ 3 3H =I// :)!%    %%' }}  * **U#C{ax""$Ag DN  $ $T%9%9 :'11"++ #-- );7 13H+-E G -/GH ,.GH )+D24M O ((/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 HW)"("3"3F4M4M47#9, s7AD?D? AE<E AE)E) AE8E3AE<E7AE8E8AE<c$UR5 gN)rrr^s r$rEditorWindow.handle_winconfigms  r&c :URn[[URRUR S5UR S5/55nUR 5SU-- n[XR S5S9RS5nX4-Ul g)NborderrRrDrm)rm0) rMsummaptkgetintcget winfo_widthrmeasurerI)rrM inner_padding pixel_widthzero_char_widths r$rEditorWindow.set_widthpsyyC81D1561B1DEF &&(1}+<< IIf- . 6 6s ;  3 r&crURR5up#URRU5 gr[)rdefaultfilenamernew)rr^dirnamebasenames r$rEditorWindow.new_callback}s* GG335 wr&cBURS-S:waURS:XagURRS5(a{URR SSS5(aYURR SSS5(a7[ URRS5R S5S 5nOLURRSS5n[[U55H nX2S ;dM O [U5n[ URRS 5R S5S 5nX$:XaSnS [U5-S -nURS -S:XaURRSSS5 GO]URRS5(dURRSS 5 OURR URRS5SURRS 55(aURRSS5 OURRSS5 URRU5nURRS5nURR USU5(aXvpvURRSSS5 URRSXg5 URRS U5 URRS 5 g)NrHomeiomark<=zinsert lineendinsert linestart.rc)  insertzinsert linestart+csel1.0rs sel.first my_anchor<sel.last>r\)statekeysymrMrcomparerJsplitrrangelenstr tag_removemark_settag_addsee)rr^insertptlinelineatdestfirstlasts r$rEditorWindow.home_callbacksV KK!O !ellf&< 99??8 $ $ 99  Xt-= > > 99  /x @ @499??84::3?BCH99==!35EFD!#d),>3-TTYY__X.44S9!<=  H"3x=04 KKMa  II u 599??;// "";999$$TYY__[%A3%)YY__X%>@@II&&{K@II&&{J?IIOOD)E99??;/Dyy  s400!d II u 5 II  eU 1 8T* hr&cURUR5Ul[URSSSS9n[R S:XaURR SS[S9 URR SS [S9 URR S S [S9 URR[[S 9 UR[[S 9 URRS UR5 URRS SS5 URRUR5 g)Nrcgrey75)rQ borderwidth backgroundr _padding1z )rdrjzCol: ?r^zLn: ?)rdrez<>z z)r1r status_barrrr~ set_labelRIGHTrBOTTOMXrMrset_line_and_columnr after_idle)rseps r$rEditorWindow.set_status_bars--dhh7DHHQA(K <<8 # OO % %k6 % F !!(H5!A !!&'!> &q1 f1% 0$2J2JK 5*,= ? T556r&cURR[5RS5up#URR SSU-5 URR SSU-5 g)NrFrjzCol: %sr^zLn: %s)rMrINSERTrUrirj)rr^r^rjs r$rn EditorWindow.set_line_and_columnsRyyv.44S9  !!(I,>? !!&(T/:r&))file_File)edit_Edit)formatF_ormat)run_Run)ru_Options)r_Window)r _HelpcTURn0=UlnURH@up4[U5upT[ XS3S5n[ XSUS9=X#'nUR XGUS9 MB [R"5(a [ USSS9=US'nUR S US 9 UR5 [ URSS 9Ul URS RS SSURS9 URSR[5UlUR5 g)aPopulate the menu bar widget for the editor window. Each option on the menubar is itself a cascade-type Menu widget with the menubar as the parent. The names, labels, and menu shortcuts for the menubar items are stored in menu_specs. Each submenu is subsequently populated in fill_menus(), except for 'Recent Files' which is added to the File menu here. Instance variables: menubar: Menu widget containing first level menu items. menudict: Dictionary of {menuname: Menu instance} items. The keys represent the valid menu items for this window and may be a subset of all the menudefs available. recent_files_menu: Menu widget contained within the 'file' menudict. _menu_postcommandNr)rGtearoff postcommand)labelrE underlineapple)rGr applicationIDLE)rrErrurAz Recent Files)rrrEr )rr menu_specsprepstrgetattrr add_cascader isCarbonTk fill_menusrecent_files_menuinsert_cascaderENDbase_helpmenu_lengthreset_help_menu_entries)rmbarrrGrrrrEs r$rEditorWindow.createmenubars- ||#%% ??KD&u~ I!$&0A(BDIK$(!5@%B BHNT   5y  I +     -1$W:;.= =H] #d   6  5 !%dllA!> f,,Qn78262H2H - J%)MM&$9$?$?$D! $$&r&cURSnURS5nUcSnX R:aURURS-U5 [R "U5 g)zCCallback to register window. Only called when Window menu exists. rrsNrtrc)rrrdeleteradd_windows_to_menu)rrErss r$rEditorWindow.postwindowsmenusY }}X&jj ;C   KKq(# .""4(r&c@URUnURX#S9 g)z$Update label for menu item at index.)rNr entryconfig)rrErrmenuitems r$update_menu_labelEditorWindow.update_menu_label!==&U0r&c@URUnURX#S9 g)z$Update state for menu item at index.rRNr)rrErrRrs r$rEditorWindow.update_menu_staterr&cUS:XaC[US5n[URS5U-5URS5- nSnUS4nURR"U/UQ76 g)zHandle scrollbar.movetorrs@0,0scrollunitsr\)floatround getlinenorMyview)rr^argsfractionliness r$rEditorWindow.handle_yviewsg H T!W~H4>>%08;<^^F+,EE7#D %%r&c2URnURSURSUR35nUR SSU5=(a UR USS5nU(d%UR SSS 5 URS U5 UR(dUR5 URnXl [RSS S :HnU(aURS S9 URH-nUupn U cM[!X 5"5n UR#XS9 M/ UR%UR&UR(5 U(aURRSS9 g![ a SnGNf=f![a Mf=f)N@,rMrDrPFrKrLrsrIrArBarrow)cursorribeamr\)rMrxyrTTclErrorrYrZrmenu make_rmenur^rr~config rmenu_specs ValueErrorrentryconfiguretk_popupx_rooty_root) rr^rMnewdex in_selectionriswinitemr eventname verify_staterRs r$rEditorWindow.right_menu_event)sjyyay%''34 ! LLdFCC<<zB  OOE5% 0 MM(F +zz OO    Ra E)  KKwK '$$D 15.,#D/1E   4% u||U\\2  II  G  ,7 ! L !   s#-E5F5 FF FF)CloserWNc[URSS9nURHAnUSUSpCUb"URU4SjnURX5S9 M1UR 5 MC Xlg)Nrrrcc&URU5 gr)event_generaterMrs r$rh(EditorWindow.make_rmenu..commandVs'' 2r&rrh)rrMr add_commandrr)rrrrrrhs r$rEditorWindow.make_rmenuQsiTYY*$$D#AwQ9 !%i3!!!?##%% r&c"UR5$r))rmenu_check_copyrs r$rmenu_check_cutEditorWindow.rmenu_check_cut]s$$&&r&cpURRS5nU(aS$S$![a gf=f)NrMnormalrvrMrr)rindxs r$rEditorWindow.rmenu_check_copy`s< 499??;/D $8 3 3  s ( 55cURRRSURS5 g![a gf=f)Nztk::GetSelection CLIPBOARDrrv)rMr1callrrs r$rmenu_check_pasteEditorWindow.rmenu_check_pastehs?  IILL  0$))[ I  s14 AAcD[R"UR5 g)zHandle Help 'About IDLE' event.r\)r AboutDialogrr*s r$rEditorWindow.about_dialogps txx(r&cF[R"URS5 g)z&Handle Options 'Configure IDLE' event.Settingsr\)r ConfigDialogrr*s r$rEditorWindow.config_dialogvs !!$((:6r&cUR(a URnO URn[R"U5 g)zHandle Help 'IDLE Help' event.r\)rrr show_idlehelp)rr^parents r$rEditorWindow.help_dialog|s. 99YYFXXF 6"r&c6[RSSS:Xa"[R"UR5 g[R"UR5 g![ a3n[ R"S[U5URS9 SnAgSnAff=f)NrArBDocument Start Failuretitlemessagerr\) rr~rz startfileryOSErrorrrrXrM webbrowseropen)rr^whys r$rEditorWindow.python_docssy << u $ 8 T]]+  OODMM *  8$$+CHTYY8  8s A B%)BBc:URRS5 g)Nz<>r\rMrr*s r$rEditorWindow.cuts   +r&c|URRS5(dgURRS5 g)NrKz<>r\)rM tag_rangesrr*s r$rEditorWindow.copys/yy##E**   ,r&cpURRS5 URRS5 g)Nz <>rIr\)rMrr\r*s r$rEditorWindow.pastes'   - hr&cURRSSS5 URRSS5 URRS5 g)NrKrLzend-1crIr\)rMr[rZr\r*s r$rEditorWindow.select_alls? %1 8U+ hr&ctURRSSS5 URRS5 g)NrKrLrsrIr\)rMrYr\r*s r$rEditorWindow.remove_selections+ UE51 hr&c|^^^^URRmURRmSmUUUU4SjnU$)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. )z sel.first+1cz sel.last-1ccx>URS-S:XaT"S5 T"STT5 gg![a gf=f)NrNrrMrI)rRr)r^ edge_index edges_tableself_text_indexself_text_mark_sets r$ move_at_edge.move_at_edgesH aA%#K0&xZ1HI& s , 99)rMrrZ)rrr r r r s ` @@@r$r&EditorWindow.move_at_edge_if_selections9))//!YY//5   r&c:URRS5 g)Nz r\rr*s r$rEditorWindow.del_word_lefts   1r&c:URRS5 g)Nzr\rr*s r$rEditorWindow.del_word_rights   ,r&cD[R"UR5 gr[)rfindrMr*s r$rEditorWindow.find_events DIIr&cD[R"UR5 gr[)r find_againrMr*s r$rEditorWindow.find_again_events$))$r&cD[R"UR5 gr[)rfind_selectionrMr*s r$r!EditorWindow.find_selection_eventsdii(r&cp[R"URURUR5 gr[)r rMrrr*s r$r EditorWindow.find_in_files_events! $))TWWdjj1r&cD[R"UR5 gr[)rrMr*s r$rEditorWindow.replace_events "r&cURn[R"USS5RnUbIUR SSS5 UR SUS35 UR S5 UR5 g) Nz Go To Linez/Enter a positive integer ('big' = end of file):rKrLrsrI.0r\)rMrGotoresultrYrZr\rn)rr^rMlinenos r$rEditorWindow.goto_line_eventstyyl)&    OOE5% 0 MM(vhbM 2 HHX   $ $ &r&crURRSS5R5n[R "URSSU5R nUbIUR(aURRU5 U$URRU5 U$![a SnNf=f)zGet 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. rMrPrCz Open ModulezAEnter the name of a Python module to search on sys.path and open:) rMrstriprr ModuleNamer#rrrr)rrG file_paths r$ open_moduleEditorWindow.open_modules 99==j9??AD$$ =2 f   zz  *  + D s*B'' B65B6c$UR5 gr[)r*r*s r$rEditorWindow.open_module_events r&cURRnURRS:XaU(dUR 5nUcgSSKJn URURU5 g)NPyShellEditorWindowr\r)browser) rr __class____name__r*idlelibr0 ModuleBrowserr)rr^rr0s r$r EditorWindow.open_module_browsersX77##''+@@'')H#dii2r&cFSSKJn URUR5 g)Nr) pathbrowserr\)r3r7 PathBrowserr)rr^r7s r$rEditorWindow.open_path_browsers' *r&cRSSKn[RSS/nURUSS9 g)Nrz-cz,from turtledemo.__main__ import main; main()F)shellr\) subprocessr executablePopen)rr^r<cmds r$rEditorWindow.open_turtle_demos1~~=? E*r&cUbqUS:ajURRSSU-5 URRSSS5 URRSSS5 UR 5 ggg)NrrIz%d.0rKrLrsz insert +1l)rMrZrYr[center)rr$s r$gotolineEditorWindow.gotolinesc  &1* II  x& 9 II u 5 II  eX| < KKM #- r&cU(a$[RRU5(ag[RR[RR U55up#[RR U5[ ;agURRSS5nURS5=(a SU;$)NTrLz 1.0 lineendz#!python) rzr{rsplitextr>normcaserrMr startswith)rrbaseextr^s r$rEditorWindow.ispythonsource&s277==22GG$$RWW%5%5h%?@  77  C M 1yy}}UM2t$9T)99r&clUR(a#URRU5 SUlggr))runregister_maybe_terminaters r$ close_hookEditorWindow.close_hook/s' :: JJ 1 1$ 7DJ r&cXlgr))rO)rrOs r$set_close_hookEditorWindow.set_close_hook4s$r&cUR(aURRU5 UR5 URR U5 UR 5 gr))rfilename_changed_editrrupdate_windowlist_registryrrs r$r!EditorWindow.filename_change_hook7sE :: JJ , ,T 2   ++D1 r&c&UR(agURURR5(aUR 5UlUR(a/UR R URURS9 gg)N)filterafter)rrrrr+rinsertfilterafterrrs r$ _addcolorizerEditorWindow._addcolorizer>sb ::    tww// 0 0,,.DJ :: HH & &djj & J r&cUR(dgURR5 URRUR5 SUlgr))r removecolorsr removefilterrs r$ _rmcolorizerEditorWindow._rmcolorizerGs9zz  ! djj) r&c UR5 UR5 [RUR5 UR bUR R 5 URbURR5 gg)zUpdate the color themeN) rar\r(r,rMrupdate_highlight_colorsr update_colorsrs r$rEditorWindow.ResetColorizerNso  !!$)),    (    5 5 7    (    + + - )r&_c>URSU5 URU5nU(a%X0R;aURSUS-U5 SURU5:XaURSU5 OURSUS-5 UR U5 g)NERRORz wordstart rIz+1c)r[r IDENTCHARSrZr\)rrMposchars r$colorize_syntax_error"EditorWindow.colorize_syntax_error]sy Wc"xx} DOO+ LL# "4c : 488C= MM(C ( MM(C%K 0  r&c[R"SSSSS9nU(dSURS'g[RURS'g) z&Update the cursor blink configuration.rHr(z cursor-blinkrorKrrqN)rrrMrp)r cursorblinks r$r EditorWindow.update_cursor_blinkhsC((VE )*DIIo &*2)@)@DIIo &r&c URbURR5 URbURR5 [R"UR SS5nXR S'UR5 g)z.Update the text widgets' font if it is changedNrHr(rm)r update_fontrrrrrMr)rnew_fonts r$ ResetFontEditorWindow.ResetFontrsp    (    ) ) +    (    ) ) +##DIIv~F$ & r&c[R"5=URlnUR 5H"up#UR R "U/UQ76 M$ UR5HXn[R"U5nU(dM"UR 5H"up#UR R "U/UQ76 M$ MZ g)zWRemove the virtual, configurable keybindings. Leaves the default Tk Text keybindings. N) rGetCurrentKeySetr0default_keydefsitemsrM event_deleteget_standard_extension_namesGetExtensionBindings)rkeydefsr^keylist extensionNamexkeydefss r$RemoveKeybindingsEditorWindow.RemoveKeybindingss 3;2K2K2MM %%mmoNE II " "5 37 3.!>>@M44]CHx&.nn&6NEII**5;7;'7Ar&cN[R"5=URlnUR 5 UR 5H3n[R "U5nU(dM"UR U5 M5 0nURRH;n0XES'USH(nU(dM USXES[US5S'M* M= URHnURUnUR[5nUcM,US- n[SU5Hn URU 5S:XdMURU S5n U (dM5URU S5n Sn Xt;aXU;aXGU n U (dMf[X5n UR!XS9 M M g) zUApply the virtual, configurable keybindings. Also update hotkeys to current keyset. rrcNrh acceleratorrrC)r)rryr0rzrr}r~menudefsrrrrrVrL entrycgetget_acceleratorr) rrrr menuEventDictrEr menubarItemrsraccelitemNamer^s r$ApplyKeybindingsEditorWindow.ApplyKeybindingss 3;2K2K2MM % !>>@M44]CHx##H-A  MM**D%'Mq' "Q4BFq'Mq'*747+;A+>? +  ==K==-D**S/C{ 1HCq#99U#y0 NN5-@Eu#'>>%#A "&7'+EE(5(B8(L 5$3G$CE ,,U,F')r&c`UR(d[R"SSSSS9Ulgg)zCUpdate the indentwidth if changed and not using tabs in this windowrHrnz num-spacesrJrKN)rrrrrs r$r#EditorWindow.set_notabs_indentwidths,||'11&(<7< >D r&c|[R"5nURSnUR[5nX0R :aUR UR S-U5 U(a@UR5 UH*nURUS5nURUSUS9 M, X RS'g)z4Update the additional help entries on the Help menu.r rcrrN) rGetAllExtraHelpSourcesListrrrrrr_extra_help_callbackr)r help_listhelpmenuhelpmenu_lengthentryr?s r$r$EditorWindow.reset_help_menu_entriess779 ==("..- 66 6 OOT66:_ M   " " $"//a9$$58S$A#!) fr&c^U4U4SjjnU$)z9Return a callback that loads resource (file or web page).cz>URS5(d[RRU5n[R SSS:Xa[R "U5 g[R"U5 g![a3n[R"S[U5TRS9 SnAgSnAff=f)N)wwwhttprArBrr)rIrzr{rrr~rrrrrXrMrr)helpfilerrs r$display_extra_help=EditorWindow._extra_help_callback..display_extra_helps&&7777++H5||BQ5(<LL* ) <((/G #C<>$q*#=#=  &%,EGD9/D4GE)!CL)  *)S#*9>AH&&w/>..H--D KK3  )' 2 %,,. #::9E  wzC'7)'C)1+,!.!3/=::F >> *tyy*?GG48DII1**!%%(E*9!9 $yy * *sOG> G1 G1+ H7G6 H G.6 HHH I-AI((I-c^U4U4SjjnU$)Nc8>TRRUS9 g)N)editFile)rr) fn_closurers r$open_recent_file=EditorWindow.__recent_file_callback..open_recent_files GGLL*L -r&r])rrrs` r$__recent_file_callback#EditorWindow.__recent_file_callbacks(1 .r&c~UR5nUR5nU(a1U(a*[R"5(dUS-U-[-nOU(aUnO U(aUnOSnU=(d U=(d UnUR 5(d SU-nSU-nUR RU5 UR RU5 [R"5(aLUR RSU5 UR RSUR 5(+5 gg)Nz - untitledz*%s*z*%sz -titlepathz -modified) short_title long_titler isCocoaTk _py_version get_savedrwm_title wm_iconname wm_attributes)rshortlongricons r$rEditorWindow.saved_change_hooks  "  T&"2"2"4"4EMD(;6E E EE%%~~UNE4)rrs r$rEditorWindow.short_title8s-77##-5rww)E:Er&c@URR=(d S$)NrC)rrrs r$rEditorWindow.long_title<sww%2%r&c$UR5 gr[)rBr*s r$r EditorWindow.center_insert_event?s r&cURnUR5up4URU5nXC- n[SXVS-- 5nUR [ U55 g)NrcrD)rMgetwindowlinesrmaxrr)rmarkrMrbotr$rQnewtops r$rBEditorWindow.centerCsSyy&&(%Q*+ 5=!r&cURnURS5nURS5nX#:Xa)UR5S:Xa[US5nX$-S- nX#4$)Nrz@0,65535rcrQ)rMr winfo_heightrJ)rrMrrrQs r$rEditorWindow.getwindowlinesKs]yynnV$nnZ( :$++-2h(F,"Cxr&c`URn[[URU555$r))rMrJrr)rrrMs r$rEditorWindow.getlinenoUs$yy5D)*++r&cURR5n[R"SU5n[ [ [ UR555$)zReturn (width, height, x, y)z(\d+)x(\d+)\+(-?\d+)\+(-?\d+))r wm_geometryrematchlistr0rJgroups)rgeomms r$ get_geometryEditorWindow.get_geometryYs=xx##% HH5t <CQXXZ())r&c$UR5 gr[)rr*s r$rEditorWindow.close_event_s r&c\UR(aUR5(dlURR5S:waURR 5 URR 5 URR 5 URR5$g)Nr)rrrrR deiconifylowerlift maybesavers r$rEditorWindow.maybesavecsl 77>>##88>>#X-HH&&(  77$$& & r&cUR5n[U5S:waUR5 U$![a gf=f)Ncancel)rrX_closeAttributeError)rreplys r$rEditorWindow.closels? NN$E5zX% L   s03 AAcjURR(a#URURRS9 [R"UR 5 UR 5 URR5 SUlSUlUR(a!URR5 SUl SUl SUl URR5 SUl URR5 UR(aUR5 gg)N)r)rrrrunregister_callbackrunload_extensionsrrrrMrrrdestroyrOrs r$rEditorWindow._closeus 77    ) )4773C3C ) D""4#7#78     :: JJ   DJ     ?? OO  r&c20UlUR5 gr)) extensionsload_standard_extensionsrs r$rEditorWindow.load_extensionss %%'r&c[URR55H&n[US5(dMUR 5 M( 0Ulg)Nr)rrvaluesrr)rinss r$r EditorWindow.unload_extensionss=..01CsG$$ 2r&cUR5HnURU5 M g! [S[U55 [R "5 MI=f)NzFailed to load extension)r}load_extensionprintrepr traceback print_exc)rrGs r$r%EditorWindow.load_standard_extensionssJ557D &##D)8 &0$t*=##%s +,Ac*[R"SS9$)NT) editor_only)r GetExtensionsrs r$r})EditorWindow.get_standard_extension_namess%%$77r&ZzDummyzzdummycURRX5n[R"SU-[S9n[X15n[R"U5n[US5(aURURU5 U"U5nX`RU'U(aURU5 UHnUR!SS5nUSSS:XaUSSnUSSS:XaMUS SS :XaUSS nUS SS :XaMUS -n[Xh5(dM^UR"R%U[Xh55 M gg![ [ 4a [R"U5nGN0f=f![ a [SU5 ef=f) NrF)packagez Failed to import extension: r-rgrcrOrtrQ_event)extfilesr importlib import_module __package__ ImportError TypeErrorrrrr~rrrrrrrMr) rrGfnamemodclsrrvevent methodnames r$rEditorWindow.load_extensionsv !!$-  5--cEk;O c //5 3 # # OOCLL' 2$i #     (!#^^C5  !n+!+ABJ!!n+ o,!+CRJ!o,'(2 3++IINN673+CD"  + 5--e4 5  2D 9  s#E&E+'E.*E++E..FcUcURRnURnXlUR 5H!up4U(dMUR "U/UQ76 M# g)z"Add events with keys to self.text.N)r0rzrMrr{r)rrrMr^rs r$rEditorWindow.apply_bindingssL ?mm33Gyy %mmoNEwu/w/.r&c  UcURRnUcURRnURnURnUHupVUR U5nU(dMUHnUcUR 5 MUupU SSS:Hn U (aU SSn [U 5up[X*5n XJ4SjnU (a)URU [5nURXXUS9 M~URXUU S9 M M g)zFill in dropdown menus used by this window. Items whose name begins with '!' become checkbuttons. Other names indicate commands. None becomes a separator. Nrc!c&URU5 gr)rrs r$rh(EditorWindow.fill_menus..commands++I6r&)rrrhrvariable)rrrhr) r0rrzrrMrrrr get_var_obj BooleanVaradd_checkbuttonr)rrrrrMmname entrylistrErrr checkbuttonrrrhvars r$rEditorWindow.fill_menuss   }}--H ?mm33G==yy ( E<<&D"=&&(',$E#(!9#3K" %ab '.u~$I"1'"EK%)7""..y*E,,5$+%(-*((u185@)B%# !)r&clURU5nU(aUR5nU$[U5er))r9r NameError)rrGr?values r$getvarEditorWindow.getvars/t$ GGIELD/ !r&clURX5nU(aURU5 g[U5er))r9rrB)rrGrCvartyper?s r$setvarEditorWindow.setvars*t-  GGEND/ !r&cURRU5nU(d(U(a!U"UR5=URU'nU$)z:Return a tkinter variable instance for the event. )rrrM)rrrGr?s r$r9EditorWindow.get_var_objsB##I.w181C CD  i (3 r&cUR(aAURRSU5=(d SURRU5;$g)NTODOSTRINGrc)rrM tag_prevrange tag_names)r text_indexs r$is_char_in_stringEditorWindow.is_char_in_stringsE ::99**6:>?tyy22:>> ?r&cURRS5nURRS5nX4$![a gf=f)NrMrPNNr)rrarbs r$get_selection_indices"EditorWindow.get_selection_indicessE IIOOK0E99??:.D;   s8; AAcPURS=(d [n[U5$)Ntabs)rMTK_TABWIDTH_DEFAULTrJ)rcurrents r$get_tk_tabwidthEditorWindow.get_tk_tabwidth&s ))F#:':7|r&c URnUR5U:wa@URRSSUSSURSU-5nUR US9 gg)Nrmr5z -displayofn)rY)rMr\r1rmaster configure)r newtabwidthrMpixelss r$set_tk_tabwidthEditorWindow.set_tk_tabwidth,s^yy    ![ 0WW\\&)T&\". "% "35F NNN ' 1r&cU(aNU(aGUR5nSUs=::aS::a O OX0lURUR:waSUlUR UR5 g)NrDrF) guess_indentrrrrd)rr"guessrs r$r#EditorWindow.set_indentation_params7sQ !!#AA{{#$ 4==0$  T]]+r&cBURnUR5up4U(a+U(a$URX45 URSU5 gUR SS5nUS:Xa;UR SSS5(aURS5 gUR 5 gUSS ;aURS5 gURn[URU55nUS :deUS - UR-UR-nS n USSnU S -n [URU55nXx::d USS ;aOM5UR5 URS U -S5 Xx:a"URSS X- -UR5 UR5 g)NrIr\rErCrQrLz insert-1crt rrcz insert-%dcrG)rMrVrrZrrTbellrrW expandtabsrrrIrr) rr^rMrarbcharsrhavewant ncharsdeleteds r$r"EditorWindow.smart_backspace_event@syy002  T KK $ MM(E *+X6 B;||Hc511 K(  "IU " KK $==5##H-.axxd...$2B2BB #2JE)A-Mu''12D|uRy5   L=0(; ; KK#"533 5 r&c8URnUR5up4UR5 U(amU(af[U5[U5:wa+URR U5UR 5 $URX45 URSU5 URSS5n[XPR5upgU[U5:XaURXpR-5 OjUR(aSnO:[UR!UR55nURn SXU -- -nUR#SXR$5 UR'S5 UR 5 g!UR 5 f=f)NrIrErHrGr\)rMrVr index2linerrrrrZrget_line_indentrrW reindent_torrrmrIrr\) rr^rMrarbprefixraw effectivepadr_s r$rEditorWindow.smart_indent_eventksDyy002   #e$ 4(88<<;;EB(  "' E( h.XX0(;F,V]]CNCc&k!  -=-=!=><<C #F$5$5dmm$D EI((A]!23C Hc+F+FG HHX   "D "sAFC4FFc URnUR5up4UR5 U(a*U(a#URX45 UR SU5 UR SS5nS[ U5pvXg:aXVS;aUS- nXg:a XVS;aMXg:Xa@URSSUR5 URS5 UR5 gUSUnSnU(a%US S;aUSS nUS- nU(a US S;aMU(aURS U-S5 UR S5S;a(URS5 UR S5S;aM(URSSUR5 [URS55n [R"URUR 5n UR"(dUR$Hmn ['X- S5n [)U 5S -n UR U S5nU R+U5 U R-UR/U 55nUcU S:XdMm O U R1W=(d S5 OUUR3S S5nU(aUSn OS n UR U S5nU R+U5 U R1S5 U R55nU[R6:wGaU[R8:XaOU[R::XaURSXR5 OU[R<:Xa UR?U RA55 OqU[RB:XaRU RE5S:aURSUUR5 O+UR?U RG55 O SU<35eURS5 UR5 gU RI5nURSXR5 U RK5(aURMU5 O-U(a&U RO5(aURQU5 URS5 UR5 g!URS5 UR5 f=f)aUInsert 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. rIrErrkrcrjr\Nrtzinsert - %d charsr!consolerLzbogus continuation type ))rMrVrrrZrrWrIrr\rrtrrParserrrrrrrset_codefind_good_parse_start_build_char_in_string_funcset_lorOget_continuation_typeC_NONEC_STRING_FIRST_LINEC_STRING_NEXT_LINES C_BRACKETrvcompute_bracket_indent C_BACKSLASHget_num_lines_in_stmtcompute_backslash_indentget_base_indent_stringis_block_openerris_block_closerr)rr^rMrarbr^rr_indentlnorcontextstartat startatindexrawtextbodrrJs r$r%EditorWindow.newline_and_indent_eventsyy002  e # E( h.88.9Dc$iq%DGu,Q%DGu,v . 779j HHX   "k"1XFA48u,CRyQ48u, /!3X>((8$- H%((8$- KK$(C(C DTZZ12Ct//?A((#55G!#-3G#'=4#7L"hh|X>GJJw'11 ;;LIKC'Q, 6"&&y(;#$Q4L#(L((<: 7# '')AGNN"333'555KK&2M2MN'+++ $$Q%=%=%?@'--- ..014 Hf$($?$?A(()C)C)EF> 8>>1 HHX   "--/F KK&*E*E F  ""''.A--//**51 HHX   " HHX   "s4A.R' "R'%1R'AR'1C(R'FR'BR''#S c(UUR4SjnU$)NcU"USU--5$)Nz+%dcr])offset _startindex_iciss r$inner6EditorWindow._build_char_in_string_func..innersv67 7r&)rR)r startindexrs r$r'EditorWindow._build_char_in_string_funcs&0.. 8 r&crUR(a"[XR5up#SU-SU--$SU-$)NrHrG)rdivmodr)rr_ntabsnspacess r$ _make_blanksEditorWindow._make_blankss5 <<#A}}5NE%<#-/ /7Nr&cURnUR5 URSSS5(aURSS5 U(a,UR SUR U5UR 5 UR5 g)NrEz!=rI)rMrrTrrIrrr)rrjrMs r$rvEditorWindow.reindent_to smyy  <<*D( ; ; KK*H 5  KK$"3"3F";33 5 r&c[UR5R5upU(a9U(a2[XR5up4[X R5up5XT- $S=pEXT- $Nr)IndentSearcherrMr{rur)ropenerindentedrx indentsmall indentlarges r$rgEditorWindow.guess_indent/sa)$))488: h.v}}E C.xG C(()* )K((r&cURcgURR(aURR5 SnOURR5 SnUR SSUS3S9 g)NShowHiderurwz Line Numbers)rErr)ris_shown hide_sidebar show_sidebarr)rr^ menu_labels r$r&EditorWindow.toggle_line_numbers_event8sp    $     % %    * * ,J    * * ,J I](2|=%A  Cr&)$rrrrOrrr r^rrrrrrrrrrrrrrrrrrirrMrrrrrrFrIr)NNNNr))rIrU)T)r2 __module__ __qualname____firstlineno__idlelib.percolatorr*idlelib.colorizerr+r, idlelib.undor-idlelib.iomenur.r/r3r0idlelib.statusbarr1idlelib.autocompleter2idlelib.autoexpandr3idlelib.calltipr4idlelib.codecontextr5idlelib.sidebarr6idlelib.formatr7r8r9r:idlelib.parenmatchr;idlelib.zoomheightr<rgetfilesystemencodingfilesystemencodingryrrrr&rrrrrrnrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr*rrrrrCrrOrRrr\rarstring ascii_lettersdigitsrkrnrrvrrrrrrrrrrrrrrrBrrrrrrrrr rr}r&rrrrDrHr9rRrVr\rdrrrrrrrvrgr__static_attributes__r]r&r$r(r(3s->*2 01-'/+MM--224H!aIF  4 )V7 ; &J#'J )1 1  E!J ,K '4      ( 0  : %K .%% 5;J A" <&GP>)" ",.\ F6%"F&",* '(( &8 9 HE80$BL""$ (,)V!#Fq#p ) Cr&r(c*[[U55$r))rJr)rs r$rtrtFs uU| r&z[ \t]*c[RU5nUR5[UR 5R U554$)zReturn 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_rerrsrWgrouprm)r^rrs r$ruruKs; d#A 557C ,,X67 77r&cb\rSrSrSrSrSr\R\RS4Sjr Sr Sr g ) riUz4Manage initial indent guess, returned by run method.cHXlS=UlUlS=UlUlgr)rMrfinished blkopenline indentedline)rrMs r$r&IndentSearcher.__init__Xs% !""/334,r&cUR(agURS-=ol[U5S-nURR USS5(agURR X"S-5$)NrCrcr!z>=rsz lineend+1c)rrrrMrTr)rrrs r$readlineIndentSearcher.readline]s_ ==VVaZFAw~ 99  T4 / /yy}}T-#788r&)classdefforifrtrywhilewithc UR(agX:Xa X(;aXPlgX:Xa UR(aXPlSUlggg)Nrc)rrr) rrLtokenstartrsr^INDENTNAMEOPENERSs r$ tokeneaterIndentSearcher.tokeneaterfs? ==  \e.#  ^ 0 0 $ DM!1^r&c[R"UR5nUHnUR"U6 M UR UR4$![R[ 4a N4f=f)zdReturn 2 lines containing block opener and and indent. Either the indent line or both may be None. )tokenizegenerate_tokensrr TokenError SyntaxErrorrr)rtokensrs r$r{IndentSearcher.runssi  --dmmrarYrbrCrz-[a-z]\bc>UR5R5$r))rupperrs r$r_!get_accelerator..saggioo&7r&z\b\w+\bcf[RUR5UR55$r))keynamesrrrs r$r_rsX\\!'')QWWY%Gr&zKey-Cancelz Ctrl-BreakzControl-zCtrl-r$+z>616 A {7;A zGKA vr1A xq)A z7A&A sCA tS!A sBA sBA Hr&cURnURSSS5 URSSS5 URSSS5 g) Ntcl_wordBreakAfterza brr tcl_wordcharsz\wtcl_nonwordcharsz\W)r1r)rr1s r$ fixwordbreaksr s? BGG %+GGE?E*GGE%u-r&cHUn[U5 [RSS(a[RSnOSn[R"US5 [ XS9nUR nSUS'[S5H'nURSSU-[U5-S-5 M) g) Nrc)rr rQrIz rj) r rargvr setupAppr(rMrVrIrX)rrrrwrMrs r$_editor_windowrs D$ xx|88A; OOD$ T 5D 99DDN 2Y Hd1fs1vo45r&__main__)rHzidlelib.idle_test.test_editorrDF) verbosityexit)r{): importlib.abcr'importlib.utilrzr~rrrrrrtkinter tkinter.fontr tkinter.ttkrrridlelib.configrr3r r r r r idlelib.multicallrrrrr idlelib.treer idlelib.utilrrrZpython_versionrrr%r(rtcompilerrurrrrr rr2unittestrHidlelib.idle_test.htestr{r]r&r$r s  ! # .$&//11  ! PCPCf0**Y'8*3*3^$   ( V. 6& z (AEB+ r&