Ñò
ïžòKc           @   sÏ  d  d k  Z  d  d k Z d  d k Z d  d k Z d  d k l Z d  d k Td  d k Z d  d k Z d  d k	 l
 Z
 d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k l Z d  d k Z d  d k Z d  d k Z d  d k Z d Z d „  Z e d „ Z d	 e f d
 „  ƒ  YZ d „  Z d „  Z d  d k  Z  e  Z! [  d e f d „  ƒ  YZ" d „  Z# h d d 6d d 6d d 6Z$ d „  Z% d „  Z& d „  Z' e( d j o e' ƒ  n d S(   iÿÿÿÿN(   t   count(   t   *(   t   MultiCallCreator(   t   idleConfi   c          C   sn   t  i \ }  } } } } d |  | f } | o | d | 7} n | d j o | d | d | f 7} n | S(   sY   Format sys.version_info to produce the Sphinx version string used to install the chm docss   %s%ss   %st   finali    (   t   syst   version_info(   t   majort   minort   microt   levelt   serialt   release(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   _sphinx_version   s    c         C   sÇ   d } x± |  i d ƒ D]  } | d j	 o | i ƒ  n t i | | ƒ \ } } } | d t i j o Pn t i | | | | ƒ } y | i } Wq t j
 o t	 d | i
 ‚ q Xq W| | | f S(   sC   Version of imp.find_module() that handles hierarchical module namest   .i   s   No source for module N(   t   Nonet   splitt   closet   impt   find_modulet	   PY_SOURCEt   load_modulet   __path__t   AttributeErrort   ImportErrort   __name__(   t   fullnamet   patht   filet   tgtt   filenamet   descrt   module(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   _find_module#   s     t   EditorWindowc           B   sn  e  Z d  d k l Z d  d k l Z d  d k l Z d  d k l Z l Z l Z d  d k Z d  d k	 l
 Z
 d  d k l Z d Z d d d d d „ Z d	 „  Z d
 „  Z d „  Z d „  Z d d „ Z d{ d| d} d~ d d€ d� g Z e i ƒ  o e d =d‚ e d <n d „  Z d  „  Z d Z d! „  Z dƒ g Z d$ „  Z d d% „ Z d d& „ Z d d' „ Z d d( „ Z  d) „  Z! d* „  Z" d+ „  Z# d d, „ Z$ d d- „ Z% d. „  Z& d/ „  Z' d0 „  Z( d1 „  Z) d2 „  Z* d3 „  Z+ d4 „  Z, d5 „  Z- d6 „  Z. d d7 „ Z/ d d8 „ Z0 d d9 „ Z1 d: „  Z2 d; „  Z3 d< „  Z4 d= „  Z5 d> „  Z6 d? „  Z7 d@ „  Z8 dA „  Z9 dB „  Z: dC „  Z; dD „  Z< dE „  Z= dF „  Z> dG „  Z? d dH „ Z@ dI „  ZA dJ „  ZB dK „  ZC dL „  ZD dM „  ZE dN „  ZF dO „  ZG dP „  ZH dQ dR „ ZI dS „  ZJ dQ dT „ ZK dU „  ZL dV „  ZM dW „  ZN dX „  ZO dY „  ZP dZ „  ZQ d[ „  ZR d\ „  ZS d] „  ZT d^ „  ZU d d_ „ ZV d d d` „ ZW da „  ZX d db „ ZY d dc „ ZZ dd „  Z[ de „  Z\ df „  Z] dg „  Z^ e_ dh „ Z` di „  Za dj „  Zb dk „  Zc dl „  Zd dm „  Ze dn „  Zf do „  Zg dp „  Zh dq „  Zi dr „  Zj ds „  Zk dt „  Zl du „  Zm dv „  Zn dw „  Zo dx „  Zp dy „  Zq dz „  Zr RS(„   iÿÿÿÿ(   t
   Percolator(   t   ColorDelegator(   t   UndoDelegator(   t	   IOBindingt   filesystemencodingt   encodingN(   t   Toplevel(   t   MultiStatusBarc         C   sã	  t  i d  j ost i i t i d d ƒ } t i i	 d ƒ oW d d t i
 d  } t i i d ƒ o
 d } qd	 } t i i | | d d ƒ } n� t i d  d
 j oC t i i t i d d t ƒ  ƒ } t i i | ƒ o
 | } qn* t i ƒ  o t i i t i d ƒ } n t i i | ƒ } t i i | ƒ o1 | t  _ t i d j o d t  i t  _ qqƒd t i
 d  t  _ n t i ƒ  }	 | |  _ | p | i } | |  _ y t i Wn t j
 o d t _ n Xt | ƒ |  _ t i | d |  i ƒ|  _ }
 | o | i |  _ | i |  i _ n h  |  _ h  |  i _ t i i t i  ƒ  d ƒ |  _! t" |
 ƒ |  _# } t$ | d d ƒ|  _% } t i& d d d ƒ |  _' h d d 6d d 6d d 6|  i' d 6t i& d d d ƒ d 6} t( d j o d  | d! <n t) t* ƒ | | � |  _+ } |  i+ |  i _, |  i- ƒ  |  i. ƒ  |  i i/ d" |  i0 ƒ |  i i1 d# |  i2 ƒ t i ƒ  o | i1 d# |  i2 ƒ n | i1 d$ |  i3 ƒ | i1 d% |  i4 ƒ | i1 d& |  i5 ƒ | i1 d' |  i6 ƒ | i1 d( |  i7 ƒ | i1 d) |  i8 ƒ | i1 d* |  i9 ƒ | i1 d+ |  i: ƒ | i1 d, |  i; ƒ | i1 d- d. „  ƒ | i1 d/ |  i< ƒ | i1 d0 |  i= ƒ | i1 d1 |  i> ƒ | i1 d2 |  i? ƒ | i1 d3 |  i@ ƒ | i1 d4 |  iA ƒ | i1 d5 |  iB ƒ | i1 d6 |  iC ƒ | i1 d7 |  iD ƒ | i1 d8 |  iE ƒ | i1 d9 |  iF ƒ | i1 d: |  iG ƒ | i1 d; |  iH ƒ | i1 d< |  iI ƒ | i1 d= |  iJ ƒ | i1 d> |  iK ƒ | i1 d? |  iL ƒ | i1 d@ |  iM ƒ | i1 dA |  iN ƒ | i1 dB |  iO ƒ | i1 dC |  iP dD ƒ ƒ | i1 dE |  iP dF ƒ ƒ | i1 dG |  iQ ƒ | i1 dH |  iR ƒ | i1 dI |  iS ƒ | ox | | i |  <| o |  | iT | <n | i1 dJ |  iU ƒ | i1 dK |  i iV ƒ | i1 dL |  iW ƒ | i1 dM |  iX ƒ n |  iY ƒ  | iZ | dN <| i[ dO t\ dP t] ƒ | i^ | dQ <dR } t i& d d dS dT dU ƒo
 dV } n | i_ dW t i& d d dW ƒ t i& d d dX ƒ | f ƒ | i[ dO t` dP ta dY dF ƒ | i[ dO tb dP ta dY dF ƒ | ic ƒ  t i& d dZ d[ dT dU ƒ} | |  _d d\ |  _e |  ie |  _f |  ig ƒ  th |  _i dg |  _j |  ik | ƒ |  _l } |  im ƒ  |  _n } | io | ƒ | ip | _p | iq | _q | ir |  is ƒ |  it |  ƒ |  _u } | iv |  iw ƒ t |  i ƒ |  _x |  iy d` iz d da db dc dD d |  ix ƒ|  i{ ƒ  d  |  _| | oI t i i} | ƒ o% t i i | ƒ o | i~ | ƒ q	| i | ƒ n |  i€ ƒ  |  is ƒ  |  i� |  i‚ | ƒ ƒ |  iƒ ƒ  |  iy i„ dd ƒ } | oh | i… de ƒ } | d  j o
 df } n | dD j o | i† ƒ  | dF } n | |  _‡ t iˆ |  i‰ ƒ n tŠ i‹ |  _‹ tŒ i� |  _� tŠ iŽ |  _Ž d  S(h   Nt   Docs
   index.htmlt   linuxs   python-docs-s   %s.%s.%si   s   /var/www/html/python/s   /var/www/html/python/index.htmls   /usr/share/doc/t   wins   Python%s.chms0   Resources/English.lproj/Documentation/index.htmlt   darwins   file://s   http://docs.python.org/%d.%di   s   >>> t   menus   recent-files.lstt   namet   vbart   mainR"   t   widtht   texti   t   padxt   nonet   wrapt   heightg      !@t   wordprocessort   tabstylet   WM_DELETE_WINDOWs   <<close-window>>s   <<cut>>s   <<copy>>s	   <<paste>>s   <<center-insert>>s   <<help>>s   <<python-docs>>s   <<about-idle>>s   <<open-config-dialog>>s   <<open-module>>s   <<do-nothing>>c         S   s   d  S(   t   break(    (   t   event(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   <lambda>“   s    s   <<select-all>>s   <<remove-selection>>s   <<find>>s   <<find-again>>s   <<find-in-files>>s   <<find-selection>>s   <<replace>>s   <<goto-line>>s   <3>s   <<smart-backspace>>s   <<newline-and-indent>>s   <<smart-indent>>s   <<indent-region>>s   <<dedent-region>>s   <<comment-region>>s   <<uncomment-region>>s   <<tabify-region>>s   <<untabify-region>>s   <<toggle-tabs>>s   <<change-indentwidth>>s   <Left>i    s   <Right>i   s   <<del-word-left>>s   <<del-word-right>>s   <<beginning-of-line>>s   <<open-new-window>>s   <<close-all-windows>>s   <<open-class-browser>>s   <<open-path-browser>>t   commandt   sidet   fillt   yscrollcommandt   normals	   font-boldt   typet   boolt   boldt   fonts	   font-sizet   expandt   Indents
   use-spacesi   i2   iô  i@KL R   t   labels   Recent Filest	   underlinet   windowst   endiÿÿÿÿ(   i2   iô  i@KL (�   R"   t   help_urlR   t   osR   t   joinR   t   prefixt   platformR    R   t   isdirR   t   isfilet   macosxSupportt   runningAsOSXAppt   normpathR   t   CurrentThemet   flistt   roott   ps1R   t   Menut   menubart
   WindowListt   ListedToplevelt   topt   varst   tkinter_varst   inversedictt   instance_dictt   GetUserCfgDirt   recent_files_patht   Framet
   text_framet	   ScrollbarR1   t	   GetOptionR3   t	   TkVersionR   t   TextR4   t   focused_widgett   createmenubart   apply_bindingst   protocolR   t   bindt   close_eventt   cutt   copyt   pastet   center_insert_eventt   help_dialogt   python_docst   about_dialogt   config_dialogt   open_modulet
   select_allt   remove_selectiont
   find_eventt   find_again_eventt   find_in_files_eventt   find_selection_eventt   replace_eventt   goto_line_eventt   right_menu_eventt   smart_backspace_eventt   newline_and_indent_eventt   smart_indent_eventt   indent_region_eventt   dedent_region_eventt   comment_region_eventt   uncomment_region_eventt   tabify_region_eventt   untabify_region_eventt   toggle_tabs_eventt   change_indentwidth_eventt   move_at_edge_if_selectiont   del_word_leftt   del_word_rightt   home_callbackt   dictt   new_callbackt   close_all_callbackt   open_class_browsert   open_path_browsert   set_status_bart   yviewt   packt   RIGHTt   Yt   sett   configt   LEFTt   BOTHt   TOPt	   focus_sett   usetabst   tabwidtht   indentwidtht   set_notabs_indentwidtht   Falset   context_use_ps1t   num_context_linesR#   t   perR%   t   undot   insertfiltert   undo_block_startt   undo_block_stopt   set_saved_change_hookt   saved_change_hookR&   t   iot   set_filename_change_hookt   filename_change_hookt   recent_files_menut   menudictt   insert_cascadet   update_recent_files_listt   colort   existst   loadfilet   set_filenamet   ResetColorizert   set_indentation_paramst   ispythonsourcet   load_extensionst   gett   indext   add_separatort	   wmenu_endt   register_callbackt   postwindowsmenut   tkMessageBoxt   askyesnot   tkSimpleDialogt
   askintegert	   showerror(   t   selfRY   R   t   keyRZ   t   dochomet   pyvert   basepatht   chmfilet   currentThemeR`   Rh   R1   t   text_optionsR4   t
   fontWeightt	   usespacesR«   R¬   R²   R/   RM   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   __init__?   s:   
				







	
		

	'




	c         C   s   t  | t ƒ p | o | Sy | i |  i ƒ SWnG t j
 o; y | i |  i ƒ SWq{ t j
 o | i d ƒ SXn Xd S(   s8   convert filename to unicode in order to display it in Tks	   iso8859-1N(   t
   isinstancet   unicodet   decodeR'   t   UnicodeDecodeErrorR(   (   RÌ   R   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   _filename_to_unicode  s    c         C   s)   |  i  i ƒ  \ } } |  i i | ƒ d S(   NR<   (   R²   t   defaultfilenameRY   t   new(   RÌ   R=   t   dirnamet   basename(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR•   (  s    c         C   s4  | i  d @d j o | i d j o d  S|  i i d ƒ o[ |  i i d d d ƒ oB |  i i d d d ƒ o) t |  i i d ƒ i d ƒ d	 ƒ } nU |  i i d d ƒ } x< t t	 | ƒ ƒ D] } | | d j o Pq¿ q¿ Wt	 | ƒ } t |  i i d ƒ i d ƒ d	 ƒ } | | j o
 d } n d t
 | ƒ d } | i  d	 @d j o |  i i d d d ƒ n¥ |  i i d ƒ p |  i i d d ƒ n |  i i | ƒ } |  i i d ƒ } |  i i | d | ƒ o | | } } n |  i i d d d ƒ |  i i d | | ƒ |  i i d | ƒ |  i i d ƒ d S(   Ni   i    t   Homet   iomarks   <=s   insert lineends   insert linestartR   i   t    s   	t   inserts   insert linestart+t   ct   sels   1.0RM   s	   sel.firstt   anchort   >R<   (   Râ   s   	(   t   statet   keysymR4   RÂ   t   comparet   intR   RÁ   t   xranget   lent   strt
   tag_removet   mark_sett   tag_addt   see(   RÌ   R=   t   insertptt   linet   lineatt   destt   firstt   last(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR“   -  s:    $) 	%
c         C   sÍ   |  i  |  i ƒ |  _ t i ƒ  o |  i i d d d t ƒn |  i i d d d t ƒ|  i i d d d t ƒ|  i i d t d t	 ƒ |  i
 i d	 |  i ƒ |  i
 i d	 d
 d ƒ |  i
 i |  i ƒ d  S(   Nt	   _padding1s       R@   t   columns   Col: ?Rô   s   Ln: ?RA   s   <<set-line-and-column>>s   <KeyRelease>s   <ButtonRelease>(   R*   R`   t
   status_barRU   RV   t	   set_labelRœ   R›   t   BOTTOMt   XR4   Rq   t   set_line_and_columnt	   event_addt
   after_idle(   RÌ   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR™   Y  s    
c         C   sS   |  i  i t ƒ i d ƒ \ } } |  i i d d | ƒ |  i i d d | ƒ d  S(   NR   Rú   s   Col: %sRô   s   Ln: %s(   R4   RÂ   t   INSERTR   Rû   Rü   (   RÌ   R=   Rô   Rú   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRÿ   g  s    !R   t   _Filet   editt   _Editt   formatt   F_ormatt   runt   _Runt   optionst   _OptionsRL   t   _Windowst   helpt   _Helpiýÿÿÿt   _Windowiþÿÿÿc         C   sê   |  i  } h  |  _ } x_ |  i D]T \ } } t | ƒ \ } } t | d | ƒ| | <} | i d | d | d | ƒ q  Wt i ƒ  o4 t | d d ƒ| d <} | i d d d | ƒ n |  i ƒ  |  i d i	 t
 ƒ |  _ |  i ƒ  d  S(	   NR0   RJ   R/   RK   t   applet   applicationt   IDLER  (   R]   R¶   t
   menu_specst   prepstrR\   t   add_cascadeRU   RV   t
   fill_menusRÂ   t   ENDt   base_helpmenu_lengtht   reset_help_menu_entries(   RÌ   t   mbarR¶   R0   RJ   RK   R/   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRn   {  s    	
  
c         C   so   |  i  d } | i d ƒ } | d  j o
 d } n | |  i j o | i |  i d | ƒ n t i | ƒ d  S(   NRL   RM   iÿÿÿÿi   (   R¶   RÂ   R   RÄ   t   deleteR^   t   add_windows_to_menu(   RÌ   R/   RM   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRÆ   Œ  s    
c         C   sÌ   |  i  i d d d ƒ |  i  i d d | i | i f ƒ |  i p |  i ƒ  n |  i } | |  _ t i	 d  d j } | o |  i  i
 d d	 ƒ n | i | i | i ƒ | o |  i  i
 d d
 ƒ n d  S(   NRå   s   1.0RM   Rã   s   @%d,%di   R-   t   cursort   arrowt   ibeam(   R4   Rï   Rð   t   xt   yt   rmenut
   make_rmenuR=   R   RR   RŸ   t   tk_popupt   x_roott   y_root(   RÌ   R=   R"  t   iswin(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR„   ˜  s    #
		t   Closes   <<close-window>>c         C   sd   t  |  i d d ƒ} x? |  i D]4 \ } } |  i | d „ } | i d | d | ƒ q W| |  _ d  S(   Nt   tearoffi    c         S   s   |  i  | ƒ d  S(   N(   t   event_generate(   R4   t	   eventname(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR?   ®  s    RJ   R?   (   R\   R4   t   rmenu_specst   add_commandR"  (   RÌ   R"  RJ   R+  R?   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR#  «  s    
 c         C   s   t  i |  i d ƒ d  S(   Ns
   About IDLE(   t   aboutDialogt   AboutDialogR`   (   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRy   ³  s    c         C   s   t  i |  i d ƒ d  S(   Nt   Settings(   t   configDialogt   ConfigDialogR`   (   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRz   ¶  s    c         C   sG   t  i i t  i i t  i i t ƒ ƒ d ƒ } t i |  i d | ƒ d  S(   Ns   help.txtt   Help(	   RO   R   RP   t   abspathRÞ   t   __file__t   textViewt	   view_fileR`   (   RÌ   R=   t   fn(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRw   ¹  s    -c         C   s<   t  i d  d j o t i |  i ƒ n t i |  i ƒ d S(   Ni   R-   R<   (   R   RR   RO   t	   startfileRN   t
   webbrowsert   open(   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRx   ½  s    c         C   s   |  i  i d ƒ d S(   Ns   <<Cut>>R<   (   R4   R*  (   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRs   Ä  s    c         C   s,   |  i  i d ƒ p d  S|  i  i d ƒ d S(   NRå   s   <<Copy>>R<   (   R4   t
   tag_rangesR*  (   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRt   È  s    c         C   s$   |  i  i d ƒ |  i  i d ƒ d S(   Ns	   <<Paste>>Rã   R<   (   R4   R*  Rò   (   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRu   Ï  s    c         C   s=   |  i  i d d d ƒ |  i  i d d ƒ |  i  i d ƒ d S(   NRå   s   1.0s   end-1cRã   R<   (   R4   Rñ   Rð   Rò   (   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR|   Ô  s    c         C   s*   |  i  i d d d ƒ |  i  i d ƒ d  S(   NRå   s   1.0RM   Rã   (   R4   Rï   Rò   (   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR}   Ú  s    c            s:   |  i  i ‰  |  i  i ‰ d ‰ ‡  ‡ ‡ ‡ f d †  } | S(   sè   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.

        s   sel.first+1cs   sel.last-1cc            sQ   |  i  d @d j o9 y ˆ  d ƒ ˆ d ˆ ˆ ƒ WqM t j
 o qM Xn d  S(   Ni   i    s	   sel.firstRã   (   Rè   t   TclError(   R=   (   t   self_text_indext   edges_tablet   self_text_mark_sett
   edge_index(    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   move_at_edgeé  s    
(   s   sel.first+1cs   sel.last-1c(   R4   RÂ   Rð   (   RÌ   RA  RB  (    (   R>  R?  R@  RA  s*   scripts/common/Lib/idlelib/EditorWindow.pyR�   Þ  s
    c         C   s   |  i  i d ƒ d S(   Ns   <Meta-Delete>R<   (   R4   R*  (   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR‘   ò  s    c         C   s   |  i  i d ƒ d S(   Ns   <Meta-d>R<   (   R4   R*  (   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR’   ö  s    c         C   s   t  i |  i ƒ d S(   NR<   (   t   SearchDialogt   findR4   (   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR~   ú  s    c         C   s   t  i |  i ƒ d S(   NR<   (   RC  t
   find_againR4   (   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR   þ  s    c         C   s   t  i |  i ƒ d S(   NR<   (   RC  t   find_selectionR4   (   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR�     s    c         C   s    t  i |  i |  i |  i ƒ d S(   NR<   (   t
   GrepDialogt   grepR4   R²   RY   (   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR€     s    c         C   s   t  i |  i ƒ d S(   NR<   (   t   ReplaceDialogt   replaceR4   (   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR‚   
  s    c         C   st   |  i  } t i d d d | ƒ} | d  j o d S| d j o | i ƒ  d S| i d d | ƒ | i d ƒ d  S(   Nt   Gotos   Go to line number:t   parentR<   i    Rã   s   %d.0(   R4   RÉ   RÊ   R   t   bellRð   Rò   (   RÌ   R=   R4   t   lineno(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRƒ     s    		
c   	      C   s^  y |  i  i d d ƒ } Wn t j
 o d } n X| i ƒ  } t i d d d |  i  d | ƒ} | o | i ƒ  } n | p d  Sy" t | ƒ \ } } \ } } } Wn; t t f j
 o) } t	 i
 d t | ƒ d |  i  ƒd  SX| t i j o" t	 i
 d	 d
 | d |  i  ƒd  S| o | i ƒ  n |  i o |  i i | ƒ n |  i i | ƒ d  S(   Ns	   sel.firsts   sel.lastt    t   ModulesA   Enter the name of a Python module
to search on sys.path and open:RL  t   initialvalues   Import errors   Unsupported types   %s is not a source module(   R4   RÁ   R=  t   stripRÉ   t	   askstringR!   t	   NameErrorR   RÇ   RË   Rî   R   R   R   RY   R;  R²   R»   (	   RÌ   R=   R0   t   fR   t   suffixt   modeRD   t   msg(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR{     s4    	"	
c         C   s—   |  i  i } | p+ t i d d d |  i ƒ|  i i ƒ  d  St i i	 | ƒ \ } } t i i
 | ƒ \ } } d d  k } | i |  i | | g ƒ d  S(   Ns   No filenames&   This buffer has no associated filenamet   masteriÿÿÿÿ(   R²   R   RÇ   RË   R4   R£   R   RO   R   R   t   splitextt   ClassBrowserRY   (   RÌ   R=   R   t   headt   tailt   baset   extR[  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR—   ;  s    
c         C   s    d d  k  } | i  |  i ƒ d  S(   Niÿÿÿÿ(   t   PathBrowserRY   (   RÌ   R=   R`  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR˜   I  s    c         C   so   | d  j	 o^ | d j oQ |  i i d d | ƒ |  i i d d d ƒ |  i i d d d ƒ |  i ƒ  n d  S(   Ni    Rã   s   %d.0Rå   s   1.0RM   s
   insert +1l(   R   R4   Rð   Rï   Rñ   t   center(   RÌ   RN  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   gotolineM  s
    c         C   sÂ   | p t  i i | ƒ o t St  i i t  i i | ƒ ƒ \ } } t  i i | ƒ d j o t Sy& t | ƒ } | i ƒ  } | i	 ƒ  Wn t
 j
 o t SX| i d ƒ o | i d ƒ d j S(   Ns   .pys   .pyws   #!t   pythoni    (   s   .pys   .pyw(   RO   R   RS   t   TrueRZ  Rß   t   normcaseR;  t   readlineR   t   IOErrorR¨   t
   startswithRD  (   RÌ   R   R^  R_  RU  Rô   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR¿   T  s    $c         C   s+   |  i  o |  i  i |  ƒ d  |  _  n d  S(   N(   RY   t   unregister_maybe_terminateR   (   RÌ   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt
   close_hookb  s    
c         C   s   | |  _  d  S(   N(   Rj  (   RÌ   Rj  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   set_close_hookg  s    c         C   sF   |  i  o |  i  i |  ƒ n |  i ƒ  |  i i |  ƒ |  i ƒ  d  S(   N(   RY   t   filename_changed_editR±   R`   t   update_windowlist_registryR½   (   RÌ   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR´   j  s
    

c         C   sƒ   |  i  o d  S|  i |  i i ƒ o |  i ƒ  |  _  n |  i  o= |  i i |  i ƒ |  i i |  i  ƒ |  i i |  i ƒ n d  S(   N(	   R¹   R¿   R²   R   R$   R«   t   removefilterR¬   R­   (   RÌ   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   _addcolorizerq  s    

c         C   s<   |  i  p d  S|  i  i ƒ  |  i i |  i  ƒ d  |  _  d  S(   N(   R¹   t   removecolorsR«   Rn  R   (   RÌ   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   _rmcolorizer|  s
    
c         C   s¤   |  i  ƒ  |  i ƒ  t i d d d ƒ } t i | d ƒ } t i | d d d ƒ} t i | d ƒ } |  i i d	 | d	 d
 | d
 d | d | d	 d | d
 ƒ d S(   s   Update the colour themeR2   t   ThemeR0   RC   R  t   fgBgt   fgt   hilitet
   foregroundt
   backgroundt   insertbackgroundt   selectforegroundt   selectbackgroundN(   Rq  Ro  R   Rj   t   GetHighlightR4   RŸ   (   RÌ   t   themet   normal_colorst   cursor_colort   select_colors(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR½   ƒ  s    




c         C   sj   d } t  i d d d d d ƒo
 d } n |  i i d t  i d d d ƒ t  i d d d	 ƒ | f ƒ d
 S(   s.   Update the text widgets' font if it is changedRC   R2   R"   s	   font-boldRD   RE   RF   RG   s	   font-sizeN(   R   Rj   R4   RŸ   (   RÌ   RÔ   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt	   ResetFont”  s    
c         C   s«   t  i ƒ  |  i _ } x- | i ƒ  D] \ } } |  i i | | Œ q# Wx^ |  i ƒ  D]P } t  i | ƒ } | o4 x1 | i ƒ  D] \ } } |  i i | | Œ q| WqS qS Wd S(   s/   Remove the keybindings before they are changed.N(	   R   t   GetCurrentKeySett   Bindingst   default_keydefst   itemsR4   t   event_deletet   get_standard_extension_namest   GetExtensionBindings(   RÌ   t   keydefsR=   t   keylistt   extensionNamet   xkeydefs(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   RemoveKeybindingsž  s       c      
   C   sÛ  t  i ƒ  |  i _ } |  i ƒ  x; |  i ƒ  D]- } t  i | ƒ } | o |  i | ƒ q- q- Wh  } xf |  i i D]X } h  | | d <xA | d D]5 } | o( | d | | d t | d ƒ d <q� q� Wqq Wx|  i	 i
 ƒ  D]ö } |  i	 | } | i t ƒ d } xÍ t d | ƒ D]¼ }	 | i |	 ƒ d j o  | i |	 d ƒ }
 |
 oƒ | i |	 d ƒ } d } | i | ƒ o* | | i | ƒ o | | | } qšn | o& t | | ƒ }
 | i |	 d |
 ƒqËqÏqqWqÝ Wd S(   s-   Update the keybindings after they are changedi    i   R?   t   acceleratorRJ   RO  N(   R   R�  R‚  Rƒ  Ro   R†  R‡  t   menudefsR  R¶   t   keysRÂ   R  t   rangeRD   t	   entrycgett   has_keyt   get_acceleratort   entryconfig(   RÌ   Rˆ  RŠ  R‹  t   menuEventDictR/   t   itemt   menubarItemRM   RÂ   t   accelt   itemNameR=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   ApplyKeybindingsª  s@    
   0  c         C   s0   |  i  p" t i d d d d d ƒ|  _ n d S(   sC   Update the indentwidth if changed and not using tabs in this windowR2   RI   s
   num-spacesRD   Rë   N(   R¤   R   Rj   R¦   (   RÌ   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR§   Ê  s    
c         C   s·   t  i ƒ  } |  i d } | i t ƒ } | |  i j o | i |  i d | ƒ n | oL | i ƒ  x? | D]3 } |  i | d ƒ } | i	 d | d d | ƒ qk Wn | |  i d <d S(   s3   Update the additional help entries on the Help menuR  i   RJ   i    R?   N(
   R   t   GetAllExtraHelpSourcesListR¶   RÂ   R  R  R  RÃ   t"   _EditorWindow__extra_help_callbackR-  (   RÌ   t	   help_listt   helpmenut   helpmenu_lengtht   entryt   cmd(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR  Ñ  s    
 "c         C   s   | d „ } | S(   sC   Create a callback with the helpfile value frozen at definition timec         S   s\   |  i  d ƒ p t i i |  ƒ } n t i d  d j o t i |  ƒ n t i |  ƒ d  S(   Nt   wwwt   httpi   R-   (   R¢  R£  (	   Rh  RO   R   RW   R   RR   R9  R:  R;  (   t   helpfilet   url(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   display_extra_helpä  s
    (    (   RÌ   R¤  R¦  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   __extra_help_callbackâ  s    c         C   s  g  } t  i i |  i ƒ o4 t |  i d ƒ } z | i ƒ  } Wd | i ƒ  Xn | oH t  i i | ƒ d } | | j o | i | ƒ n | i	 d | ƒ n g  } xG | D]? } d | j p t  i i | d d !ƒ o | i
 | ƒ q¬ q¬ Wg  } | D] } | | j o | | qú qú ~ } d } | d t | ƒ !} t |  i d ƒ } z | i | ƒ Wd | i ƒ  Xx© |  i i i ƒ  D]• }	 |	 i }
 |
 i d	 t ƒ xs t t ƒ  | ƒ D]_ \ } } | d d !} |  i | ƒ } |	 i | ƒ } |
 i d
 | | d | d | d d ƒ q°Wq~Wd S(   s/   Load and update the recent files list and menust   rNs   
i    t    iÿÿÿÿt   1234567890ABCDEFGHIJKt   wi   RJ   Râ   R?   RK   (   RO   R   Rº   Rf   R;  t	   readlinesR   R4  t   removeRã   t   appendRí   t
   writelinesR`   Rd   R�  Rµ   R  R  t   zipR    RÛ   t#   _EditorWindow__recent_file_callbackR-  (   RÌ   t   new_filet   rf_listt   rf_list_filet	   bad_pathsR   t   _[1]t   ulcharst   rf_filet   instanceR/   t   iR   t	   file_namet
   ufile_namet   callback(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR¸   í  sF     (2 	 c            s   | ‡  f d † } | S(   Nc            s   ˆ  i  i d |  ƒ d  S(   Nt   editFile(   R²   R;  (   t
   fn_closure(   RÌ   (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   open_recent_file  s    (    (   RÌ   R»  RÀ  (    (   RÌ   s*   scripts/common/Lib/idlelib/EditorWindow.pyt   __recent_file_callback  s    c         C   s½   |  i  ƒ  } |  i ƒ  } | o | o | d | } n) | o
 | } n | o
 | } n d } | p | p | } |  i ƒ  p d | } d | } n |  i i | ƒ |  i i | ƒ d  S(   Ns    - t   Untitleds   *%s*s   *%s(   t   short_titlet
   long_titlet	   get_savedR`   t   wm_titlet   wm_iconname(   RÌ   t   shortt   longt   titlet   icon(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR±     s    


c         C   s   |  i  i ƒ  S(   N(   R¬   RÅ  (   RÌ   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRÅ  ,  s    c         C   s   |  i  i | ƒ d  S(   N(   R¬   t	   set_saved(   RÌ   t   flag(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRÌ  /  s    c         C   s   |  i  i ƒ  d  S(   N(   R¬   t
   reset_undo(   RÌ   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRÎ  2  s    c         C   s6   |  i  i } | o t i i | ƒ } n |  i | ƒ S(   N(   R²   R   RO   R   Rß   RÛ   (   RÌ   R   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRÃ  5  s    c         C   s   |  i  |  i i p d ƒ S(   NRO  (   RÛ   R²   R   (   RÌ   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRÄ  <  s    c         C   s   |  i  ƒ  d  S(   N(   Ra  (   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRv   @  s    Rã   c         C   sb   |  i  } |  i ƒ  \ } } |  i | ƒ } | | } t d | | d ƒ } | i t | ƒ ƒ d  S(   Ni   i   (   R4   t   getwindowlinest	   getlinenot   maxRš   t   float(   RÌ   t   markR4   R`   t   botRN  R8   t   newtop(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRa  C  s    	
c         C   ss   |  i  } |  i d ƒ } |  i d ƒ } | | j o5 | i ƒ  d j o" t | d ƒ } | | d } n | | f S(   Ns   @0,0s   @0,65535i   R8   (   R4   RÐ  t   winfo_heightRë   (   RÌ   R4   R`   RÔ  R8   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRÏ  K  s    	 c         C   s"   |  i  } t t | i | ƒ ƒ ƒ S(   N(   R4   Rë   RÒ  RÂ   (   RÌ   RÓ  R4   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRÐ  U  s    	c         C   s:   |  i  i ƒ  } t i d | ƒ } t t | i ƒ  ƒ } | S(   s   Return (width, height, x, y)s   (\d+)x(\d+)\+(-?\d+)\+(-?\d+)(   R`   t   wm_geometryt   ret   matcht   mapRë   t   groups(   RÌ   t   geomt   mt   tuple(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   get_geometryY  s    c         C   s   |  i  ƒ  d  S(   N(   R   (   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRr   `  s    c         C   sn   |  i  o` |  i ƒ  pE |  i i ƒ  d j o |  i i ƒ  n |  i i ƒ  |  i i ƒ  n |  i  i ƒ  Sd  S(   NRC   (   R²   RÅ  R`   Rè   t	   deiconifyt   lowert   liftt	   maybesave(   RÌ   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRã  c  s    
c         C   s1   |  i  ƒ  } t | ƒ d j o |  i ƒ  n | S(   Nt   cancel(   Rã  Rî   t   _close(   RÌ   t   reply(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR   l  s    c         C   sØ   |  i  i o |  i d |  i  i ƒ n t i |  i ƒ |  i ƒ  |  i  i ƒ  d  |  _  d  |  _	 |  i
 o |  i
 i t ƒ d  |  _
 n d  |  _ d  |  _ |  i i ƒ  d  |  _ |  i i ƒ  |  i o |  i ƒ  n d  S(   NR²  (   R²   R   R¸   R^   t   unregister_callbackRÆ   t   unload_extensionsR   R   R¬   R¹   R¨   R4   Rb   R«   R`   t   destroyRj  (   RÌ   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRå  r  s"    
		
			
c         C   s   h  |  _  |  i ƒ  d  S(   N(   t
   extensionst   load_standard_extensions(   RÌ   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRÀ   †  s    	c         C   sE   x5 |  i  i ƒ  D]$ } t | d ƒ o | i ƒ  q q Wh  |  _  d  S(   NR   (   Rê  t   valuest   hasattrR   (   RÌ   t   ins(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRè  Š  s
     c         C   s[   xT |  i  ƒ  D]F } y |  i | ƒ Wq d Gt | ƒ GHd d  k } | i ƒ  q Xq Wd  S(   Ns   Failed to load extensioniÿÿÿÿ(   R†  t   load_extensiont   reprt	   tracebackt	   print_exc(   RÌ   R0   Rñ  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRë  �  s     c         C   s   t  i d t ƒ S(   Nt   editor_only(   R   t   GetExtensionsRd  (   RÌ   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR†  ™  s    c         C   sb  y t  | t ƒ  t ƒ  g  ƒ } Wn t j
 o d G| GHd  SXt | | ƒ } t i | ƒ } t | d ƒ o |  i | i	 | ƒ n | |  ƒ } | |  i
 | <| oº |  i | ƒ xª | i ƒ  D]˜ } | i d d ƒ } x  | d  d j o | d } qÙ Wx  | d d j o | d  } qü W| d	 } t | | ƒ o  |  i i | t | | ƒ ƒ q¾ q¾ Wn d  S(
   Ns   
Failed to import extension: RŽ  t   -t   _i   t   <iÿÿÿÿRç   t   _event(   t
   __import__t   globalst   localsR   t   getattrR   R‡  Rí  R  RŽ  Rê  Ro   R�  RJ  R4   Rq   (   RÌ   R0   t   modt   clsRˆ  Rî  t   veventt
   methodname(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRï  œ  s2    	   
c         C   sk   | d  j o |  i i } n |  i } | | _ x5 | i ƒ  D]' \ } } | o | i | | Œ q< q< Wd  S(   N(   R   R‚  Rƒ  R4   Rˆ  R„  R   (   RÌ   Rˆ  R4   R=   R‰  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRo   ´  s    		 c         C   sr  | d	 j o |  i i } n | d	 j o |  i i } n |  i } |  i } x| D]\ } } | i | ƒ } | p qS n xë | D]ã } | p | i ƒ  qƒ | \ }	 }
 |	 d  d j } | o |	 d }	 n t |	 ƒ \ } }	 t	 | |
 ƒ } | |
 d „ } | o> |  i
 |
 t ƒ } | i d |	 d | d | d | d | ƒ qƒ | i d |	 d | d | d | ƒ qƒ WqS Wd	 S(
   s   Add appropriate entries to the menus and submenus

        Menus that are absent or None in self.menudict are ignored.
        i   t   !c         S   s   |  i  | ƒ d  S(   N(   R*  (   R4   R+  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR?   Ö  s    RJ   RK   R?   R�  t   variableN(   R   R‚  RŽ  Rƒ  R¶   R4   RÁ   RÃ   R  R“  t   get_var_objt
   BooleanVart   add_checkbuttonR-  (   RÌ   RŽ  Rˆ  R¶   R4   t   mnamet	   entrylistR/   R   RJ   R+  t   checkbuttonRK   R�  R?   t   var(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR  ½  s<    		  c         C   s4   |  i  | ƒ } | o | i ƒ  } | St | ‚ d  S(   N(   R  RÁ   RT  (   RÌ   R0   R	  t   value(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   getvarâ  s
    c         C   s7   |  i  | | ƒ } | o | i | ƒ n
 t | ‚ d  S(   N(   R  Rž   RT  (   RÌ   R0   R
  t   vartypeR	  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   setvarê  s    c         C   sC   |  i  i | ƒ } | o% | o | |  i ƒ |  i  | <} n | S(   N(   Rb   RÁ   R4   (   RÌ   R0   R  R	  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR  ñ  s    c         C   s?   |  i  o- |  i i d | ƒ p d |  i i | ƒ j Sd Sd  S(   Nt   TODOt   STRINGi   (   R¹   R4   t   tag_prevranget	   tag_names(   RÌ   t
   text_index(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   is_char_in_string  s    
c         C   sM   y2 |  i  i d ƒ } |  i  i d ƒ } | | f SWn t j
 o d SXd  S(   Ns	   sel.firsts   sel.last(   NN(   R4   RÂ   R=  R   (   RÌ   R÷   Rø   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   get_selection_indices  s    c         C   s   |  i  d p t } t | ƒ S(   Nt   tabs(   R4   t   TK_TABWIDTH_DEFAULTRë   (   RÌ   t   current(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   get_tabwidth  s    c         C   s`   |  i  } |  i ƒ  | j o@ | i i d d | d d | i d | ƒ } | i d | ƒ n d  S(   NRG   t   measures
   -displayoft   nR  (   R4   R  t   tkt   callRY  t	   configure(   RÌ   t   newtabwidthR4   t   pixels(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   set_tabwidth  s    		c         C   s}   | ob | o[ |  i  ƒ  } d | j o
 d j n o | |  _ n |  i |  i j o t |  _ qi n |  i |  i ƒ d  S(   Ni   i   (   t   guess_indentR¦   R¥   R¨   R¤   R   (   RÌ   R¿   t   guessRº  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR¾   ,  s    c         C   så  |  i  } |  i ƒ  \ } } | o, | o% | i | | ƒ | i d | ƒ d S| i d d ƒ } | d j o6 | i d d d ƒ o | i d ƒ n | i ƒ  d S| d d	 j o | i d ƒ d S|  i } t | i	 | ƒ ƒ } | d
 j p t
 ‚ | d |  i |  i } t i i d ƒ d }	 d
 }
 xa | |	 j o Pn | d  } |
 d }
 t | i	 | ƒ ƒ } | | j p | d d	 j o Pq/q/| i ƒ  | i d |
 d ƒ | | j  o | i d d | | ƒ n | i ƒ  d S(   NRã   R<   s   insert linestartRO  Rç   s   1.0s	   insert-1ciÿÿÿÿs    	i    i   s   
s
   insert-%dcRâ   (   R4   R  R  Rð   RÁ   Rê   RM  R¥   Rí   t
   expandtabst   AssertionErrorR¦   R   R[   R   R®   Rã   R¯   (   RÌ   R=   R4   R÷   Rø   t   charsR¥   t   havet   wantt   last_line_of_promptt   ncharsdeleted(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR…   5  sF    	
	



c   
      C   sQ  |  i  } |  i ƒ  \ } } | i ƒ  z| oR | oK t | ƒ t | ƒ j o |  i | ƒ S| i | | ƒ | i d | ƒ n | i d d ƒ } t | |  i	 ƒ \ } } | t
 | ƒ j o |  i | |  i ƒ nX |  i o
 d } n4 t
 | i |  i	 ƒ ƒ } |  i }	 d |	 | |	 } | i d | ƒ | i d ƒ d SWd  | i ƒ  Xd  S(   NRã   s   insert linestarts   	Râ   R<   (   R4   R  R®   t
   index2lineRˆ   R  Rð   RÁ   t
   classifywsR¥   Rí   t   reindent_toR¦   R¤   R#  Rã   Rò   R¯   (
   RÌ   R=   R4   R÷   Rø   RQ   t   rawt	   effectivet   padR  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR‡   b  s,    	


	c      	   C   s1  |  i  } |  i ƒ  \ } } | i ƒ  zí| o+ | o$ | i | | ƒ | i d | ƒ n | i d d ƒ } d t | ƒ } } x- | | j  o | | d j o | d } q‚ W| | j o | i d d ƒ d S| |  } d } t i	 i
 d ƒ d }	 x> | o6 | d d j o% | |	 j o | d  } | d } qú W| o | i d	 | d ƒ n x( | i d ƒ d j o | i d ƒ qZW| i d d ƒ t | i d ƒ ƒ }
 t i |  i |  i ƒ } |  i p¦ x‹ |  i D]€ } t |
 | d ƒ } | d
 } | i | d ƒ } | i | ƒ | i |  i |  i | ƒ ƒ } | d  j	 p | d j o PqÓqÓW| i | p d ƒ nZ | i d d ƒ } | o | d } n d } | i | d ƒ } | i | ƒ | i d ƒ | i ƒ  } | t i j oÊ | t i j o n² | t i j o | i d | ƒ nŽ | t i j o |  i | i  ƒ  ƒ ng | t i! j o> | i" ƒ  d j o | i d | ƒ q©|  i | i# ƒ  ƒ n d p t$ d | f ‚ d S| i% ƒ  } | i d | ƒ | i& ƒ  o |  i' | ƒ n& | o | i( ƒ  o |  i) | ƒ n d SWd  | i* d ƒ | i+ ƒ  Xd  S(   NRã   s   insert linestarti    s    	i   s   
