a „oemgã@sÖddlZddlZddlZddlZddlZddlmZdZddlmZdZ e rfddl Z ddl Z dd„Z ndd „Z Gd d „d ƒZ Gd d „d ƒZGdd„deƒZddlmZmZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(eeeee%gZ)ed'eej*fed(eej+fed)eej,fed*eej-fed+eej.feeeej/feeeej0feeeej1fe%d,d-ej2fed.eej3fed/eej4fe d0eej5fe!d,eej6fe"d,eej7fgZ8e#d,d1ej9fe$d,d2ej$fe&d,e :ej;¡ej&fe'd,eej'fe(ddd3defe Gd7d8„d8eƒZ?d9 @¡ejAfd: @¡ejBfd; @¡ejCfd< @¡ejDfd= @¡ejEfd> @¡ejFfd? @¡ejGfd@ @¡ejHfdA @¡ejIfdB @¡ejJfdC @¡ejKfg ZLGdDdE„dEeƒZMGdFdG„dGeMƒZNdS)HéNé)Ú scintillaconij)Ú CLR_INVALIDcGst d tt|ƒ¡d¡dS)Nú Ú )Ú win32traceÚwriteÚjoinÚmapÚstr©Úargs©rúDC:\Program Files\Certbot\pkgs\pythonwin\pywin\scintilla\formatter.pyÚtracesrcGsdS©Nrr rrrÚórc@s<eZdZdZefdd„Zdd„Zdd„Zdd „Zd d „Z d S) ÚStylezRepresents a single formatcCsF||_||_|_t|ƒtdƒkr0||_d|_n ||_d|_d|_dS)NÚ)ÚnameÚ backgroundÚdefault_backgroundÚtypeÚaliasedÚformatÚstylenum)ÚselfrrrrrrÚ__init__"s zStyle.__init__cCst|jƒdkS©Né)Úlenr©rrrrÚIsBasedOnDefault/szStyle.IsBasedOnDefaultcCs@| ¡r dS|jd|dko.|jd|dk}|r<| ¡|S)Nréé)r#rÚForceAgainstDefault)rÚ defaultFormatZ bIsDefaultrrrÚNormalizeAgainstDefault4s"ÿzStyle.NormalizeAgainstDefaultcCs|jdd…|_dSr)rr"rrrr&>szStyle.ForceAgainstDefaultcCs^t|jƒdkr"|j|dd…}n|j}tjtjBtjBtjBtjBtjB}|f|dd…S)Nr r) r!rÚwin32conZCFM_BOLDZ CFM_CHARSETZ CFM_COLORZCFM_FACEZ CFM_ITALICZCFM_SIZE)rr'ZfmtÚflagsrrrÚGetCompleteFormatAs ÿþýüûÿzStyle.GetCompleteFormatN) Ú__name__Ú __module__Ú __qualname__Ú__doc__rrr#r(r&r+rrrrrs   rc@s€eZdZdd„Zddd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z d dd„Z dd„Z dd„Zdd„Zdd„ZdS)!Ú FormatterBasecCs0||_d|_d|_d|_i|_i|_| ¡dS)N)éèréÈrrré1z Courier New)r1rr2rrrr3ZArialr)Ú scintillaÚbaseFormatFixedÚbaseFormatPropÚ bUseFixedÚstylesÚ styles_by_idÚ SetStyles©rr4rrrrUszFormatterBase.__init__NcCs tƒ‚dSr©ÚNotImplementedError©rÚparentrrrÚ HookFormatter^szFormatterBase.HookFormattercCs@z|j|j |¡}Wnty*YdS0|j|jvr<|SdSr)r9r4Ú SCIGetStyleAtÚKeyErrorrÚstring_style_names)rÚposÚstylerrrÚGetStringStylebs  zFormatterBase.GetStringStylecCsT|dusJdƒ‚|jdus"Jdƒ‚||jvs4Jdƒ‚||_||j|j<||j|<dS)NzWe must have a style numberú!Style has already been registeredúWe are reusing a style number!)rr8rr9©rrErrrrÚ RegisterStylels  zFormatterBase.RegisterStylecCs tƒ‚dSrr<r"rrrr:tszFormatterBase.SetStylescCsdS)Nz!Sample Text for the Format Dialogrr"rrrÚ GetSampleTextwszFormatterBase.GetSampleTextcCs|jr |jS|jSr)r7r5r6r"rrrÚGetDefaultFormatzszFormatterBase.GetDefaultFormatcCsN|jtkr&|j}|j tjd|¡dS|jdus8Jdƒ‚|j}|j}|jdurZ|j |j}|j }|  ¡rr|  ¡}n|}|  ||d¡| ||d|d¡|dd@r¶| |d¡n | |d¡|dd@rÜ| |d¡n | |d¡| |t|dd ƒ¡| |d¡|j}|tkr(|j tj}|tkr>t tj¡}| ||¡dS) NTzUnregistered style.ér$r rrr%é)rÚSTYLE_SELECTIONrr4Ú SendScintillarZSCI_SETSELBACKrrr8rr#rLZSCIStyleSetForeZSCIStyleSetFontZSCIStyleSetBoldZSCIStyleSetItalicZSCIStyleSetSizeÚintZSCIStyleSetEOLFilledrÚ STYLE_DEFAULTÚwin32apiÚ GetSysColorr)Z COLOR_WINDOWZSCIStyleSetBack)rrEZclrr4rÚfÚ baseFormatÚbgrrrÚ_ReformatStyle€s:             zFormatterBase._ReformatStylecCs |j|Sr)r9)rrrrrÚ GetStyleByNum²szFormatterBase.GetStyleByNumrcCsp|r | ¡| ¡}td|ƒ}tj|_| |¡t|j  ¡ƒD]"}|j durV|  |¡| |¡q>|j   ¡dS)NÚdefault)ÚLoadPreferencesrLrrrRrrXÚlistr8Úvaluesrr(r4ZInvalidateRect)rZbReloadrVZ defaultStylerErrrÚApplyFormattingStylesµs     z#FormatterBase.ApplyFormattingStylescCs°t| dt|jƒ¡ƒ|_t| dt|jƒ¡ƒ|_t| dd¡ƒ|_t|j  ¡ƒD]Z}| |j t|j ƒ¡}zt|ƒ|_ Wnt d|j ƒYn0t| |j d|j ¡ƒ|_qPdS)NúBase Format FixedúBase Format Proportionalú Use FixedrzError loading style data forú background)ÚevalÚLoadPreferencer r5r6rQr7r\r8r]rrÚprintrr)rrEÚnewrrrr[Äs$ÿÿ ÿÿzFormatterBase.LoadPreferencescCst d||¡S©NZFormat)Úwin32uiZ GetProfileVal)rrrZrrrrdÚszFormatterBase.LoadPreferencecCs€| dt|jƒ¡| dt|jƒ¡| d|j¡t|j ¡ƒD]:}|jdur@| |j t|j ƒ¡|j d}| ||j ¡q@dS)Nr_r`rarb) ÚSavePreferencer r5r6r7r\r8r]rrrr)rrEZbg_namerrrÚSavePreferencesÝs  zFormatterBase.SavePreferencescCst d||¡dSrg)rhZWriteProfileVal)rrÚvaluerrrriçszFormatterBase.SavePreference)N)r)r,r-r.rr@rFrJr:rKrLrXrYr^r[rdrjrirrrrr0Ts  2  r0c@sReZdZdd„Zddd„Zdd„Zdd „Zdd d „Zd d „Zddd„Z dd„Z dS)Ú FormattercCs"d|_d|_d|_t ||¡dS©Nr)ÚbCompleteWhileIdleÚbHaveIdleHandlerÚ nextstylenumr0rr;rrrrïszFormatter.__init__NcCs&|dur|j ¡}| |jtj¡dSr)r4Z GetParentZ HookNotifyÚ OnStyleNeededrZSCN_STYLENEEDEDr>rrrr@õs zFormatter.HookFormattercCsD|j |¡}|j tj¡}|j |¡}|j |¡}| ||j¡dSr) r4ZSCIUnpackNotifyMessagerPrZSCI_GETENDSTYLEDÚ LineFromCharÚ LineIndexÚColorizeZposition)rZstdZextraÚnotifyZ endStyledCharZ lineEndStyledÚ endStyledrrrrqús    zFormatter.OnStyleNeededcCs4|d}|j|j}||kr0||j|<|d}qdS©Nr)r8rÚ style_buffer)rÚstartÚendZ styleNamerrrrÚColorSegs   zFormatter.ColorSegcCs,|dur|j}|jd|_t |||¡dSrw)rpr0rJrIrrrrJ s zFormatter.RegisterStylecCs tdƒ‚dS)NzYou must override this method)Ú RuntimeError)rr Ú charStartÚ styleStartrrrÚColorizeStringszFormatter.ColorizeStringréÿÿÿÿcCs¸|j}|j||dd}|dkr:| |d¡}| |¡j}nd}| |d¡t ddt|ƒ¡|_|  ||¡|  |j¡d|_|j r´|j s´|dkr´||  ¡kr´d|_ t ¡ |j¡dS) NF)ÚdecoderréÚb)rr€)r4Z GetTextRangerArYrZSCIStartStylingÚarrayr!rxrZSCISetStylingExrnroÚ GetTextLengthrhÚGetAppZAddIdleHandlerÚDoMoreColoring)rryrzr4Z stringValrr~rrrrts*   ÿþý üzFormatter.Colorizec Cs˜z\|j}| ¡}| |¡}| |¡}| |d¡}| ¡}|dkrF|}||k} | ||¡Wntjtfyxd} Yn0| r’d|_ t  ¡  |¡| S)Nrr) r4ZSCIGetEndStyledrrrsr…rtrhÚerrorÚAttributeErrorror†ZDeleteIdleHandler) rZhandlerÚcountr4rvZlineStartStyledryrzZtextlenÚfinishedrrrr‡3s"   zFormatter.DoMoreColoring)N)N)rr€) r,r-r.rr@rqr{rJrrtr‡rrrrrlîs   rl)Ú iskeywordÚkwlistZ?_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzz@._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzz%^&*()-+=|{}[]:;<>,/?!.~Ú WhitespaceÚCommentzComment BlocksÚNumberÚStringz SQ Stringz TQS Stringz TQD StringZKeywordZClassZMethodZOperatorZ IdentifierzBrace/Paren - matchingzBrace/Paren - unmatchedzString with no terminatorz Line numbersz Indent guideZ Selection)rrr2r退€)rr%r2ri€)rr%r2rr’)rrr2r退)rrr2r退)rrr2rrr”)rrr2ri€)rrr2riÿ)rrr2rr“i€ÿÿiò¥Žr2éÀi?Bz“# Some Python class Sample(Super): def Fn(self): self.v = 1024 dest = 'dest.html' x = func(a + 1)|) s = "I forget... ## A large ## comment blockc@s@eZdZeZdd„Zdd„Zdd„Zdd„Zd d „Z d d „Z d S)ÚPythonSourceFormattercCstSr©ÚPythonSampleCoder"rrrrK¿sz#PythonSourceFormatter.GetSampleTextcCsdSrrr"rrrÚ LoadStylesÂsz PythonSourceFormatter.LoadStylescCsNtD]\}}}}| t|||ƒ¡qtD] \}}}}| t|||ƒ|¡q(dSr©Ú PYTHON_STYLESrJrÚSPECIAL_STYLES)rrrrWÚignoreÚsc_idrrrr:ÅszPythonSourceFormatter.SetStylescCsh|||d… d¡}t}|dkr(t}n.|dkr6t}n |dtjvrJt}n t|ƒrVt}|  |||¡|S)Nrúlatin-1ÚclassÚdefr) rÚSTYLE_IDENTIFIERÚ STYLE_CLASSÚ STYLE_METHODÚstringÚdigitsÚ STYLE_NUMBERrŒÚ STYLE_KEYWORDr{)rÚcdocryrzÚprevWordZwordÚattrrrrÚ ClassifyWordËsz"PythonSourceFormatter.ClassifyWordcCs|dur t}| |d|¡Srm)rRÚColorizePythonCode)rr r~rrrrÙsz$PythonSourceFormatter.ColorizeStringcCs’t|ƒ}||krdSd}|}d}}} |||d… d¡} } |} } | |krR| }d} | d|kr‚|| d| d… d¡} d} | d|kr¬|| d| d… d¡} |tkr.|tvrÜ| | | dt¡t}| } q<|dkr| | | dt¡| dkrt}nt}| } q<|dkr†| | | dt¡| } t}| dkr€| dkr€| d} t}d}d}d} | d|kr„|| d} nt }n¤|d krø| | | dt¡| } t}| d krò| d krò| d} t }d}d}d} | d|krö|| d} nt }n2|t vr<| | | dt¡| | | t ¡| d} n|tkrR|tvr<| || | d|¡}t}| } |dkr~| dkrxt}nt}nÐ|dkrÖ| dkrÐ| dkrÐ| d} t}d}d}d} | d|krÔ|| d} nt }nx|d kr.| d kr(| d kr(| d} t }d}d}d} | d|kr,|| d} nt }n |t vr<| | | t ¡| d} nê|tksf|tkr˜|d ksz|d kr<| | | d|¡t}| } n¤|t kr|d krö| dksÊ| d ksÊ| d kr| d} | }d} | d|kr|| d} n$|dkr<| | | t ¡t}| d} n|t kr¢|d kr|| dksP| d ksP| d kr | d} | }d} | d|kr || d} n$|d kr<| | | t ¡t}| d} nš|t krð|d kr<|d kr<|d kr<| d kr<| | | t ¡t}| d} nL|tkr<|dkr<|dkr<|dkr<| d kr<| | | t¡t}| d} |} |}|}| d} qJ| |krŽ|tkr|| || |d|¡n| | |d|¡dS) NrrrrŸr%éú#ú"ú'ú rú\)r!rrRÚ wordstartsr{r¨ÚSTYLE_COMMENT_BLOCKÚ STYLE_COMMENTÚSTYLE_TQDSTRINGÚ STYLE_STRINGÚSTYLE_TQSSTRINGÚSTYLE_SQSTRINGÚ operatorsÚSTYLE_OPERATORÚ wordcharsr¬)rr©r}r~Z lengthDocrªÚstateZchPrevZchPrev2ZchPrev3ZchNext2ZchNextZstartSegÚiZchrrrr­Þs                             ( ÿþýüû   z(PythonSourceFormatter.ColorizePythonCodeN) r,r-r.Ú STRING_STYLESrCrKr™r:r¬rr­rrrrr–¼sr–z .py .pys .pywz.html .htm .asp .shtmlz@c .cc .cpp .cxx .h .hh .hpp .hxx .idl .odl .php3 .phtml .inc .jsz.vbs .frm .ctl .clsz.pl .pm .cgi .podz".sql .spec .body .sps .spb .sf .spz .tex .styz .xml .xulz.errz.makz .bat .cmdc@s2eZdZdd„Zd dd„Zd dd „Zdd d „ZdS)ÚBuiltinSourceFormattercCs||_t ||¡dSr)Úextr0r)rr4rÂrrrr‹szBuiltinSourceFormatter.__init__rr€cCs|j tj||¡dSr)r4rPrZ SCI_COLOURISE)rryrzrrrrtszBuiltinSourceFormatter.ColorizeNcCsd|jdusJdƒ‚|dur,|j}|jd|_|j |¡dusDJdƒ‚||_||j|j<||j|<dS)NrGrrH)rrpr8Úgetrr9rIrrrrJ’s  z$BuiltinSourceFormatter.RegisterStylecCsR|j}tD]\}}|j|vr |}q,q tj}| tj|¡d t¡}|  |¡dS)Nr) r4Úsource_formatter_extensionsrÂrÚ SCLEX_PYTHONrPZ SCI_SETLEXERr rZSCISetKeywords)rr?ÚscZextsÚ formatterZ formatter_useÚkeywordsrrrr@œs   z$BuiltinSourceFormatter.HookFormatter)rr€)N)N)r,r-r.rrtrJr@rrrrrÁ‰s  rÁc@s0eZdZejZeZd dd„Zdd„Z dd„Z dS) ÚBuiltinPythonSourceFormatterú.pycCst |||¡dSr)rÁr)rrÆrÂrrrr­sz%BuiltinPythonSourceFormatter.__init__cCsPtD] \}}}}| t|||ƒ|¡qtD] \}}}}| t|||ƒ|¡q*dSrrš)rrrrWržrrrr:°sz&BuiltinPythonSourceFormatter.SetStylescCstSrr—r"rrrrK¶sz*BuiltinPythonSourceFormatter.GetSampleTextN)rÊ) r,r-r.rrÅZsci_lexer_namerÀrCrr:rKrrrrrÉ©s  rÉ)Or„r¥rSr)rhrrZ WM_KICKIDLErZ debuggingrZwin32traceutilrrr0rlÚkeywordrŒrr´r½r»rRr¶rµr§r¸rºr¹r·r¨r£r¤r¼r¢Z STYLE_BRACEZSTYLE_BRACEBADZSTYLE_STRINGEOLZSTYLE_LINENUMBERZSTYLE_INDENTGUIDErOrÀZ SCE_P_DEFAULTZSCE_P_COMMENTLINEZSCE_P_COMMENTBLOCKZ SCE_P_NUMBERZ SCE_P_STRINGZSCE_P_CHARACTERZ SCE_P_TRIPLEZSCE_P_TRIPLEDOUBLEZSCE_P_STRINGEOLZ SCE_P_WORDZSCE_P_CLASSNAMEZ SCE_P_DEFNAMEZSCE_P_OPERATORZSCE_P_IDENTIFIERr›ZSTYLE_BRACELIGHTrTZ COLOR_3DFACEZRGBrœr˜r–ÚsplitrÅZ SCLEX_HTMLZ SCLEX_CPPZSCLEX_VBZ SCLEX_PERLZ SCLEX_SQLZ SCLEX_LATEXZ SCLEX_XMLZSCLEX_ERRORLISTZSCLEX_MAKEFILEZ SCLEX_BATCHrÄrÁrÉrrrrÚsä   5]û üü         üüã(   üü  üð =  þ        ò