
    %
i                     v    d dl Z d dlZd dlmZ ddlmZ ej        dej        dej        diZ	 G d d	          Z
dS )
    N)CScintillaEditInterface   )scriptutils)Stackr   )Breakpointsr   )Watchr   c                   z    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd ZdS )DebuggerCommandHandlerc           	      P   | j         d t          j        f| j        | j        t          j        f| j        d t          j        f| j        d t          j	        f| j
        | j        t          j        f| j        | j        t          j        f| j        | j        t          j        ff}t          j                    }|D ]4\  }}}|                    ||           ||                    ||           5t,          D ]8}|                    | j        |           |                    | j        |           9d S N)OnStepwin32uiIDC_DBG_STEP	OnStepOutOnUpdateOnlyBreakIDC_DBG_STEPOUT
OnStepOverIDC_DBG_STEPOVEROnGo
IDC_DBG_GOOnCloseOnUpdateCloseIDC_DBG_CLOSEOnAddOnUpdateAddBreakpointsIDC_DBG_ADD
OnClearAllOnUpdateClearAllBreakpointsIDC_DBG_CLEARGetMainFrameHookCommandHookCommandUpdateIdToBarNamesOnDebuggerBarOnUpdateDebuggerBar)selfcommandsframemethHandler
methUpdateids         C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\pythonwin/pywin/framework/dbgcommands.pyHookCommandsz#DebuggerCommandHandler.HookCommands   s)   [$ 45^T3W5LM_dG$<=Yg01\4-w/DEZ4g6IJ_d>@UV	
 $&&+3 	8 	8'KRk2...%''
B777 	B 	BBd0"555##D$<bAAAA	B 	B    c                 `    |dk    r't          j                                        |           S d S Nr   )r   r    
OnBarCheck)r&   r+   codes      r,   OnDebuggerToolbarz(DebuggerCommandHandler.OnDebuggerToolbar,   s2    199+--88<<<< 9r.   c                 |    t          j                                        |           |                    d           d S )Nr   )r   r    OnUpdateControlBarMenuEnable)r&   cmduis     r,   OnUpdateDebuggerToolbarz.DebuggerCommandHandler.OnUpdateDebuggerToolbar0   s2    55e<<<Qr.   c                 F    	 dd l }|j        j        S # t          $ r Y d S w xY wr0   )pywin.debuggerdebuggercurrentDebuggerImportError)r&   pywins     r,   _GetDebuggerz#DebuggerCommandHandler._GetDebugger4   s@    	!!!!>11 	 	 	44	s    
  c                     |                                  }|0|                                rt          ||          } |             d S t          j        d d d|           d S )Nr   )defNamedefArgsbShowDialogdebuggingType)r?   IsDebugginggetattrr   	RunScript)r&   doMethod	startFlagdmethods        r,   
_DoOrStartz!DebuggerCommandHandler._DoOrStart<   so    =Q]]__=Q))FFHHHHH!d     r.   c                 F    |                      dt          j                   d S )Ndo_set_steprL   r   RS_DEBUGGER_STEPr&   msgr2   s      r,   r   zDebuggerCommandHandler.OnStepF       {'CDDDDDr.   c                 F    |                      dt          j                   d S )Ndo_set_nextrO   rQ   s      r,   r   z!DebuggerCommandHandler.OnStepOverI   rS   r.   c                     |                                  }|*|                                r|                                 d S d S d S r   )r?   rE   do_set_returnr&   rR   r2   rJ   s       r,   r   z DebuggerCommandHandler.OnStepOutL   sE    =Q]]__=OO ===r.   c                 F    |                      dt          j                   d S )Ndo_set_continue)rL   r   RS_DEBUGGER_GOrQ   s      r,   r   zDebuggerCommandHandler.OnGoQ   s     );+EFFFFFr.   c                     |                                  }|@|                                r|                                 d S |                                 d S d S r   )r?   rE   set_quitcloserX   s       r,   r   zDebuggerCommandHandler.OnCloseT   sQ    =}} 

						 =r.   c                     |                                  }||j        r|                    d           d S |                    d           d S )Nr   r   )r?   initedr6   r&   r7   rJ   s      r,   r   z$DebuggerCommandHandler.OnUpdateClose\   sD    =QX=LLOOOOOLLOOOOOr.   c                    t          j                    \  }}|t          j        dd           d S |                                }|                    |                                d                   dz   }|                                 }|5dd l}|	                    ||j
        j        j        j        j                   d S |                    ||          r,t!          j        dd           |                    ||          }	n+t!          j        dd           |                    ||          }	|	rt!          j        |	           |                                 d S )Nz6There is no active window - no breakpoint can be addedr   )
stacklevelr   zClearing breakpointzSetting breakpoint)r   GetActiveEditorDocumentwarningswarnGetPathNameLineFromCharGetSelr?   (pywin.framework.editor.color.coloreditorMarkerToggle	frameworkeditorcolorcoloreditorMARKER_BREAKPOINT	get_breakr   SetStatusTextclear_break	set_break
MessageBoxGUIRespondDebuggerData)
r&   rR   r2   docviewpathNamelineNorJ   r>   rcs
             r,   r   zDebuggerCommandHandler.OnAddc   se   799	T; MHUV    4??$$""4;;==#344q89;;;;.4@R     {{8V,, 3%&;Q???]]8V44%&:A>>>[[622 '"2&&&$$&&&&&r.   c                    t          j        d           |                                 }|^dd l}dd l}|j        j        j                                        D ]0}|	                    |j        j        j
        j        j                   1d S |                                 |                                 |                                 d S )NzClearing all breakpointsr   )r   rr   r?   pywin.framework.editorrj   rl   rm   editorTemplateGetDocumentListMarkerDeleteAllrn   ro   rp   clear_all_breaksUpdateAllLineStatesrv   )r&   rR   r2   rJ   r>   rw   s         r,   r   z!DebuggerCommandHandler.OnClearAll   s    89999))));;;;-<LLNN  ##O*0<N    
    !!###$$&&&&&r.   c                     |                                  }|d uo|                                }|                    |           d S r   )r?   IsBreakr6   )r&   r7   rJ   oks       r,   r   z(DebuggerCommandHandler.OnUpdateOnlyBreak   sA    d]*qyy{{Rr.   c                    t          j                    \  }}|t          |t                    sd}n|d}|                    |                                d                   dz   }dd l}|                    |                    ||j	        j
        j        j        j                  dk               |                    |           d S Nr   r   )r   rd   
isinstancer   rh   ri   rj   SetCheckMarkerAtLinerl   rm   rn   ro   rp   r6   )r&   r7   rw   rx   enabledrz   r>   s          r,   r   z-DebuggerCommandHandler.OnUpdateAddBreakpoints   s    799	T;j/FGG;GGG&&t{{}}Q'7881<F;;;;NN  EO28DV     	Wr.   c                     |                                  }|                    |d u pt          |j                  dk               d S r0   )r?   r6   lenbreaksra   s      r,   r   z2DebuggerCommandHandler.OnUpdateClearAllBreakpoints   sA    Q$Y4#ah--1"455555r.   c                 J   t                               |j        d          \  }}|                                 }|T|                                r@|>d}|                    |          }|                    |                                           |                    |           d S )Nr0   r   )	r#   getm_nIDr?   rE   GetDebuggerBarr   IsWindowVisibler6   )r&   r7   namer   rJ   bars         r,   r%   z*DebuggerCommandHandler.OnUpdateDebuggerBar   s    $((i@@g=Q]]__=1AG""4((CNN3..00111Wr.   c                 "   t                               |          d         }|                                 }|V|V|                    |          }|                                 }t          j                                        ||d           d S d S d S r   )r#   r   r?   r   r   r   r    ShowControlBar)r&   r+   r2   r   rJ   r   newStates          r,   r$   z$DebuggerCommandHandler.OnDebuggerBar   s    ##A&=T-""4((C..000H ""11#xCCCCC =--r.   N)__name__
__module____qualname__r-   r3   r8   r?   rL   r   r   r   r   r   r   r   r   r   r   r   r%   r$    r.   r,   r
   r
      s4       B B B.= = =      E E EE E E  
G G G     '  '  'D' ' '   
  "6 6 6  D D D D Dr.   r
   )re   r   pywin.scintilla.controlr    r   IDC_DBG_STACKIDC_DBG_BREAKPOINTSIDC_DBG_WATCHr#   r
   r   r.   r,   <module>r      s      ; ; ; ; ; ;       <!3<jD jD jD jD jD jD jD jD jD jDr.   