3 2a@sddlZddlmZddlmZddlmZddddd gZdad d Z d d Z GdddeZ GdddZ e dkrddlmZedddddS)N) messagebox) EditorWindow)iomenuzfile "([^"]*)", line (\d+)z([^\s]+)\((\d+)\)z^(\s*\S.*?):\s*(\d+):z([^\s]+):\s*(\d+):z^\s*(\S.*?):\s*(\d+):cCsddtDadS)NcSsg|]}tj|tjqS)recompile IGNORECASE).0Zpatrr+/opt/alt/python36/lib64/python3.6/outwin.py sz!compile_progs..)file_line_patsfile_line_progsrrrr compile_progssrc Csts tx^tD]R}|j|}|r|jdd\}}yt|d}|jPWqtk r`wYqXqWdSy |t|fStk rdSXdS)Nr) r rsearchgroupopencloseOSErrorint TypeError)lineprogmatchfilenamelinenofrrr file_line_helpers"     rc@sjeZdZd d!d"d#d$gZd dZddZddZddZfdfddZddZ ddZ ddZ d%ddZ d S)& OutputWindowCut<>rmenu_check_cutCopy<>rmenu_check_copyPaste <>rmenu_check_pasteNGo to file/line<>cGs0tj|f||jjd|j|jjddS)Nz<>z<>)r__init__textZbindgoto_file_lineZunbind)selfargsrrr r,MszOutputWindow.__init__cCsdS)NFr)r/rrrr ispythonsourceSszOutputWindow.ispythonsourcecCsdS)NZOutputr)r/rrr short_titleWszOutputWindow.short_titlecCs|jr dSdS)Nyesno)Z get_saved)r/rrr maybesave[szOutputWindow.maybesaveinsertcCsFt|tr|jtjd}|jj||||jj||jjt |S)Nreplace) isinstancebytesdecoderencodingr-r6Zseeupdatelen)r/stagsmarkrrr write`s    zOutputWindow.writecCsx|D]}|j|qWdS)N)rA)r/linesrrrr writelinesws zOutputWindow.writelinescCsdS)Nr)r/rrr flush|szOutputWindow.flushcOstj||dS)N)r showerror)r/r0kwargsrrr rEszOutputWindow.showerrorcCsd|jjdd}t|}|sJ|jjdd}t|}|sJ|jdd|jddS|\}}|jj||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-getrrEflistZ gotofileline)r/Zeventrresultrrrrr r.s  zOutputWindow.goto_file_line)r!r"r#)r$r%r&)r'r(r))NNN)r*r+N)N) __name__ __module__ __qualname__Z rmenu_specsr,r1r2r5rArCrDrEr.rrrr r ;s r c@s6eZdZddiddidZddZddZd d Zd S) OnDemandOutputWindowZ foregroundZbluez#007700)stdoutstderrcCs||_d|_dS)N)rIowin)r/rIrrr r,szOnDemandOutputWindow.__init__cCs"|js|j|jj|||dS)N)rQsetuprA)r/r>r?r@rrr rAszOnDemandOutputWindow.writecCsXt|j|_}|j}x(|jjD]\}}|r"|j|f|q"W|jd|jj|_dS)NZsel) r rIrQr-tagdefsitemsZ tag_configureZ tag_raiserA)r/rQr-tagZcnfrrr rRs zOnDemandOutputWindow.setupN)rKrLrMrSr,rArRrrrr rNs  rN__main__)mainzidlelib.idle_test.test_outwinrF) verbosityexit)rZtkinterrZidlelib.editorrZidlelibrr r rrr rNrKZunittestrWrrrr s    e