§
    ø(gî  ã                   óx   — d Z ddlZddlZ ej        d¦  «        Z ej        dej        ¦  «        Zd„ Zddœd„ZdS )	z“This module provides intellisense features such as:

* autocompletion
* calltips

It unifies all completion plugins and only loads them on demand.
é    Nz^import(\s|$)|from.+zA(?:^|[^"'a-zA-Z0-9_])((?:\w+(?:\w|[.]|\[.+?\])*|)(?:\[[^\]]*$)?)$c                 ó|  — t                                | d|…         ¦  «        }|r‘|                     d¦  «        }t                               | ¦  «        rCddlm} |                     | ¦  «        }|sd„ |D ¦   «         |dd…<   |                     ¦   «          n#ddlm	} |                     |||¬¦  «        }nd}g }||fS )ao  Returns a list of possible completions:

    * name completion
    * attribute completion (obj.attr)
    * index completion for lists and dictionaries
    * module completion (from/import)

    :arg line: incomplete text line
    :type line: str
    :arg cursor: current character position
    :type cursor: int
    :arg namespace: namespace
    :type namespace: dict
    :arg private: whether private variables should be listed
    :type private: bool
    :returns: list of completions, word
    :rtype: tuple[list[str], str]

    >>> complete('re.sr', 5, {'re': re})
    (['re.sre_compile', 're.sre_parse'], 're.sr')
    Né   )Úcomplete_importc                 ó.   — g | ]}|d d…         dk    ¯|‘ŒS )Nr   Ú_© )Ú.0Úms     úp/home/blender/git/blender-v430/install_release/4.3/scripts/modules/bl_console_utils/autocomplete/intellisense.pyú
<listcomp>zcomplete.<locals>.<listcomp>F   s%   € ÐAÐAÐA A°A°b°q°b´E¸S²L°L˜a°L°L°Ló    )Úcomplete_namespace©ÚprivateÚ )
ÚRE_UNQUOTED_WORDÚsearchÚgroupÚ	RE_MODULEÚmatchr   r   ÚcompleteÚsortr   )	ÚlineÚcursorÚ	namespacer   Úre_unquoted_wordÚwordr   Úmatchesr   s	            r   r   r   (   sì   € õ, (×.Ò.¨t°G°V°G¬}Ñ=Ô=ÐØð à×%Ò% aÑ(Ô(ˆÝ�?Š?˜4Ñ Ô ð 	TØ)Ð)Ð)Ð)Ð)Ð)Ø%×.Ò.¨tÑ4Ô4ˆGØð BØAÐA¨ÐAÑAÔA�˜˜˜‘
Ø�LŠL‰NŒNˆNˆNà,Ð,Ð,Ð,Ð,Ð,Ø(×1Ò1°$¸	È7Ð1ÑSÔSˆGˆGð ˆØˆØ�Dˆ=Ðr   Tr   c                ó0  ‡
‡— | d|…                               ¦   «                              d¦  «        rXddlm} |                     | ||¦  «        \  }}}t
          j                             |¦  «        t          |¦  «        d…         }d}	n t	          | |||¦  «        \  }}t
          j                             |¦  «        t          |¦  «        d…         }t          |¦  «        dk    rd}n?dd|t          |¦  «        z   z  z   Š
||z   Šd	 	                    ˆ
ˆfd
„|D ¦   «         ¦  «        }d}	|rg| d|…         |z   | |d…         z   } |t          | 
                    d¦  «        ¦  «        z  }|	r(|                     d¦  «        rt          | |||¬¦  «        S | ||fS )aÓ  This method is invoked when the user asks auto-completion,
    e.g. when Ctrl+Space is clicked.

    :arg line: incomplete text line
    :type line: str
    :arg cursor: current character position
    :type cursor: int
    :arg namespace: namespace
    :type namespace: dict[str, Any]
    :arg private: whether private variables should be listed
    :type private: bool
    :returns:

        current expanded line, updated cursor position and scrollback

    :rtype: str, int, str

    >>> expand('os.path.isdir(', 14, {'os': os})[-1]
    'isdir(s)\nReturn true if the pathname refers to an existing directory.'
    >>> expand('abs(', 4, {})[-1]
    'abs(number) -> number\nReturn the absolute value of the argument.'
    Nú(r   )Úcomplete_calltipFr   z    ú ú
c                 ó°   •— g | ]R}‰r/|                      ‰¦  «        r‰|t          ‰¦  «        d …         z   n‰|                     dd¦  «        d         z   ‘ŒSS )Nú.r   éÿÿÿÿ)Ú
startswithÚlenÚrsplit)r	   r
   Úwhite_spaceÚword_prefixs     €€r   r   zexpand.<locals>.<listcomp>}   s~   ø€ ð #ð #ð #ð ð !ð4Ø%&§\¢\°+Ñ%>Ô%>ð4�˜q¥ [Ñ!1Ô!1Ð!2Ð!2Ô3Ñ3Ð3ð ˜qŸxšx¨¨QÑ/Ô/°Ô3Ñ3ð#ð #ð #r   Tzutf-8r   )ÚstripÚendswithr   r!   r   ÚosÚpathÚcommonprefixr(   ÚjoinÚencodeÚexpand)r   r   r   r   r!   r   r   Ú
scrollbackÚprefixÚ
no_calltipr*   r+   s             @@r   r3   r3   S   sÖ  øø€ ð. ˆGˆVˆG„}×ÒÑÔ×%Ò% cÑ*Ô*ð Ø&Ð&Ð&Ð&Ð&Ð&Ø$4×$=Ò$=Ø�&˜)ñ%%ô %%Ñ!ˆ��zå”×%Ò% gÑ.Ô.­s°4©y¬y¨z¨zÔ:ˆØˆ
ˆ
å   v¨y¸'ÑBÔB‰ˆ�Ý”×%Ò% gÑ.Ô.­s°4©y¬y¨z¨zÔ:ˆÝˆw‰<Œ<˜1ÒÐØˆJˆJð ! C¨6µC¸±K´KÑ+?Ñ$@ÑAˆKØ ™-ˆKØŸšð#ð #ð #ð #ð #ð "ð	#ñ #ô #ñ$ô $ˆJð ˆ
àð DØ�G�V�GŒ}˜vÑ%¨¨V¨W¨W¬Ñ5ˆØ•#�f—m’m GÑ,Ô,Ñ-Ô-Ñ-ˆØð 	D˜&Ÿ/š/¨#Ñ.Ô.ð 	DÝ˜$ ¨	¸7ÐCÑCÔCÐCØ�˜Ð#Ð#r   )	Ú__doc__r.   ÚreÚcompiler   ÚUNICODEr   r   r3   r   r   r   ú<module>r;      s‘   ððð ð 
€	€	€	Ø 	€	€	€	ð
 ˆBŒJÐ2Ñ3Ô3€	ð �2”:ðð „Jñô Ð ð(ð (ð (ðV 04ð 7$ð 7$ð 7$ð 7$ð 7$ð 7$ð 7$r   