diff options
author | Andrei Pikas <gdb@mail.api.win> | 2024-10-05 22:27:44 +0300 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2025-01-12 13:30:43 -0700 |
commit | 6447969d0ac774b6dec0f95a0d3d27c27d158690 (patch) | |
tree | e9812cfdd956f4c8e89f596b276ddc1c4ad8da45 /gdb/doc | |
parent | 338e0b05d8f2dd404eb0015bee31461dfe5ba307 (diff) | |
download | binutils-6447969d0ac774b6dec0f95a0d3d27c27d158690.zip binutils-6447969d0ac774b6dec0f95a0d3d27c27d158690.tar.gz binutils-6447969d0ac774b6dec0f95a0d3d27c27d158690.tar.bz2 |
Add an option with a color type.
Colors can be specified as "none" for terminal's default color, as a name of
one of the eight standard colors of ISO/IEC 6429 "black", "red", "green", etc.,
as an RGB hexadecimal tripplet #RRGGBB for 24-bit TrueColor, or as an
integer from 0 to 255. Integers 0 to 7 are the synonyms for the standard
colors. Integers 8-15 are used for the so-called bright colors from the
aixterm extended 16-color palette. Integers 16-255 are the indexes into xterm
extended 256-color palette (usually 6x6x6 cube plus gray ramp). In
general, 256-color palette is terminal dependent and sometimes can be
changed with OSC 4 sequences, e.g. "\033]4;1;rgb:00/FF/00\033\\".
It is the responsibility of the user to verify that the terminal supports
the specified colors.
PATCH v5 changes: documentation fixed.
PATCH v6 changes: documentation fixed.
PATCH v7 changes: rebase onto master and fixes after review.
PATCH v8 changes: fixes after review.
Diffstat (limited to 'gdb/doc')
-rw-r--r-- | gdb/doc/gdb.texinfo | 46 | ||||
-rw-r--r-- | gdb/doc/guile.texi | 104 | ||||
-rw-r--r-- | gdb/doc/python.texi | 98 |
3 files changed, 240 insertions, 8 deletions
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 0d55875..726e7ce 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -13009,6 +13009,20 @@ and @code{$_shell_exitsignal} according to the exit status of the last launched command. These variables are set and used similarly to the variables @code{$_exitcode} and @code{$_exitsignal}. +@item $_colorsupport +@vindex $_colorsupport@r{, convenience variable} +@cindex color space +Comma-separated list of @dfn{color space} names supported by terminal. Names +could be any of @samp{monochrome}, @samp{ansi_8color}, @samp{aixterm_16color}, +@samp{xterm_256color}, @samp{rgb_24bit}. E.g., for plain linux terminal the +value could be @samp{monochrome,ansi_8color} and for terminal with truecolor +support it could be +@samp{monochrome,ansi_8color,aixterm_16color,xterm_256color,rgb_24bit}. +@samp{rgb_24bit} availability is determined by the @env{COLORTERM} environment +variable which may be @samp{truecolor} or @samp{24bit}. Other color spaces are +determined by the "Co" termcap which in turn depends on the @env{TERM} +environment variable. + @end table @node Convenience Funs @@ -27871,16 +27885,32 @@ For example, the style of file names can be controlled using the @table @code @item set style filename background @var{color} -Set the background to @var{color}. Valid colors are @samp{none} -(meaning the terminal's default color), @samp{black}, @samp{red}, -@samp{green}, @samp{yellow}, @samp{blue}, @samp{magenta}, @samp{cyan}, -and@samp{white}. +Set the background to @var{color}. @var{color} can be @samp{none} +(meaning the terminal's default color), a name of one of the eight standard +colors of ISO/IEC 6429, index from 0 to 255 into terminal's color +palette or a hexadecimal RGB triplet in @samp{#RRGGBB} format for +24-bit TrueColor. + +Valid color names are @samp{black}, @samp{red}, @samp{green}, +@samp{yellow}, @samp{blue}, @samp{magenta}, @samp{cyan}, and +@samp{white}. + +Integers 0 to 7 are the synonyms for the standard colors. Integers 8-15 are +used for the so-called bright colors from the aixterm extended 16-color +palette. Integers 16-255 are the indexes into xterm extended 256-color palette +(usually 6x6x6 cube plus gray ramp). In general, 256-color palette is terminal +dependent and sometimes can be changed with OSC 4 sequences, e.g. +"\033]4;1;rgb:00/FF/00\033\\". A hexadecimal 24-bit TrueColor is specified in +the format @samp{#RRGGBB} where RR, GG and BB are the 2-digit hexadecimal +integers specifiing the intensity of the red, green and blue color components, +respectively. + +It is the responsibility of the user to verify that the terminal supports +the specified colors. @item set style filename foreground @var{color} -Set the foreground to @var{color}. Valid colors are @samp{none} -(meaning the terminal's default color), @samp{black}, @samp{red}, -@samp{green}, @samp{yellow}, @samp{blue}, @samp{magenta}, @samp{cyan}, -and@samp{white}. +Set the foreground to @var{color}. @var{color} can be given in the same ways +as for the background. @item set style filename intensity @var{value} Set the intensity to @var{value}. Valid intensities are @samp{normal} diff --git a/gdb/doc/guile.texi b/gdb/doc/guile.texi index bd1262e..f1b638e 100644 --- a/gdb/doc/guile.texi +++ b/gdb/doc/guile.texi @@ -155,6 +155,7 @@ from the Guile interactive prompt. * I/O Ports in Guile:: GDB I/O ports * Memory Ports in Guile:: Accessing memory through ports and bytevectors * Iterators In Guile:: Basic iterator support +* Colors In Guile:: Colorize output with Guile @end menu @node Basic Guile @@ -408,6 +409,9 @@ as a symbol. @item <gdb:value> @xref{Values From Inferior In Guile}. + +@item <gdb:color> +@xref{Colors In Guile}. @end table The following @value{GDBN} objects are managed internally so that the @@ -2184,6 +2188,14 @@ The value is a filename. This is just like @item PARAM_ENUM The value is a string, which must be one of a collection of string constants provided when the parameter is created. + +@item PARAM_COLOR +The value is either a string or an unsigned integer. Integer from 0 to 255 +means index into terminal's color palette. String can be a hex RGB triplet in +@samp{#RRGGBB} format or one of the following color names: +@samp{none} (meaning the terminal's default color), @samp{black}, @samp{red}, +@samp{green}, @samp{yellow}, @samp{blue}, @samp{magenta}, @samp{cyan}, +or @samp{white}. @end vtable @node Progspaces In Guile @@ -3820,6 +3832,98 @@ Run @var{iterator} until the result of @code{(pred element)} is true and return that as the result. Otherwise return @code{#f}. @end deffn +@node Colors In Guile +@subsubsection Colors In Guile + +@cindex guile colors +@tindex <gdb:color> +You can assign instance of @code{<gdb:color>} to the value of +a @code{<gdb:parameter>} object created with @code{PARAM_COLOR}. + +@code{<gdb:color>} may refer to an index from color palette or contain +components of a color from some colorspace. + +@deffn {Scheme Procedure} make-color @w{@r{[}value} @ + @w{@r{[}#:color-space color-space@r{]}@r{]}} + +@var{value} is an integer index of a color in palette, tuple with color +components or a string. String can be a hex RGB triplet in @samp{#RRGGBB} +format or one of the following color names: +@samp{none} (meaning the terminal's default color), @samp{black}, @samp{red}, +@samp{green}, @samp{yellow}, @samp{blue}, @samp{magenta}, @samp{cyan}, +or @samp{white}. + +@var{color-space} should be one of the @samp{COLORSPACE_} constants. This +argument tells @value{GDBN} which color space @var{value} belongs. +@end deffn + +@deffn {Scheme Procedure} color? object +Return @code{#t} if @var{object} is a @code{<gdb:color>} object. +Otherwise return @code{#f}. +@end deffn + +@deffn {Scheme Procedure} color-none? color +Return @code{#t} if @var{color} is terminal's default. +Otherwise return @code{#f}. +@end deffn + +@deffn {Scheme Procedure} color-indexed? color +Return @code{#t} if @var{color} is indexed, i.e. belongs to some palette. +Otherwise return @code{#f}. +@end deffn + +@deffn {Scheme Procedure} color-direct? color +Return @code{#t} if @var{color} is direct in the sense of ISO/IEC 8613-6. +Otherwise return @code{#f}. +@end deffn + +@deffn {Scheme Procedure} color-string color +Return the textual representation of a @code{<gdb:color>} object. +@end deffn + +@deffn {Scheme Procedure} color-colorspace color +Return the color space of a @code{<gdb:color>} object. +@end deffn + +@deffn {Scheme Procedure} color-index color +Return index of the color of a @code{<gdb:color>} object in a palette. +@end deffn + +@deffn {Scheme Procedure} color-components color +Return components of the direct @code{<gdb:color>} object. +@end deffn + +@deffn {Scheme Procedure} color-escape-sequence color is_foreground +Return string to change terminal's color to this. + +If @var{is_foreground} is @code{#t}, then the returned sequence will change +foreground color. Otherwise, the returned sequence will change background +color. +@end deffn + +When color is initialized, its color space must be specified. The +available color spaces are represented by constants defined in the @code{gdb} +module: + +@vtable @code +@item COLORSPACE_MONOCHROME +Palette with only terminal's default color. + +@item COLORSPACE_ANSI_8COLOR +Palette with eight standard colors of ISO/IEC 6429 "black", "red", "green", etc. + +@item COLORSPACE_AIXTERM_16COLOR +Palette with 16 colors. First eight are standard colors of ISO/IEC 6429 +"black", "red", "green", etc. Next eight are their bright version. + +@item COLORSPACE_XTERM_256COLOR +Palette with 256 colors. First 16 are from COLORSPACE_AIXTERM_16COLOR. Next +216 colors are 6x6x6 RGB cube. And last 24 colors form grayscale ramp. + +@item COLORSPACE_RGB_24BIT +Direct 24-bit RGB colors. +@end vtable + @node Guile Auto-loading @subsection Guile Auto-loading @cindex guile auto-loading diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi index 2e10930..d66cae6 100644 --- a/gdb/doc/python.texi +++ b/gdb/doc/python.texi @@ -225,6 +225,7 @@ optional arguments while skipping others. Example: * Finish Breakpoints in Python:: Setting Breakpoints on function return using Python. * Lazy Strings In Python:: Python representation of lazy strings. +* Colors In Python:: Python representation of colors. * Architectures In Python:: Python representation of architectures. * Registers In Python:: Python representation of registers. * Connections In Python:: Python representation of connections. @@ -5242,6 +5243,11 @@ except the special value -1 is returned for the setting of ``unlimited''. @item gdb.PARAM_ENUM The value is a string, which must be one of a collection string constants provided when the parameter is created. + +@findex PARAM_COLOR +@findex gdb.PARAM_COLOR +@item gdb.PARAM_COLOR +The value is @code{gdb.Color} instance. @end table @node Functions In Python @@ -7020,6 +7026,98 @@ resolve this to the lazy string's character type, use the type's writable. @end defvar +@node Colors In Python +@subsubsection Python representation of colors + +@cindex colors in python +@tindex gdb.Color +You can assign instance of @code{Color} to the @code{value} of +a @code{Parameter} instance created with @code{PARAM_COLOR}. + +@code{Color} may refer to an index from color palette or contain components +of a color from some colorspace. + +@defun Color.__init__ (@r{[}@var{value} @r{[}, @var{color-space}@r{]}@r{]}) + +@var{value} is @code{None} (meaning the terminal's default color), +an integer index of a color in palette, tuple with color components +or a string. String can be a hex RGB triplet in @samp{#RRGGBB} format +or one of the following color names: +@samp{none} (meaning the terminal's default color), @samp{black}, @samp{red}, +@samp{green}, @samp{yellow}, @samp{blue}, @samp{magenta}, @samp{cyan}, +or @samp{white}. + +@var{color-space} should be one of the @samp{COLORSPACE_} constants. This +argument tells @value{GDBN} which color space @var{value} belongs. +@end defun + +@defvar Color.is_none +This atribute is boolean. If its value is @code{True} then color is terminal's +default. +@end defvar + +@defvar Color.is_indexed +This atribute is boolean. If its value is @code{True} then color is indexed, +i.e. belongs to some palette. +@end defvar + +@defvar Color.is_direct +This atribute is boolean. If its value is @code{True} then this object +describes direct colour in the sense of ISO/IEC 8613-6. +@end defvar + +@defvar Color.index +This attribute exist if @code{is_indexed} is @code{True}. Its integer value is +index of a color in a palette. +@end defvar + +@defvar Color.components +This attribute exist if @code{is_direct} is @code{True}. Its value is tuple +with integer components of a color. +@end defvar + +@defun Color.escape_sequence (@var{self}, @var{is_foreground}) +Returns string to change terminal's color to this. + +If @var{is_foreground} is @code{True}, then the returned sequence will change +foreground color. Otherwise, the returned sequence will change background +color. +@end defun + +When color is initialized, its color space must be specified. The +available color spaces are represented by constants defined in the @code{gdb} +module: + +@table @code +@findex COLORSPACE_MONOCHROME +@findex gdb.COLORSPACE_MONOCHROME +@item gdb.COLORSPACE_MONOCHROME +Palette with only terminal's default color. + +@findex COLORSPACE_ANSI_8COLOR +@findex gdb.COLORSPACE_ANSI_8COLOR +@item gdb.COLORSPACE_ANSI_8COLOR +Palette with eight standard colors of ISO/IEC 6429 "black", "red", "green", etc. + +@findex COLORSPACE_AIXTERM_16COLOR +@findex gdb.COLORSPACE_AIXTERM_16COLOR +@item gdb.COLORSPACE_AIXTERM_16COLOR +Palette with 16 colors. First eight are standard colors of ISO/IEC 6429 +"black", "red", "green", etc. Next eight are their bright version. + +@findex COLORSPACE_XTERM_256COLOR +@findex gdb.COLORSPACE_XTERM_256COLOR +@item gdb.COLORSPACE_XTERM_256COLOR +Palette with 256 colors. First 16 are from COLORSPACE_AIXTERM_16COLOR. Next +216 colors are 6x6x6 RGB cube. And last 24 colors form grayscale ramp. + +@findex COLORSPACE_RGB_24BIT +@findex gdb.COLORSPACE_RGB_24BIT +@item gdb.COLORSPACE_RGB_24BIT +Direct 24-bit RGB colors. + +@end table + @node Architectures In Python @subsubsection Python representation of architectures @cindex Python architectures |