B YI~dœã@s’ddlZddlmZddlmZddlmZddddd gZdad d „Z d d „Z Gdd„deƒZ Gdd„dƒZ e dkrŽddlmZedddd�dS)éN)Ú messagebox)Ú EditorWindow)Úiomenuzfile "([^"]*)", line (\d+)z([^\s]+)\((\d+)\)z^(\s*\S.*?):\s*(\d+):z([^\s]+):\s*(\d+):z^\s*(\S.*?):\s*(\d+):cCsdd„tDƒadS)NcSsg|]}t |tj¡‘qS©)ÚreÚcompileÚ IGNORECASE)Ú.0Zpatrrú3/opt/alt/python37/lib64/python3.7/idlelib/outwin.pyú sz!compile_progs..)Úfile_line_patsÚfile_line_progsrrrr Ú compile_progssrc Cs�ts tƒx^tD]R}| |¡}|r| dd¡\}}yt|dƒ}| ¡PWqtk r`wYqXqWdSy |t|ƒfStk rŠdSXdS)NééÚr) r rÚsearchÚgroupÚopenÚcloseÚOSErrorÚintÚ TypeError)ÚlineÚprogÚmatchÚfilenameÚlinenoÚfrrr Úfile_line_helpers"     rc@sjeZdZdddddgZdZdd„Zd d „Zd d „Zd d„Zddd„Z dd„Z dd„Z dd„Z ddd„Z dS)Ú OutputWindow)ZCutz<>Zrmenu_check_cut)ZCopyz<>Zrmenu_check_copy)ZPastez <>Zrmenu_check_paste)NNN)zGo to file/linez<>NFcGs$tj|f|žŽ|j d|j¡dS)Nz<>)rÚ__init__ÚtextZbindÚgoto_file_line)ÚselfÚargsrrr r!OszOutputWindow.__init__cCsdS)NFr)r$rrrr ÚispythonsourceTszOutputWindow.ispythonsourcecCsdS)NZOutputr)r$rrr Ú short_titleXszOutputWindow.short_titlecCs| ¡r dSdS)NZyesÚno)Z get_saved)r$rrr Ú maybesave\szOutputWindow.maybesaverÚinsertcCsFt|tƒr| tjd¡}|j |||¡|j |¡|j ¡t |ƒS)NÚreplace) Ú isinstanceÚbytesÚdecoderÚencodingr"r*ZseeÚupdateÚlen)r$ÚsÚtagsÚmarkrrr Úwriteas    zOutputWindow.writecCsx|D]}| |¡qWdS)N)r5)r$Úlinesrrrr Ú writelinesxs zOutputWindow.writelinescCsdS)Nr)r$rrr Úflush}szOutputWindow.flushcOstj||ŽdS)N)rÚ showerror)r$r%Úkwargsrrr r9�szOutputWindow.showerrorNcCsd|j dd¡}t|ƒ}|sJ|j dd¡}t|ƒ}|sJ|jdd|jd�dS|\}}|j ||¡dS)Nzinsert linestartzinsert lineendzinsert -1line linestartzinsert -1line lineendzNo special linezTThe line you point at doesn't look like a valid file name followed by a line number.)Úparent)r"Úgetrr9ÚflistZ gotofileline)r$ZeventrÚresultrrrrr r#„s  zOutputWindow.goto_file_line)rr*)N)Ú__name__Ú __module__Ú __qualname__Z rmenu_specsZallow_code_contextr!r&r'r)r5r7r8r9r#rrrr r ;s  r c@s6eZdZddiddidœZdd„Zdd„Zd d „Zd S) ÚOnDemandOutputWindowZ foregroundZbluez#007700)ÚstdoutÚstderrcCs||_d|_dS)N)r=Úowin)r$r=rrr r!©szOnDemandOutputWindow.__init__cCs"|js| ¡|j |||¡dS)N)rEÚsetupr5)r$r2r3r4rrr r5­szOnDemandOutputWindow.writecCsXt|jƒ|_}|j}x(|j ¡D]\}}|r"|j|f|Žq"W| d¡|jj|_dS)NZsel) r r=rEr"ÚtagdefsÚitemsZ tag_configureZ tag_raiser5)r$rEr"ÚtagZcnfrrr rF²s zOnDemandOutputWindow.setupN)r?r@rArGr!r5rFrrrr rB¡s  rBÚ__main__)Úmainzidlelib.idle_test.test_outwinrF)Ú verbosityÚexit)rZtkinterrZidlelib.editorrZidlelibrr r rrr rBr?ZunittestrKrrrr Ús    f