R<   iÿÿÿÿs   insert - %d charss   .0t   consoles   1.0s   bogus continuation type %r(,   R4   R  R®   R  Rð   RÁ   Rí   Rã   R   R[   R   R*  RÂ   t   PyParset   ParserR¦   R¥   R©   Rª   RÑ  t   set_strt   find_good_parse_startt   _build_char_in_string_funcR   t   set_loR  t   get_continuation_typet   C_NONEt   C_STRING_FIRST_LINEt   C_STRING_NEXT_LINESt	   C_BRACKETR,  t   compute_bracket_indentt   C_BACKSLASHt   get_num_lines_in_stmtt   compute_backslash_indentR$  t   get_base_indent_stringt   is_block_openerR‡   t   is_block_closerR…   Rò   R¯   (   RÌ   R=   R4   R÷   Rø   Rô   Rº  R  t   indentR(  t   lnoR!  t   contextt   startatt   startatindext   rawtextt   bodR¨  Rä   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR†   …  s’    	
 
 %
 

 	c         C   s   | |  i  d „ } | S(   Nc         S   s   | | d |  ƒ S(   Ns   +%dc(    (   t   offsett   _startindext   _icis(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   innerñ  s    (   R  (   RÌ   t
   startindexRM  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR5  ð  s    c   
      C   s¤   |  i  ƒ  \ } } } } xo t t | ƒ ƒ D][ } | | } | oD t | |  i ƒ \ } }	 |	 |  i }	 |  i |	 ƒ | | | | <q+ q+ W|  i | | | | ƒ d S(   NR<   (   t
   get_regionR�  Rí   R+  R¥   R¦   t   _make_blankst
   set_region(
   RÌ   R=   R\  R]  R%  t   linest   posRô   R-  R.  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRˆ   ö  s     
#c   
      C   s­   |  i  ƒ  \ } } } } xx t t | ƒ ƒ D]d } | | } | oM t | |  i ƒ \ } }	 t |	 |  i d ƒ }	 |  i |	 ƒ | | | | <q+ q+ W|  i | | | | ƒ d S(   Ni    R<   (	   RO  R�  Rí   R+  R¥   RÑ  R¦   RP  RQ  (
   RÌ   R=   R\  R]  R%  RR  RS  Rô   R-  R.  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR‰     s     
#c         C   sk   |  i  ƒ  \ } } } } x6 t t | ƒ d ƒ D] } | | } d | | | <q/ W|  i | | | | ƒ d  S(   Ni   s   ##(   RO  R�  Rí   RQ  (   RÌ   R=   R\  R]  R%  RR  RS  Rô   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRŠ     s     
c         C   s¯   |  i  ƒ  \ } } } } xz t t | ƒ ƒ D]f } | | } | p q+ n | d  d j o | d } n  | d  d j o | d } n | | | <q+ W|  i | | | | ƒ d  S(   Ni   s   ##i   t   #(   RO  R�  Rí   RQ  (   RÌ   R=   R\  R]  R%  RR  RS  Rô   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR‹     s     
c         C   s¸   |  i  ƒ  \ } } } } |  i ƒ  } xw t t | ƒ ƒ D]c } | | } | oL t | | ƒ \ }	 }
 t |
 | ƒ \ } } d | d | | |	 | | <q7 q7 W|  i | | | | ƒ d  S(   Ns   	Râ   (   RO  t   _asktabwidthR�  Rí   R+  t   divmodRQ  (   RÌ   R=   R\  R]  R%  RR  R¥   RS  Rô   R-  R.  t   ntabst   nspaces(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRŒ      s     
&c         C   sr   |  i  ƒ  \ } } } } |  i ƒ  } x1 t t | ƒ ƒ D] } | | i | ƒ | | <q7 W|  i | | | | ƒ d  S(   N(   RO  RU  R�  Rí   R#  RQ  (   RÌ   R=   R\  R]  R%  RR  R¥   RS  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR�   +  s     c         C   s\   |  i  d d d |  i d d |  i d d	 d
 |  i ƒo |  i |  _ d |  _ n d S(   Ns   Toggle tabss
   Turn tabs t   ont   offs   ?
Indent width s   will bes
   remains ats    8.s!   
 Note: a tab is always 8 columnsRL  i   R<   (   s   ons   off(   s   will bes
   remains at(   RÈ   R¤   R4   R¦   (   RÌ   R=   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRŽ   2  s    !c         C   sc   |  i  d d d |  i d |  i d d d d ƒ} | o( | |  i j o |  i o | |  _ n d	 S(
   Ns   Indent widths6   New indent width (2-16)
(Always use 8 when using tabs)RL  RQ  t   minvaluei   t   maxvaluei   R<   (   RÊ   R4   R¦   R¤   (   RÌ   R=   RÝ   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR�   H  s    			"c         C   s¢   |  i  } |  i ƒ  \ } } | o1 | o* | i | d ƒ } | i | d ƒ } n | i d ƒ } | i d ƒ } | i | | ƒ } | i d ƒ } | | | | f S(   Ns
    linestarts   -1c lineend +1cs   insert linestarts   insert lineend +1cs   
(   R4   R  RÂ   RÁ   R   (   RÌ   R4   R÷   Rø   R\  R]  R%  RR  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRO  T  s    	c         C   s¢   |  i  } d i | ƒ } | | j o | i ƒ  d  S| i d d d ƒ | i d | ƒ | i ƒ  | i | | ƒ | i | | ƒ | i ƒ  | i	 d | d ƒ d  S(   Ns   
Rå   s   1.0RM   Rã   (
   R4   RP   RM  Rï   Rð   R®   R  Rã   R¯   Rñ   (   RÌ   R\  R]  R%  RR  R4   t   newchars(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRQ  a  s    	


c         C   s?   |  i  o) t | |  i ƒ \ } } d | d | Sd | Sd  S(   Ns   	Râ   (   R¤   RV  R¥   (   RÌ   R  RW  RX  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRP  q  s    
c         C   so   |  i  } | i ƒ  | i d d d ƒ o | i d d ƒ n | o | i d |  i | ƒ ƒ n | i ƒ  d  S(   Ns   insert linestarts   !=Rã   (   R4   R®   Rê   R  Rã   RP  R¯   (   RÌ   Rú   R4   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR,  {  s    	
c         C   s8   |  i  d d d |  i d |  i d d d d ƒp |  i S(	   Ns	   Tab widths   Columns per tab? (2-16)RL  RQ  R[  i   R\  i   (   RÊ   R4   R¦   R¥   (   RÌ   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRU  „  s    		c         C   su   t  |  i |  i ƒ i ƒ  \ } } | o; | o4 t | |  i ƒ \ } } t | |  i ƒ \ } } n d } } | | S(   Ni    (   t   IndentSearcherR4   R¥   R  R+  (   RÌ   t   openert   indentedR-  t   indentsmallt   indentlarge(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR!  ’  s    !
(   s   fileR  (   s   editR  (   s   formatR  (   s   runR	  (   R
  R  (   s   windowsR  (   s   helpR  (   s   windowsR  (   R(  s   <<close-window>>(s   R   t
   __module__R#   R$   R%   R&   R'   R(   R‚  t   TkinterR)   R*   R   RN   RÖ   RÛ   R•   R“   R™   Rÿ   R  RU   RV   Rn   RÆ   R"  R„   R,  R#  Ry   Rz   Rw   Rx   Rs   Rt   Ru   R|   R}   R�   R‘   R’   R~   R   R�   R€   R‚   Rƒ   R{   R—   R˜   Rb  R¿   Rj  Rk  R´   Ro  Rq  R½   R€  RŒ  Rš  R§   R  Rœ  R¸   R±  R±   RÅ  RÌ  RÎ  RÃ  RÄ  Rv   Ra  RÏ  RÐ  Rß  Rr   Rã  R   Rå  RÀ   Rè  Rë  R†  Rï  Ro   R  R  R  R  R  R  R  R   Rd  R¾   R…   R‡   R†   R5  Rˆ   R‰   RŠ   R‹   RŒ   R�   RŽ   R�   RO  RQ  RP  R,  RU  R!  (    (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR"   4   sæ   Ú			,				
															!									
		 			(									
													%							-	#	k												
			c         C   s   t  t |  ƒ ƒ S(   N(   Rë   RÒ  (   RÂ   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR*  œ  s    c         C   sx   d } } xa |  D]Y } | d j o | d } | d } q | d j o  | d } | | d | } q Pq W| | f S(   Ni    Râ   i   s   	(    (   t   sR¥   R-  R.  t   ch(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR+  ¤  s    
 

R^  c           B   s;   e  Z d  „  Z d „  Z e i e i d
 d „ Z d	 „  Z RS(   c         C   s6   | |  _  | |  _ d |  _ |  _ d  |  _ |  _ d  S(   Ni    (   R4   R¥   Rº  t   finishedR   t   blkopenlinet   indentedline(   RÌ   R4   R¥   (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRÖ   ¼  s    		c         C   sh   |  i  o d S|  i d } |  _ t | ƒ d } |  i i | d d ƒ o d S|  i i | | d ƒ S(   NRO  i   s   .0s   >=RM   s    lineend+1c(   Rg  Rº  Rð  R4   Rê   RÁ   (   RÌ   Rº  RÓ  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyRf  Â  s    
t   classt   deft   fort   ift   tryt   whilec	   	      C   sf   |  i  o nU | | j o | | j o | |  _ n. | | j o  |  i o | |  _ d |  _  n d  S(   Ni   (   Rg  Rh  Ri  (	   RÌ   RD   t   tokent   startRM   Rô   t   INDENTt   NAMEt   OPENERS(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt
   tokeneaterË  s    
	c      	   C   si   t  i } |  i t  _ z7 y t  i |  i |  i ƒ Wn t  i j
 o n XWd  | t  _ X|  i |  i f S(   N(	   t	   _tokenizet   tabsizeR¥   t   tokenizeRf  Ru  t
   TokenErrorRh  Ri  (   RÌ   t   save_tabsize(    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR  ×  s    		
(   Rj  Rk  Rl  Rm  Rn  Ro  (	   R   Rc  RÖ   Rf  Rv  Rr  Rs  Ru  R  (    (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR^  µ  s   		
	c         C   s@   |  i  d ƒ } | d j o |  |  |  | d }  n | |  f S(   NRö  i    i   (   RD  (   Re  Rº  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR  ç  s    t   [t   bracketleftt   ]t   bracketrightt   /t   slashc         C   sì   |  i  | ƒ } | p d S| d } t i d d „  | ƒ } t i d d „  | ƒ } t i d d | ƒ } t i d d	 | ƒ } t i d
 d | ƒ } t i d d | ƒ } t i d d | ƒ } t i d d | ƒ } t i d d | ƒ } | S(   NRO  i    s   -[a-z]\bc         S   s   |  i  ƒ  i ƒ  S(    (   t   groupt   upper(   RÝ  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR>   û  s    s   \b\w+\bc         S   s   t  i |  i ƒ  |  i ƒ  ƒ S(    (   t   keynamesRÁ   R�  (   RÝ  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR>   ü  s    s   Key-t   Cancels
   Ctrl-Breaks   Control-s   Ctrl-Rõ  t   +s   ><Râ   R÷  Rç   (   RÁ   RØ  t   sub(   Rˆ  R+  R‰  Re  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyR“  ö  s    
c         C   sF   |  i  } | i d d d ƒ | i d d d ƒ | i d d d ƒ d  S(	   Nt   tcl_wordBreakAfters   a bi    Rž   t   tcl_wordcharss   [a-zA-Z0-9_]t   tcl_nonwordcharss   [^a-zA-Z0-9_](   R  R  (   RZ   R  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   fixwordbreaks  s    	c          C   s•   t  ƒ  }  t |  ƒ |  i ƒ  t i d o t i d } n d  } t d |  d | ƒ } | i |  i ƒ | i	 i
 d | i ƒ |  i ƒ  |  i ƒ  d  S(   Ni   RZ   R   s   <<close-all-windows>>(   t   TkRŠ  t   withdrawR   t   argvR   R"   Rk  t   quitR4   Rq   Rr   t   mainloopRé  (   RZ   R   R  (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   test  s    	


t   __main__()   R   RO   RØ  R   t	   itertoolsR    Rd  RÉ   RÇ   t	   MultiCallR   R:  t   idleverR^   RC  RG  RI  R1  t   configHandlerR   R.  R6  R1  RU   R  R   R   R!   t   objectR"   R*  R+  Rx  Rv  R^  R  Rƒ  R“  RŠ  R�  R   (    (    (    s*   scripts/common/Lib/idlelib/EditorWindow.pyt   <module>   sV   
$	
ÿ ÿ ÿ ÿ ÿ m		2		
				