Tim Hatch schrieb:
> The analyse_text function is used for both total-guess mode (./
> pymentize -g < file) and for when there are multiple lexers for a
> filename (e.g. ANTLR .g files, since Pygments 1.0).  I'm thinking
> about how to set up analyse_text for these lexers, such that the ANTLR
> Java lexer trumps all other ANTLR lexers, but doesn't steal
> highlighting when the extension doesn't match.
> 
> The easiest way I've come up with is a small API change:
> 
> def analyse_text(text, filepattern_matched=None)
> 
> filepattern would be None when using stdin, but otherwise could be
> '*.g' for example.  I originally had a boolean here, but that wouldn't
> work well for the Prolog lexer (it should be less confident on .pl and
> fully confident on .pro).
> 
> Another option is to put some sort of match-bonus in the list of
> filenames, since the code for this would be very redundant, e.g.
> filenames=[("*.pl", 0.5), ("*.pro", 0.8)].

And multiply that with the value returned by analyse_text?
That sounds like a good idea.  However, maybe another attribute
would be better, something like filename_confidence, being a dict;
some people may rely on "filenames" being a list of patterns.

> p.s. here's the wrapper that would be required for that to not break
> plugin lexers:
> 
> def make_analysator(f):
>     """
>     Return a static text analysation function that
>     returns float values.
>     """
>     def text_analyse(text, filepattern_matched=False):
>         try:
>             rv = f(text, filepattern_matched)
>         except TypeError:
>             # Continue supporting the one-argument version, which may
> be used
>             # in plugin lexers for a while to come.
>             rv = f(text)
>         if not rv:
>             return 0.0
>         return min(1.0, max(0.0, float(rv)))
>     text_analyse.__doc__ = f.__doc__
>     return staticmethod(text_analyse)

Doesn't look too terrible to me.

Georg

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pocoo-libs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/pocoo-libs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to