17"""Utilities for styling."""
22 from pygments
import formatters, lexers, highlight
23 from pygments.token
import Error, Comment, Text
24 from pygments.filters
import TokenMergeFilter
30 if _formatter
is None:
31 _formatter = formatters.TerminalFormatter()
37 lexer = lexers.get_lexer_for_filename(filename, stripnl=
False)
39 return highlight(contents, lexer, formatter).encode(
40 gdb.host_charset(),
"backslashreplace"
49 for ttype, value
in stream:
50 if ttype
is Error
and value ==
"#":
53 if ttype
is Text
and value ==
"\n":
56 ttype = Comment.Single
60 f = HandleNasmComments.fix_comments
61 return super().
filter(lexer,
f(lexer, stream))
70 flavor = gdb.parameter(
"disassembly-flavor")
71 if flavor ==
"intel" and gdbarch.name()[:4] ==
"i386":
80 if lexer_type
not in _asm_lexers:
81 _asm_lexers[lexer_type] = lexers.get_lexer_by_name(lexer_type)
83 _asm_lexers[lexer_type].add_filter(
"raiseonerror")
84 return _asm_lexers[lexer_type]
91 return highlight(content, lexer, formatter).rstrip().encode()
colorize_disasm(content, gdbarch)
colorize(filename, contents)