19 guess_decode, guess_decode_from_terminal, terminal_encoding, \
70 cls = get_lexer_by_name(name)
71 print(
"Help on the %s lexer:" % cls.name)
72 print(dedent(cls.__doc__))
73 elif what ==
'formatter':
74 cls = find_formatter_class(name)
75 print(
"Help on the %s formatter:" % cls.name)
76 print(dedent(cls.__doc__))
77 elif what ==
'filter':
78 cls = find_filter_class(name)
79 print(
"Help on the %s filter:" % name)
80 print(dedent(cls.__doc__))
82 except (AttributeError, ValueError):
94 for fullname, names, exts, _
in get_all_lexers():
95 tup = (
', '.join(names)+
':', fullname,
96 exts
and '(filenames ' +
', '.join(exts) +
')' or '')
100 print((
'* %s\n %s %s') % i)
102 elif what ==
'formatter':
108 for cls
in get_all_formatters():
109 doc = docstring_headline(cls)
110 tup = (
', '.join(cls.aliases) +
':', doc, cls.filenames
and
111 '(filenames ' +
', '.join(cls.filenames) +
')' or '')
115 print((
'* %s\n %s %s') % i)
117 elif what ==
'filter':
122 for name
in get_all_filters():
123 cls = find_filter_class(name)
124 print(
"* " + name +
':')
125 print(
" %s" % docstring_headline(cls))
127 elif what ==
'style':
132 for name
in get_all_styles():
133 cls = get_style_by_name(name)
134 print(
"* " + name +
':')
135 print(
" %s" % docstring_headline(cls))
141 if 'lexer' in requested_items:
143 for fullname, names, filenames, mimetypes
in get_all_lexers():
146 'filenames': filenames,
147 'mimetypes': mimetypes
149 result[
'lexers'] = info
151 if 'formatter' in requested_items:
153 for cls
in get_all_formatters():
154 doc = docstring_headline(cls)
156 'aliases': cls.aliases,
157 'filenames': cls.filenames,
160 result[
'formatters'] = info
162 if 'filter' in requested_items:
164 for name
in get_all_filters():
165 cls = find_filter_class(name)
167 'doc': docstring_headline(cls)
169 result[
'filters'] = info
171 if 'style' in requested_items:
173 for name
in get_all_styles():
174 cls = get_style_by_name(name)
176 'doc': docstring_headline(cls)
178 result[
'styles'] = info
188 print(
'Pygments version %s, (c) 2006-2023 by Georg Brandl, Matthäus '
189 'Chajdas and contributors.' % __version__)
193 return not any(v
for (k, v)
in vars(argns).items()
if k != opt)
198 for k, v
in vars(argns).items():
212 allowed_types = {
'lexer',
'formatter',
'filter',
'style'}
214 if any(arg
not in allowed_types
for arg
in largs):
218 largs = allowed_types
232 if what
not in (
'lexer',
'formatter',
'filter'):
245 parsed_opts[p_opt] =
True
247 parsed_opts[name] = value
255 lexer = find_lexer_class_for_filename(
argns.N)
266 lexer = guess_lexer(inp, inencoding=inencoding)
267 except ClassNotFound:
276 if S_opt
is not None:
286 parsed_opts[
'style'] = S_opt
287 fmter = get_formatter_by_name(f_opt, **parsed_opts)
288 except ClassNotFound
as err:
304 allow_custom_lexer_formatter = bool(
argns.x)
313 if allow_custom_lexer_formatter
and '.py' in lexername:
325 if filename
and name:
326 lexer = load_lexer_from_file(filename, name,
329 lexer = load_lexer_from_file(lexername, **parsed_opts)
330 except ClassNotFound
as err:
335 lexer = get_lexer_by_name(lexername, **parsed_opts)
336 except (OptionError, ClassNotFound)
as err:
345 print(
'Error: -s option not usable when input file specified',
351 with open(infn,
'rb')
as infp:
353 except Exception
as err:
354 print(
'Error: cannot read infile:', err, file=
sys.stderr)
357 code, inencoding = guess_decode(code)
362 lexer = get_lexer_for_filename(infn, code, **parsed_opts)
363 except ClassNotFound
as err:
366 lexer = guess_lexer(code, **parsed_opts)
367 except ClassNotFound:
368 lexer = TextLexer(**parsed_opts)
372 except OptionError
as err:
381 code, inencoding = guess_decode_from_terminal(code,
sys.stdin)
385 lexer = guess_lexer(code, **parsed_opts)
386 except ClassNotFound:
387 lexer = TextLexer(**parsed_opts)
391 print(
'Error: when using -s a lexer has to be selected with -l',
396 for fname, fopts
in F_opts:
399 except ClassNotFound
as err:
408 if allow_custom_lexer_formatter
and '.py' in fmter:
419 if filename
and name:
420 fmter = load_formatter_from_file(filename, name,
423 fmter = load_formatter_from_file(fmter, **parsed_opts)
424 except ClassNotFound
as err:
429 fmter = get_formatter_by_name(fmter, **parsed_opts)
430 except (OptionError, ClassNotFound)
as err:
437 fmter = get_formatter_for_filename(outfn, **parsed_opts)
438 except (OptionError, ClassNotFound)
as err:
442 outfile = open(outfn,
'wb')
443 except Exception
as err:
444 print(
'Error: cannot open outfile:', err, file=
sys.stderr)
466 if not outfn
and sys.platform in (
'win32',
'cygwin')
and \
477 outfile, convert=
None, strip=
None, autoreset=
False, wrap=
True)
483 if len(escapeinside) == 2
and isinstance(fmter, LatexFormatter):
484 left = escapeinside[0]
485 right = escapeinside[1]
492 highlight(code, lexer, fmter, outfile)
505 line = guess_decode_from_terminal(line,
sys.stdin)[0]
506 highlight(line, lexer, fmter, outfile)
510 except KeyboardInterrupt: