
    
h                         S r SSKrSSKrSSKJr  SSKJrJr  SSKJ	r	J
r
  S r " S S	\R                  5      r " S
 S\R                  5      r " S S5      rg)z(Management of documents for AXDebugging.    N)unwrap   )axdebuggateways)_wraptracec                 D    U S   S:w  a  [         R                  " U 5      $ U $ )Nr   <)win32apiGetFullPathName)fnames    pC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\win32comext/axdebug/documents.pyGetGoodFileNamer      s#    Qx3''..L    c                   ,    \ rS rSrS rS rS rS rSrg)DebugDocumentProvider   c                     Xl         g Ndoc)selfr   s     r   __init__DebugDocumentProvider.__init__   s    r   c                 8    U R                   R                  U5      $ r   )r   GetNamer   dnts     r   r   DebugDocumentProvider.GetName   s    xx$$r   c                 6    U R                   R                  5       $ r   )r   GetDocumentClassIdr   s    r   r!   (DebugDocumentProvider.GetDocumentClassId   s    xx**,,r   c                     U R                   $ r   r   r"   s    r   GetDocument!DebugDocumentProvider.GetDocument   s    xxr   r   N)	__name__
__module____qualname____firstlineno__r   r   r!   r%   __static_attributes__ r   r   r   r      s    %-r   r   c                   `   \ rS rSr\R
                  R                  \R                  R                  -   \R                  R                  -   r\R
                  R                  \R                  R                  -   \R                  R                  -   r	S r
S rS rS rS rS rS rS	 rS
 rS rSrg)DebugDocumentText"   c                     [         R                  R                  U 5        [         R                  R                  U 5        [         R                  R                  U 5        Xl        g r   )r   r.   r   DebugDocumentInfoDebugDocumentcodeContainer)r   r3   s     r   r   DebugDocumentText.__init__0   sD    ""++D1""++D1''-*r   c                      S U l         S U l        g r   )docContextsr3   r"   s    r   _CloseDebugDocumentText._Close6   s    !r   c                 8    U R                   R                  U5      $ r   )r3   r   r   s     r   r   DebugDocumentText.GetName<   s    !!))#..r   c                     g)Nz&{DF630910-1C1D-11d0-AE36-8C0F5E000000}r,   r"   s    r   r!   $DebugDocumentText.GetDocumentClassId?   s    7r   c                 j    U R                   R                  5       U R                   R                  5       4$ r   )r3   GetNumLinesGetNumCharsr"   s    r   GetSizeDebugDocumentText.GetSizeG   s+    !!--/1C1C1O1O1QQQr   c                 8    U R                   R                  U5      $ r   )r3   GetPositionOfLine)r   cLineNumbers     r   rC   #DebugDocumentText.GetPositionOfLineK   s    !!33K@@r   c                 8    U R                   R                  U5      $ r   )r3   GetLineOfPosition)r   charPoss     r   rG   #DebugDocumentText.GetLineOfPositionN   s    !!33G<<r   c                 ^    U R                   nUR                  5       nUR                  5       U4$ r   )r3   GetSyntaxColorAttributesGetText)r   rH   maxCharswantAttrcontattrs         r   rL   DebugDocumentText.GetTextQ   s.     !!,,.||~t##r   c                 `    [        SU5        [        U5      nUR                  UR                  4$ )NGetPositionOfContext)r   r   offsetlength)r   contexts     r   rS   &DebugDocumentText.GetPositionOfContextY   s)    $g./~~w~~--r   c                     [        U [        R                  5      nU R                  R	                  U5      nUR                  [        R                  5      $ r   )r   r   IID_IDebugDocumentr3   GetCodeContextAtPositionQueryInterfaceIID_IDebugDocumentContext)r   rH   rM   r   rcs        r   GetContextOfPosition&DebugDocumentText.GetContextOfPosition_   sA    D'44588A  !B!BCCr   )r3   r6   N)r'   r(   r)   r*   r   r1   _com_interfaces_r.   r2   _public_methods_r   r7   r   r!   r@   rC   rG   rL   rS   r^   r+   r,   r   r   r.   r.   "   s    ""33

$
$
5
5	6

 
 
1
1	2  	""33

$
$
5
5	6

 
 
1
1	2 +"/8RA=$.Dr   r.   c                   4    \ rS rSrSrS rS	S jrS rS rSr	g)
CodeContainerProviderf   a  An abstract Python class which provides code containers!

Given a Python file name (as the debugger knows it by) this will
return a CodeContainer interface suitable for use.

This provides a simple base implementation that simply supports
a dictionary of nodes and providers.
c                     0 U l         g r   ccsAndNodesr"   s    r   r   CodeContainerProvider.__init__p   s
    r   Nc                 N    [        UR                  5      nX4U R                  U'   g r   )r   fileNamerg   )r   ccnoder   s       r   AddCodeContainer&CodeContainerProvider.AddCodeContainers   s"    ,"$(r   c                 T    U R                   R                  [        U5      S5      u  p#U$ )N)NN)rg   getr   )r   r   rk   rl   s       r   FromFileName"CodeContainerProvider.FromFileNamew   s(    ##''(>M 	r   c                     U R                   R                  5        H)  u  p Ub  UR                  5         UR                  5         M+     0 U l         g ! [        R
                   a     ML  f = fr   )rg   valuesCloser7   	pythoncom	com_error)r   rk   rl   s      r   ru   CodeContainerProvider.Close}   s`    ((//1HB #JJL		 2  && s   #AA('A(rf   r   )
r'   r(   r)   r*   __doc__r   rm   rq   ru   r+   r,   r   r   rc   rc   f   s    +
r   rc   )ry   rv   r   win32com.server.utilr    r   r   utilr   r   r   r   r.   rc   r,   r   r   <module>r}      sO    .   '  H:: AD22 ADH! !r   