
    !Yw`                     |    d dl Z d dlZ ej        d          Z ej        d          Z G d d          Zd Zd ZdS )    Nz(.)([A-Z][a-z]+)z([a-z0-9])([A-Z])c                       e Zd ZdZd ZdS )MethodDispatcherzJSON RPC dispatcher that calls methods on itself.

    Method names are computed by converting camel case to snake case, slashes with double underscores, and removing
    dollar signs.
    c                     d                     t          |                    }t          | |          r1t          | |          t	          j                  fd            }|S t                      )Nzm_{}c                      di | pi S )N r   )paramsmethods    9lib/python3.11/site-packages/pylsp_jsonrpc/dispatchers.pyhandlerz-MethodDispatcher.__getitem__.<locals>.handler   s    v//2///    )format_method_to_stringhasattrgetattr	functoolswrapsKeyError)selfitemmethod_namer   r	   s       @r
   __getitem__zMethodDispatcher.__getitem__   s}    mm$5d$;$;<<4%% 	T;//F_V$$0 0 0 0 %$0 Njjr   N)__name__
__module____qualname____doc__r   r   r   r
   r   r      s-         
 
 
 
 
r   r   c                 p    t          |                     dd                              dd                    S )N/__$ )_camel_to_underscorereplace)r	   s    r
   r   r      s.    sD 9 9 A A#r J JKKKr   c                     t                               d|           }t                              d|                                          S )Nz\1_\2)_RE_FIRST_CAPsub_RE_ALL_CAPlower)strings1s     r
   r!   r!   #   s7    			8V	,	,B??8R((..000r   )r   recompiler$   r&   r   r   r!   r   r   r
   <module>r,      s        				
-..bj,--       (L L L1 1 1 1 1r   