U :eM@sddlZddlmZddlmZdddddgZdad d Zd d ZGd ddeZ GdddZ e dkrddl m Z e dddddS)N) messagebox) EditorWindowzfile "([^"]*)", line (\d+)z([^\s]+)\((\d+)\)z^(\s*\S.*?):\s*(\d+):z([^\s]+):\s*(\d+):z^\s*(\S.*?):\s*(\d+):cCsddtDadS)NcSsg|]}t|tjqS)recompile IGNORECASE).0patrr3/usr/local/python38/lib/python3.8/idlelib/outwin.py sz!compile_progs..)file_line_patsfile_line_progsrrrr compile_progssrc Csts ttD]X}||}|r|dd\}}zt|d}|WqlWqtk rdYqYqXqdSz|t|fWStk rYdSXdS)Nr) r rsearchgroupopencloseOSErrorint TypeError)lineprogmatchfilenamelinenofrrr file_line_helpers"    rc@sjeZdZdddddgZdZddZd d Zd d Zd dZdddZ ddZ ddZ ddZ dddZ dS) OutputWindow)ZCutz<>Zrmenu_check_cut)ZCopyz<>Zrmenu_check_copy)ZPastez <>Zrmenu_check_paste)NNN)zGo to file/line<>NFcGs$tj|f||jd|jdS)Nr!)r__init__textbindgoto_file_line)selfargsrrr r"NszOutputWindow.__init__cCsdS)NFr)r&rrrr ispythonsourceSszOutputWindow.ispythonsourcecCsdS)NZOutputrr&rrr short_titleWszOutputWindow.short_titlecCs|r dSdS)NZyesno)Z get_savedr)rrr maybesave[szOutputWindow.maybesaverinsertcCs.|j||||j||jt|SN)r#r-Zseeupdatelenr&sZtagsZmarkrrr write`s  zOutputWindow.writecCs|D]}||qdSr.)r3)r&linesrrrr writelinesvszOutputWindow.writelinescCsdSr.rr)rrr flush{szOutputWindow.flushcOstj||dSr.)r showerror)r&r'kwargsrrr r7szOutputWindow.showerrorNcCsd|jdd}t|}|sJ|jdd}t|}|sJ|jdd|jddS|\}}|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#getrr7flistZ gotofileline)r&eventrresultrrrrr r%s zOutputWindow.goto_file_line)rr-)N)__name__ __module__ __qualname__Z rmenu_specsZallow_code_contextr"r(r*r,r3r5r6r7r%rrrr r :s   r c@s6eZdZddiddidZddZddZd d Zd S) OnDemandOutputWindowZ foregroundZbluez#007700)stdoutstderrcCs||_d|_dSr.)r;owin)r&r;rrr r"szOnDemandOutputWindow.__init__cCs"|js||j|||dSr.)rDsetupr3r1rrr r3szOnDemandOutputWindow.writecCsTt|j|_}|j}|jD]\}}|r |j|f|q |d|jj|_dS)NZsel) r r;rDr#tagdefsitemsZ tag_configureZ tag_raiser3)r&rDr#tagZcnfrrr rEs zOnDemandOutputWindow.setupN)r>r?r@rFr"r3rErrrr rAs rA__main__)mainzidlelib.idle_test.test_outwinrF) verbosityexit)rtkinterrZidlelib.editorrr r rrr rAr>ZunittestrJrrrr s    e