##// END OF EJS Templates
global: mass rewrite to use modern exception syntax...
global: mass rewrite to use modern exception syntax Python 2.6 introduced the "except type as instance" syntax, replacing the "except type, instance" syntax that came before. Python 3 dropped support for the latter syntax. Since we no longer support Python 2.4 or 2.5, we have no need to continue supporting the "except type, instance". This patch mass rewrites the exception syntax to be Python 2.6+ and Python 3 compatible. This patch was produced by running `2to3 -f except -w -n .`.

File last commit:

r25602:85fb416f default
r25660:328739ea default
Show More
__init__.py
68 lines | 2.7 KiB | text/x-python | PythonLexer
Martin Geisler
highlight: add copyright and license header
r8251 # highlight - syntax highlighting in hgweb, based on Pygments
#
# Copyright 2008, 2009 Patrick Mezard <pmezard@gmail.com> and others
#
# This software may be used and distributed according to the terms of the
Matt Mackall
Update license to GPLv2+
r10263 # GNU General Public License version 2 or any later version.
Martin Geisler
highlight: add copyright and license header
r8251 #
# The original module was split in an interface and an implementation
# file to defer pygments loading and speedup extension setup.
Dirkjan Ochtman
extensions: fix up description lines some more
r8932 """syntax highlighting for hgweb (requires Pygments)
Patrick Mezard
highlight: split code to improve startup times
r6938
Martin Geisler
highlight: wrap docstrings at 70 characters
r9262 It depends on the Pygments syntax highlighting library:
http://pygments.org/
Patrick Mezard
highlight: split code to improve startup times
r6938
Martin Geisler
highlight: use reST syntax for literal block
r9210 There is a single configuration option::
Patrick Mezard
highlight: split code to improve startup times
r6938
Martin Geisler
highlight: use reST syntax for literal block
r9210 [web]
pygments_style = <style>
Patrick Mezard
highlight: split code to improve startup times
r6938
The default is 'colorful'.
"""
import highlight
from mercurial.hgweb import webcommands, webutil, common
Dirkjan Ochtman
highlight: was broken since 580a79dde2a3 (encoding)
r8874 from mercurial import extensions, encoding
Augie Fackler
extensions: document that `testedwith = 'internal'` is special...
r25186 # Note for extension authors: ONLY specify testedwith = 'internal' for
# extensions which SHIP WITH MERCURIAL. Non-mainline extensions should
# be specifying the version(s) of Mercurial they are tested with, or
# leave the attribute unspecified.
Augie Fackler
hgext: mark all first-party extensions as such
r16743 testedwith = 'internal'
Patrick Mezard
highlight: split code to improve startup times
r6938
av6
hgweb: provide symrev (symbolic revision) property to the templates...
r25602 def filerevision_highlight(orig, web, req, tmpl, fctx):
Dirkjan Ochtman
highlight: was broken since 580a79dde2a3 (encoding)
r8874 mt = ''.join(tmpl('mimetype', encoding=encoding.encoding))
Rocco Rutte
highlight: only pygmentize for HTML mimetypes...
r6987 # only pygmentize for mimetype containing 'html' so we both match
# 'text/html' and possibly 'application/xhtml+xml' in the future
# so that we don't have to touch the extension when the mimetype
# for a template changes; also hgweb optimizes the case that a
# raw file is sent using rawfile() and doesn't call us, so we
# can't clash with the file's content-type here in case we
# pygmentize a html file
if 'html' in mt:
style = web.config('web', 'pygments_style', 'colorful')
highlight.pygmentize('fileline', fctx, style, tmpl)
av6
hgweb: provide symrev (symbolic revision) property to the templates...
r25602 return orig(web, req, tmpl, fctx)
Patrick Mezard
highlight: split code to improve startup times
r6938
Matt Mackall
extensions: use new wrapper functions
r7216 def annotate_highlight(orig, web, req, tmpl):
Dirkjan Ochtman
highlight: was broken since 580a79dde2a3 (encoding)
r8874 mt = ''.join(tmpl('mimetype', encoding=encoding.encoding))
Rocco Rutte
highlight: only pygmentize for HTML mimetypes...
r6987 if 'html' in mt:
fctx = webutil.filectx(web.repo, req)
style = web.config('web', 'pygments_style', 'colorful')
highlight.pygmentize('annotateline', fctx, style, tmpl)
Matt Mackall
extensions: use new wrapper functions
r7216 return orig(web, req, tmpl)
Patrick Mezard
highlight: split code to improve startup times
r6938
def generate_css(web, req, tmpl):
pg_style = web.config('web', 'pygments_style', 'colorful')
Mads Kiilerich
check-code: check for spaces around = for named parameters
r19872 fmter = highlight.HtmlFormatter(style=pg_style)
Patrick Mezard
highlight: split code to improve startup times
r6938 req.respond(common.HTTP_OK, 'text/css')
Brodie Rao
cleanup: eradicate long lines
r16683 return ['/* pygments_style = %s */\n\n' % pg_style,
fmter.get_style_defs('')]
Patrick Mezard
highlight: split code to improve startup times
r6938
Martin Geisler
highlight: move code from module top-level into extsetup
r9409 def extsetup():
# monkeypatch in the new version
Brodie Rao
cleanup: eradicate long lines
r16683 extensions.wrapfunction(webcommands, '_filerevision',
filerevision_highlight)
Martin Geisler
highlight: move code from module top-level into extsetup
r9409 extensions.wrapfunction(webcommands, 'annotate', annotate_highlight)
webcommands.highlightcss = generate_css
webcommands.__all__.append('highlightcss')