Update vendor'd Pygments to 2.1.3
This commit is contained in:
119
vendor/pygments/external/autopygmentize
vendored
119
vendor/pygments/external/autopygmentize
vendored
@@ -1,64 +1,83 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
# Best effort auto-pygmentization with transparent decompression
|
||||
# (c) Reuben Thomas 2012-2013
|
||||
# by Reuben Thomas 2008-2015
|
||||
# This program is in the public domain.
|
||||
|
||||
# Strategy: first see if pygmentize can find a lexer; if not, ask file; if that finds nothing, fail
|
||||
# Set the environment variable PYGMENTIZE_OPTS to configure pygments.
|
||||
# Set the environment variable PYGMENTIZE_OPTS or pass options before the file path to configure pygments.
|
||||
|
||||
# This program can be used as a .lessfilter for the less pager to auto-color less's output
|
||||
|
||||
lexer=`pygmentize -N "$1"`
|
||||
if [ "$lexer" = "text" ]; then
|
||||
file_common_opts="--brief --dereference --uncompress"
|
||||
file="${!#}" # last argument
|
||||
options=${@:1:$(($#-1))} # handle others args as options to pass to pygmentize
|
||||
|
||||
unset lexer
|
||||
case `file --mime-type $file_common_opts "$1"` in
|
||||
application/xml|image/svg+xml) lexer=xml;;
|
||||
text/html) lexer=html;;
|
||||
text/troff) lexer=nroff;;
|
||||
text/x-asm) lexer=nasm;;
|
||||
text/x-awk) lexer=awk;;
|
||||
text/x-c) lexer=c;;
|
||||
text/x-c++) lexer=cpp;;
|
||||
text/x-diff) lexer=diff;;
|
||||
text/x-fortran) lexer=fortran;;
|
||||
text/x-gawk) lexer=gawk;;
|
||||
text/x-java) lexer=java;;
|
||||
text/x-lisp) lexer=common-lisp;;
|
||||
text/x-lua) lexer=lua;;
|
||||
text/x-makefile) lexer=make;;
|
||||
text/x-msdos-batch) lexer=bat;;
|
||||
text/x-nawk) lexer=nawk;;
|
||||
text/x-pascal) lexer=pascal;;
|
||||
text/x-perl) lexer=perl;;
|
||||
text/x-php) lexer=php;;
|
||||
text/x-po) lexer=po;;
|
||||
text/x-python) lexer=python;;
|
||||
text/x-ruby) lexer=ruby;;
|
||||
text/x-shellscript) lexer=sh;;
|
||||
text/x-tcl) lexer=tcl;;
|
||||
text/x-tex|text/x-texinfo) lexer=latex;; # FIXME: texinfo really needs its own lexer
|
||||
|
||||
# Types that file outputs which pygmentize didn't support as of file 5.11, pygments 1.6rc1
|
||||
# text/calendar
|
||||
# text/PGP
|
||||
# text/rtf
|
||||
# text/texmacs
|
||||
# text/x-bcpl
|
||||
# text/x-info
|
||||
# text/x-m4
|
||||
# text/x-vcard
|
||||
# text/x-xmcd
|
||||
esac
|
||||
file_common_opts="--brief --dereference"
|
||||
|
||||
lexer=$(pygmentize -N "$file")
|
||||
if [[ "$lexer" == text ]]; then
|
||||
unset lexer
|
||||
case $(file --mime-type --uncompress $file_common_opts "$file") in
|
||||
application/xml|image/svg+xml) lexer=xml;;
|
||||
application/javascript) lexer=javascript;;
|
||||
text/html) lexer=html;;
|
||||
text/troff) lexer=nroff;;
|
||||
text/x-asm) lexer=nasm;;
|
||||
text/x-awk) lexer=awk;;
|
||||
text/x-c) lexer=c;;
|
||||
text/x-c++) lexer=cpp;;
|
||||
text/x-diff) lexer=diff;;
|
||||
text/x-fortran) lexer=fortran;;
|
||||
text/x-gawk) lexer=gawk;;
|
||||
text/x-java) lexer=java;;
|
||||
text/x-lisp) lexer=common-lisp;;
|
||||
text/x-lua) lexer=lua;;
|
||||
text/x-makefile) lexer=make;;
|
||||
text/x-msdos-batch) lexer=bat;;
|
||||
text/x-nawk) lexer=nawk;;
|
||||
text/x-pascal) lexer=pascal;;
|
||||
text/x-perl) lexer=perl;;
|
||||
text/x-php) lexer=php;;
|
||||
text/x-po) lexer=po;;
|
||||
text/x-python) lexer=python;;
|
||||
text/x-ruby) lexer=ruby;;
|
||||
text/x-shellscript) lexer=sh;;
|
||||
text/x-tcl) lexer=tcl;;
|
||||
text/x-tex|text/x-texinfo) lexer=latex;; # FIXME: texinfo really needs its own lexer
|
||||
|
||||
# Types that file outputs which pygmentize didn't support as of file 5.20, pygments 2.0
|
||||
# text/calendar
|
||||
# text/inf
|
||||
# text/PGP
|
||||
# text/rtf
|
||||
# text/texmacs
|
||||
# text/vnd.graphviz
|
||||
# text/x-bcpl
|
||||
# text/x-info
|
||||
# text/x-m4
|
||||
# text/x-vcard
|
||||
# text/x-xmcd
|
||||
|
||||
text/plain) # special filenames. TODO: insert more
|
||||
case $(basename "$file") in
|
||||
.zshrc) lexer=sh;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
encoding=`file --brief --mime-encoding $file_common_opts "$1"`
|
||||
encoding=$(file --mime-encoding --uncompress $file_common_opts "$file")
|
||||
if [[ $encoding == "us-asciibinarybinary" ]]; then
|
||||
encoding="us-ascii"
|
||||
fi
|
||||
|
||||
if [ -n "$lexer" ]; then
|
||||
# FIXME: Specify input encoding rather than output encoding https://bitbucket.org/birkenfeld/pygments-main/issue/800
|
||||
zcat "$1" | pygmentize -O encoding=$encoding,outencoding=UTF-8 $PYGMENTIZE_OPTS -l $lexer
|
||||
exit 0
|
||||
if [[ -n "$lexer" ]]; then
|
||||
concat=cat
|
||||
case $(file $file_common_opts --mime-type "$file") in
|
||||
application/x-gzip) concat=zcat;;
|
||||
application/x-bzip2) concat=bzcat;;
|
||||
application/x-xz) concat=xzcat;;
|
||||
esac
|
||||
exec $concat "$file" | pygmentize -O inencoding=$encoding $PYGMENTIZE_OPTS $options -l $lexer
|
||||
fi
|
||||
|
||||
exit 1
|
||||
|
||||
Reference in New Issue
Block a user