a „oe¯ã@sPddlZddlZddlmZddlmZejdejdejdiZ Gdd „d ƒZ dS) éN)ÚCScintillaEditInterfaceé)Ú scriptutils)ZStackr)Z Breakpointsr)ZWatchrc@sœeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%S)&ÚDebuggerCommandHandlerc CsÊ|jdtjf|j|jtjf|jdtjf|jdtj f|j |j tj f|j |jtjf|j|jtjff}t ¡}|D]*\}}}| ||¡|durl| ||¡qltt ¡ƒD] }| |j|¡| |j|¡q¤dS©N)ÚOnStepÚwin32uiZ IDC_DBG_STEPÚ OnStepOutÚOnUpdateOnlyBreakZIDC_DBG_STEPOUTÚ OnStepOverZIDC_DBG_STEPOVERÚOnGoZ IDC_DBG_GOÚOnCloseÚ OnUpdateCloseZ IDC_DBG_CLOSEÚOnAddÚOnUpdateAddBreakpointsZ IDC_DBG_ADDÚ OnClearAllÚOnUpdateClearAllBreakpointsZ IDC_DBG_CLEARÚ GetMainFrameZ HookCommandZHookCommandUpdateÚlistÚ IdToBarNamesÚkeysÚ OnDebuggerBarÚOnUpdateDebuggerBar)ÚselfZcommandsÚframeZ methHandlerZ methUpdateÚid©rúFC:\Program Files\Certbot\pkgs\pythonwin\pywin\framework\dbgcommands.pyÚ HookCommandss    ù  z#DebuggerCommandHandler.HookCommandscCs|dkrt ¡ |¡ SdS©Nr)rrZ OnBarCheck)rrÚcoderrrÚOnDebuggerToolbar,sz(DebuggerCommandHandler.OnDebuggerToolbarcCst ¡ |¡| d¡dS©Nr)rrZOnUpdateControlBarMenuÚEnable)rÚcmduirrrÚOnUpdateDebuggerToolbar0sz.DebuggerCommandHandler.OnUpdateDebuggerToolbarcCs,zddl}|jjWSty&YdS0dSr)Zpywin.debuggerZdebuggerZcurrentDebuggerÚ ImportError)rÚpywinrrrÚ _GetDebugger4s   z#DebuggerCommandHandler._GetDebuggercCs@| ¡}|dur*| ¡r*t||ƒ}|ƒntjddd|ddS)Nr)ZdefNameZdefArgsZ bShowDialogZ debuggingType)r(Ú IsDebuggingÚgetattrrZ RunScript)rZdoMethodZ startFlagÚdÚmethodrrrÚ _DoOrStart<s ÿz!DebuggerCommandHandler._DoOrStartcCs| dtj¡dS)NZ do_set_step©r-rZRS_DEBUGGER_STEP©rÚmsgr rrrrFszDebuggerCommandHandler.OnStepcCs| dtj¡dS)NZ do_set_nextr.r/rrrr Isz!DebuggerCommandHandler.OnStepOvercCs$| ¡}|dur | ¡r | ¡dSr)r(r)Z do_set_return©rr0r r+rrrr Lsz DebuggerCommandHandler.OnStepOutcCs| dtj¡dS)NZdo_set_continue)r-rZRS_DEBUGGER_GOr/rrrr QszDebuggerCommandHandler.OnGocCs.| ¡}|dur*| ¡r"| ¡n| ¡dSr)r(r)Zset_quitÚcloser1rrrr Ts  zDebuggerCommandHandler.OnClosecCs0| ¡}|dur"|jr"| d¡n | d¡dS)Nrr)r(Zinitedr#©rr$r+rrrr\s z$DebuggerCommandHandler.OnUpdateClosec CsÈt ¡\}}|dur"t d¡dS| ¡}| | ¡d¡d}| ¡}|durpddl}|  ||j j j j j¡nT| ||¡r–t dd¡| ||¡} nt dd¡| ||¡} | r¼t | ¡| ¡dS)Nz6There is no active window - no breakpoint can be addedrrzClearing breakpointzSetting breakpoint)rÚGetActiveEditorDocumentÚwarningsÚwarnZ GetPathNameÚ LineFromCharÚGetSelr(Ú(pywin.framework.editor.color.coloreditorZ MarkerToggleÚ frameworkÚeditorÚcolorÚ coloreditorÚMARKER_BREAKPOINTZ get_breakrÚ SetStatusTextZ clear_breakZ set_breakZ MessageBoxÚGUIRespondDebuggerData) rr0r ÚdocÚviewZpathNameÚlineNor+r'Úrcrrrrcs(  ÿ     zDebuggerCommandHandler.OnAddcCspt d¡| ¡}|durTddl}ddl}|jjj ¡D]}|  |jjj j j ¡q8n|  ¡| ¡| ¡dS)NzClearing all breakpointsr)rr?r(Zpywin.framework.editorr9r:r;ZeditorTemplateZGetDocumentListZMarkerDeleteAllr<r=r>Zclear_all_breaksZUpdateAllLineStatesr@)rr0r r+r'rArrrrƒs  ÿz!DebuggerCommandHandler.OnClearAllcCs&| ¡}|duo| ¡}| |¡dSr)r(ZIsBreakr#)rr$r+Úokrrrr “sz(DebuggerCommandHandler.OnUpdateOnlyBreakcCstt ¡\}}|dust|tƒs$d}nBd}| | ¡d¡d}ddl}| | ||j j j j j ¡dk¡| |¡dS©Nrr)rr4Ú isinstancerr7r8r9ÚSetCheckZ MarkerAtLiner:r;r<r=r>r#)rr$rArBÚenabledrCr'rrrr˜s ÿýÿz-DebuggerCommandHandler.OnUpdateAddBreakpointscCs(| ¡}| |dup t|jƒdk¡dSr)r(r#ÚlenZbreaksr3rrrr©sz2DebuggerCommandHandler.OnUpdateClearAllBreakpointscCs^t |j¡\}}|}| ¡}|durP| ¡rP|durPd}| |¡}| | ¡¡| |¡dSr") rÚgetZm_nIDr(r)ÚGetDebuggerBarrHÚIsWindowVisibler#)rr$ÚnameÚalwaysrIr+Úbarrrrr­s z*DebuggerCommandHandler.OnUpdateDebuggerBarcCsPt |¡d}| ¡}|durL|durL| |¡}| ¡ }t ¡ ||d¡dSrF)rrKr(rLrMrrZShowControlBar)rrr rNr+rPZnewStaterrrr·s   z$DebuggerCommandHandler.OnDebuggerBarN)Ú__name__Ú __module__Ú __qualname__rr!r%r(r-rr r r r rrrr rrrrrrrrrs$   r) r5rZpywin.scintilla.controlrÚrZ IDC_DBG_STACKZIDC_DBG_BREAKPOINTSZ IDC_DBG_WATCHrrrrrrÚs  ý