Files
ServerSync/lib/prompt_toolkit/lexers/__pycache__/pygments.cpython-314.pyc

122 lines
14 KiB
Plaintext
Raw Normal View History

2026-02-12 02:28:23 +02:00
+
9<><39>i<EFBFBD>.<00><01>d<00>Rt^RIHt^RIt^RIHtHt^RIHtH t H
t
H t H t H t ^RIHt^RIHtHt^RIHt^RIHt^R IHt^R
IHtHt]'d^R IHt.ROt!RR ]R7t!RR]4t !RR]4t!!RR]
] ]"R3,]"3,4t#]#!4t$!RR ]4t%R#)z<>
Adaptor classes for using Pygments lexers within prompt_toolkit.
This includes syntax synchronization code, so that we don't have to start
lexing at the beginning of a document, when displaying a very large text.
)<01> annotationsN)<02>ABCMeta<74>abstractmethod)<06> TYPE_CHECKING<4E>Callable<6C>Dict<63> Generator<6F>Iterable<6C>Tuple)<01>Document)<02> FilterOrBool<6F> to_filter)<01>StyleAndTextTuples)<01> split_lines<65><01>pygments_token_to_classname)<02>Lexer<65> SimpleLexer)r<00> PygmentsLexer<65>
SyntaxSync<EFBFBD> SyncFromStart<72> RegexSyncc<01>0<00>]tRt^!tRt]RRl4tRtR#)ra
Syntax synchronizer. This is a tool that finds a start position for the
lexer. This is especially important when editing big documents; we don't
want to start the highlighting by running the lexer from the beginning of
the file. That is very slow when editing.
c<01>$<00>V^8<>dQhRRRRRR/#<00><07><00>documentr <00>lineno<6E>int<6E>returnztuple[int, int]<5D>)<01>formats"<22>E/tmp/pip-target-wqrk2shd/lib/python/prompt_toolkit/lexers/pygments.py<70> __annotate__<5F>SyntaxSync.__annotate__*s$<00><00>
 <0C>
 <0C> <20>
 <0C>*-<2D>
 <0C> <18>
 <0C>c <0A><00>R#)z<>
Return the position from where we can start lexing as a (row, column)
tuple.
:param document: `Document` instance that contains all the lines.
:param lineno: The line that we want to highlight. (We need to return
this line, or an earlier position.)
Nr <00><03>selfrrs&&&r"<00>get_sync_start_position<6F>"SyntaxSync.get_sync_start_position)s<00>r%r N)<08>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__firstlineno__<5F>__doc__rr)<00>__static_attributes__r r%r"rr!s<00><00><08><14>
 <0C><14>
 r%)<01> metaclassc<01>&<00>]tRt^7tRtRRltRtR#)rz:
Always start the syntax highlighting from the beginning.
c<01>$<00>V^8<>dQhRRRRRR/#rr )r!s"r"r#<00>SyncFromStart.__annotate__<s$<00><00><14><14> <20><14>*-<2D><14> <18>r%c <09><00>R#)<02><00>r6r6r r's&&&r"r)<00>%SyncFromStart.get_sync_start_position<s <00><00><14> r%r N)r+r,r-r.r/r)r0r r%r"rr7s<00><00><08><14>r%c<01>P<00>]tRt^BtRtRt^dtRRltRRlt] RRl4t
R t R
#) rzI
Synchronize by starting at a line that matches the given regex pattern.
i<EFBFBD>c<01> <00>V^8<>dQhRRRR/#)r<00>pattern<72>strr<00>Noner )r!s"r"r#<00>RegexSync.__annotate__Os<00><00>5<>5<><03>5<><04>5r%c <09><<00>\P!V4VnR#)N)<03>re<72>compile<6C>_compiled_pattern)r(r;s&&r"<00>__init__<5F>RegexSync.__init__Os<00><00>!#<23><1A><1A>G<EFBFBD>!4<><04>r%c<01>$<00>V^8<>dQhRRRRRR/#rr )r!s"r"r#r>Rs$<00><00><1D><1D> <20><1D>*-<2D><1D> <18>r%c <0A><00>VPpVPp\V\RW P,
4R4F5pVP WE,4pV'gK$WVP 43u# W P8dR#V^3#)z8
Scan backwards, and find a possible position to start.
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>r7)rB<00>lines<65>range<67>max<61> MAX_BACKWARDS<44>match<63>start<72>FROM_START_IF_NO_SYNC_POS_FOUND)r(rrr;rH<00>irLs&&& r"r)<00>!RegexSync.get_sync_start_positionRs<00><00> <17>(<28>(<28><07><18><0E><0E><05><17>v<EFBFBD>s<EFBFBD>2<EFBFBD>v<EFBFBD>0B<30>0B<30>'B<>C<>R<EFBFBD>H<>A<EFBFBD><1B>M<EFBFBD>M<EFBFBD>%<25>(<28>+<2B>E<EFBFBD><14>u<EFBFBD><18>+<2B>+<2B>-<2D>'<27>'<27>I<01> <12>8<>8<> 8<><17>K<EFBFBD><19>1<EFBFBD>9<EFBFBD> r%c<01> <00>V^8<>dQhRRRR/#)r<00> lexer_cls<6C>PygmentsLexerClsrrr )r!s"r"r#r>ks<00><00><16><16>0@<40><16>Y<EFBFBD>r%c <0A>^<00>RRRRRRRR/pVPVPR4pV!V4#) zF
Create a :class:`.RegexSync` instance for this Pygments lexer class.
<EFBFBD>Pythonz^\s*(class|def)\s+zPython 3<>HTMLz
<[/a-zA-Z]<5D>
JavaScriptz \bfunction\b<>^)<02>get<65>name)<04>clsrR<00>patterns<6E>ps&& r"<00>from_pygments_lexer_cls<6C>!RegexSync.from_pygments_lexer_clsjs@<00><00> <15>+<2B> <16>-<2D> <12>M<EFBFBD> <18>/<2F>

