Add completion styling
authorTom Tromey <tom@tromey.com>
Sat, 23 May 2020 15:23:09 +0000 (09:23 -0600)
committerTom Tromey <tom@tromey.com>
Sat, 23 May 2020 20:53:33 +0000 (14:53 -0600)
commiteca1f90cf47a2edc1a1cd22e12c6c0f3b900654e
tree78a5fffcd39bab954df305868e98f774c749f01e
parent51e2cfa2dc2dd600727c91701c747c28fa67a5df
Add completion styling

Readline has a styling feature for completion -- if it is enabled, the
common prefix of completions will be displayed in a different style.
This doesn't work in gdb, because gdb implements its own completer.

This patch implements the feature.  However, it doesn't directly use
the Readline feature, because gdb can do a bit better: it can let the
user control the styling using the existing mechanisms.

This version incorporates an Emacs idea, via Eli: style the prefix,
the "difference character", and the suffix differently.

gdb/ChangeLog
2020-05-23  Tom Tromey  <tom@tromey.com>

* NEWS: Add entry for completion styling.
* completer.c (_rl_completion_prefix_display_length): Move
declaration earlier.
(gdb_fnprint): Use completion_style.
(gdb_display_match_list_1): Likewise.
* cli/cli-style.c (completion_prefix_style)
(completion_difference_style, completion_suffix_style): New
globals.
(_initialize_cli_style): Register new globals.
* cli/cli-style.h (completion_prefix_style)
(completion_difference_style, completion_suffix_style): Declare.

gdb/doc/ChangeLog
2020-05-23  Tom Tromey  <tom@tromey.com>

* gdb.texinfo (Output Styling): Mention completion styling.
(Editing): Mention readline completion styling.

gdb/testsuite/ChangeLog
2020-05-23  Tom Tromey  <tom@tromey.com>

* gdb.base/style.exp: Add completion styling test.
* lib/gdb-utils.exp (style): Add completion styles.
gdb/ChangeLog
gdb/NEWS
gdb/cli/cli-style.c
gdb/cli/cli-style.h
gdb/completer.c
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/style.exp
gdb/testsuite/lib/gdb-utils.exp