<EFBFBD><08> <15>L<EFBFBD>L<EFBFBD><19><1E><1E><13> -<2D><01><12>1<EFBFBD>v<EFBFBD> r%)rBN) r+r,r-r.r/rKrNrCr)<00> classmethodr^r0r r%r"rrBs4<00><00><08> <18>M<EFBFBD>'*<2A>#<23>5<><1D>0<11><16><11>r%c<01>&<00>]tRt^~tRtRRltRtR#)<06> _TokenCachez<65>
Cache that converts Pygments tokens into `prompt_toolkit` style objects.
``Token.A.B.C`` will be converted into:
``class:pygments,pygments.A,pygments.A.B,pygments.A.B.C``
c<01> <00>V^8<>dQhRRRR/#)r<00>keyztuple[str, ...]rr<r )r!s"r"r#<00>_TokenCache.__annotate__<5F>s<00><00><16><16><EFBFBD><16>3<EFBFBD>r%c <09>2<00>R\V4,pW V&V#)zclass:r)r(rd<00>results&& r"<00> __missing__<5F>_TokenCache.__missing__<5F>s<00><00><19>7<><03><<3C><<3C><06><1A>S<EFBFBD> <09><15> r%r N)r+r,r-r.r/rhr0r r%r"rbrb~s<00><00><08><16>r%rb.c<01>X<00>]tRt^<5E>tRt^2t^dtR
RRllt]R RRll4t RRlt
R t R#) rae
Lexer that calls a pygments lexer.
Example::
from pygments.lexers.html import HtmlLexer
lexer = PygmentsLexer(HtmlLexer)
Note: Don't forget to also load a Pygments compatible style. E.g.::
from prompt_toolkit.styles.from_pygments import style_from_pygments_cls
from pygments.styles import get_style_by_name
style = style_from_pygments_cls(get_style_by_name('monokai'))
:param pygments_lexer_cls: A `Lexer` from Pygments.
:param sync_from_start: Start lexing at the start of the document. This
will always give the best results, but it will be slow for bigger
documents. (When the last part of the document is display, then the
whole document will be lexed by Pygments on every key stroke.) It is
recommended to disable this for inputs that are expected to be more
than 1,000 lines.
:param syntax_sync: `SyntaxSync` object.
Nc<01>(<00>V^8<>dQhRRRRRRRR/#) r<00>pygments_lexer_clsztype[PygmentsLexerCls]<5D>sync_from_startr <00> syntax_synczSyntaxSync | Nonerr=r )r!s"r"r#<00>PygmentsLexer.__annotate__<5F>s2<00><00>
<EFBFBD>
<EFBFBD>2<>
<EFBFBD>&<26>
<EFBFBD>'<27> 
<EFBFBD>
<0E> 
r%c <09><><00>Wn\V4VnV!RRRR7VnT;'g\P V4VnR#)F)<03>stripnl<6E>stripall<6C>ensurenlN)rlr rm<00>pygments_lexerrr^rn)r(rlrmrns&&&&r"rC<00>PygmentsLexer.__init__<5F>sQ<00><00> #5<><1F>(<28><1F>9<><04><1C>1<><19>E<EFBFBD>E<EFBFBD>
<EFBFBD><04><1B>
'<27>
<EFBFBD>
<EFBFBD>)<29>*K<>*K<> <1E>+
<EFBFBD><04>r%c<01>$<00>V^8<>dQhRRRRRR/#)r<00>filenamer<rmr rrr )r!s"r"r#ro<00>s)<00><00>R<01>R<01><1A>R<01>-9<>R<01> <0E>Rr%c <0A><><00>^RIHp^RIHpV!V4pV!VPVR7# Td\ 4u#i;i)z#
Create a `Lexer` from a filename.
)<01>get_lexer_for_filename)<01> ClassNotFound)rm)<06>pygments.lexersry<00> pygments.utilrz<00> __class__r)r[rwrmryrzrts&&& r"<00> from_filename<6D>PygmentsLexer.from_filename<6D>sH<00><00> ;<3B>/<2F> R<01>3<>H<EFBFBD>=<3D>N<EFBFBD><17>~<7E>/<2F>/<2F><1F>Q<> Q<><51><1D> !<21><1E>=<3D> <20> !<21>s <00>*<00>><03>>c<01> <00>V^8<>dQhRRRR/#)rrr rz#Callable[[int], StyleAndTextTuples]r )r!s"r"r#ro<00>s<00><00>o<18>o<18>X<EFBFBD>o<18>2U<32>or%c <0A><>aaaaaaaa <09>\\\\3,RR3,p/o/o RV3RlloRV V3RlloR RVV3RllloRVVVVV V3R lloR
VVV 3R llpV#) z<>
Create a lexer function that takes a line number and returns the list
of (style_str, text) tuples as the Pygments lexer returns for that line.
Nc<01><00>V^8<>dQhRR/#)rrrr )r!s"r"r#<00>0PygmentsLexer.lex_document.<locals>.__annotate__<5F>s<00><00> (<28> (<28><1A> (r%c<05>\<<01>SP4'd \4#SP#)z8The Syntax synchronization object that we currently use.)rmrrn)r(s<00>r"<00>get_syntax_sync<6E>3PygmentsLexer.lex_document.<locals>.get_syntax_sync<6E>s&<00><><00><13>#<23>#<23>%<25>%<25>$<24><EFBFBD>&<26><1B>'<27>'<27>'r%c<01> <00>V^8<>dQhRRRR/#)rrOrrzLineGenerator | Noner )r!s"r"r#r<><00>s<00><00> <18> <18>c<EFBFBD> <18>.B<> r%c<05><><<02>SP4F(wrW 8gK W,
SP8gK&Vu# R#)z@Return a generator close to line 'i', or None if none was found.N)<02>items<6D>REUSE_GENERATOR_MAX_DISTANCE)rO<00> generatorr<00>line_generatorsr(s& <20><>r"<00>find_closest_generator<6F>:PygmentsLexer.lex_document.<locals>.find_closest_generator<6F>s8<00><><00>%4<>%:<3A>%:<3A>%<<3C>!<21> <09><19>:<3A>!<21>*<2A>t<EFBFBD>/P<>/P<>"P<>$<24>$<24>&=<3D>r%c<01>$<00>V^8<>dQhRRRRRR/#)r<00> start_linenor<00>columnr<00> LineGeneratorr )r!s"r"r#r<><00>s&<00><00> X<01> X<01><03> X<01>S<EFBFBD> X<01><1D> Xr%c3<05><><aa"<00>RVVVV3Rllp\\\V!444S4Rjx<01>L
R#L5i)z{
Create a generator that yields the lexed lines.
Each iteration it yields a (line_number, [(style_str, text), ...]) tuple.
c<01><00>V^8<>dQhRR/#)rrzIterable[tuple[str, str]]r )r!s"r"r#<00>OPygmentsLexer.lex_document.<locals>.create_line_generator.<locals>.__annotate__<5F>s<00><00>
-<2D>
-<2D>(A<>
-r%c3<01><><"<00>RPSPSR4SRpSPPV4Fwrp\V,V3x<00>K R#5i)<02>
N)<05>joinrHrt<00>get_tokens_unprocessed<65> _token_cache)<08>text<78>_<>t<>vr<76>rr(r<>s <20><><EFBFBD><EFBFBD>r"<00>get_text_fragments<74>UPygmentsLexer.lex_document.<locals>.create_line_generator.<locals>.get_text_fragments<74>sY<00><><00><00><1B>y<EFBFBD>y<EFBFBD><18><1E><1E> <0C> <0A>!><3E>?<3F><06><07>H<><04> $<24>2<>2<>I<>I<>$<24>O<>G<EFBFBD>A<EFBFBD>!<21>'<27>q<EFBFBD>/<2F>1<EFBFBD>,<2C>,<2C> P<01>s<00>AAN)<03> enumerater<00>list)r<>r<>r<>rr(sff <20><>r"<00>create_line_generator<6F>9PygmentsLexer.lex_document.<locals>.create_line_generator<6F>s0<00><><00><00>
-<2D>
-<2D>!<21><1B>T<EFBFBD>2D<32>2F<32>-G<>!H<>,<2C>W<> W<> W<>s<00>3A<01>?<04>Ac<01> <00>V^8<>dQhRRRR/#)rrOrrr<>r )r!s"r"r#r<> s<00><00>% <1D>% <1D>S<EFBFBD>% <1D>]<5D>% r%c<05>&<<06>S!V4pV'dV#\^VS P,
4pV^8Xd^p^pMS!4PSV4wr#S!V4pV'dV#S!W#4pV'd\V4V^, pVSV&V#)zG
Find an already started generator that is close, or create a new one.
)rJ<00>MIN_LINES_BACKWARDSr)<00>next)
rOr<><00>rowr<77>r<>rr<>r<>r<>r(s
& <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>r"<00> get_generator<6F>1PygmentsLexer.lex_document.<locals>.get_generator s<><00><><00>
/<2F>q<EFBFBD>1<>I<EFBFBD><18> <20> <20><14>A<EFBFBD>q<EFBFBD>4<EFBFBD>3<>3<>3<>4<>A<EFBFBD><10>A<EFBFBD>v<EFBFBD><17><03><1A><06>-<2D>/<2F>G<>G<><08>RS<52>T<> <0B><03>/<2F>q<EFBFBD>1<>I<EFBFBD><18> <20> <20>1<>#<23>><3E> <09>
<16><14>Y<EFBFBD><0F><13>q<EFBFBD><08><03>),<2C>O<EFBFBD>I<EFBFBD> &<26><1C> r%c<01> <00>V^8<>dQhRRRR/#)rrOrrrr )r!s"r"r#r<>0s<00><00> <16> <16><03> <16> 2<> r%c<05><><<03>SV,# \dMS!T4pTF:wr#TST&Y 8XgKTST&T^,S9d ST^,ST,uu# .#i;i)z*Return the tokens for a given line number.)<01>KeyError)rOr<><00>num<75>line<6E>cacher<65>r<>s& <20><><EFBFBD>r"<00>get_line<6E>,PygmentsLexer.lex_document.<locals>.get_line0sz<00><><00> *<2A><1C>Q<EFBFBD>x<EFBFBD><0F><><1B> *<2A>)<29>!<21>,<2C> <09>"+<2B>I<EFBFBD>C<EFBFBD>!%<25>E<EFBFBD>#<23>J<EFBFBD><1A>x<EFBFBD>56<35><0F> <09>2<><1F><11>7<EFBFBD>e<EFBFBD>+<2B> %<25>c<EFBFBD>A<EFBFBD>g<EFBFBD><0E>$<24>S<EFBFBD>z<EFBFBD>)<29>"+<2B><16>I<EFBFBD>% *<2A>s<00> <00>"A#<03>(A#<03>A#<03>"A#)r6)rr
rr)
r(rr<>r<>r<>r<>r<>r<>r<>r<>s
ff @@@@@@r"<00> lex_document<6E>PygmentsLexer.lex_document<6E>sk<00><><00>
"<22>%<25><03>-?<3F>(?<3F>"@<40>$<24><04>"L<>M<> <0A>02<30><05>57<35><0F> (<28> (<28> <18> <18> X<01> X<01>(% <1D>% <1D>N <16> <16>0<18>r%)rtrlrmrn)TN)T) r+r,r-r.r/r<>r<>rCr`r~r<>r0r r%r"rr<00>s><00><00><08>:<1D><17>
$'<27> <20>
<EFBFBD>&<11>R<01><11>R<01>"o<18>or%)rrrr)&r/<00>
__future__rr@<00>abcrr<00>typingrrrrr r
<00>prompt_toolkit.documentr <00>prompt_toolkit.filtersr r <00>"prompt_toolkit.formatted_text.baser<00>#prompt_toolkit.formatted_text.utilsr<00>prompt_toolkit.styles.pygmentsr<00>baserr<00>pygments.lexerrS<00>__all__rrrr<rbr<>rr r%r"<00><module>r<>s<><00><01><04>#<23> <09>'<27>L<>L<>,<2C>:<3A>A<>;<3B>F<>$<24><10>8<> <02><07> <0C>7<EFBFBD> <0C>,<14>J<EFBFBD><14>9<16>
<EFBFBD>9<16>x <16>$<24>u<EFBFBD>S<EFBFBD>#<23>X<EFBFBD><EFBFBD><03>+<2B>,<2C> <16><1B>}<7D> <0C>y<18>E<EFBFBD>yr%