diff options
author | Tom Tromey <tom@tromey.com> | 2020-05-23 09:23:09 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2020-05-23 14:53:33 -0600 |
commit | eca1f90cf47a2edc1a1cd22e12c6c0f3b900654e (patch) | |
tree | 78a5fffcd39bab954df305868e98f774c749f01e /gdb/cli | |
parent | 51e2cfa2dc2dd600727c91701c747c28fa67a5df (diff) | |
download | gdb-eca1f90cf47a2edc1a1cd22e12c6c0f3b900654e.zip gdb-eca1f90cf47a2edc1a1cd22e12c6c0f3b900654e.tar.gz gdb-eca1f90cf47a2edc1a1cd22e12c6c0f3b900654e.tar.bz2 |
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.
Diffstat (limited to 'gdb/cli')
-rw-r--r-- | gdb/cli/cli-style.c | 42 | ||||
-rw-r--r-- | gdb/cli/cli-style.h | 9 |
2 files changed, 51 insertions, 0 deletions
diff --git a/gdb/cli/cli-style.c b/gdb/cli/cli-style.c index a0c3cc5..b16b800 100644 --- a/gdb/cli/cli-style.c +++ b/gdb/cli/cli-style.c @@ -98,6 +98,21 @@ cli_style_option metadata_style ("metadata", ui_file_style::DIM); /* See cli-style.h. */ +cli_style_option completion_prefix_style ("completion-prefix", + ui_file_style::DIM); + +/* See cli-style.h. */ + +cli_style_option completion_difference_style ("completion-difference", + ui_file_style::MAGENTA); + +/* See cli-style.h. */ + +cli_style_option completion_suffix_style ("completion-suffix", + ui_file_style::NONE); + +/* See cli-style.h. */ + cli_style_option::cli_style_option (const char *name, ui_file_style::basic_color fg) : changed (name), @@ -366,6 +381,33 @@ your data, for example \"<unavailable>\""), &style_set_list, &style_show_list, false); + completion_prefix_style.add_setshow_commands (no_class, _("\ +Completion prefix display styling.\n\ +Configure completion prefix colors and display intensity\n\ +The \"completion-prefix\" style is used when GDB displays the shared\n\ +prefix common to the possible completions."), + &style_set_list, + &style_show_list, + false); + + completion_difference_style.add_setshow_commands (no_class, _("\ +Completion difference display styling.\n\ +Configure completion difference colors and display intensity\n\ +The \"completion-difference\" style is used when GDB displays the\n\ +character that differs between the possible completions."), + &style_set_list, + &style_show_list, + false); + + completion_suffix_style.add_setshow_commands (no_class, _("\ +Completion suffix display styling.\n\ +Configure completion suffix colors and display intensity\n\ +The \"completion-suffix\" style is used when GDB displays the suffix\n\ +of the possible completions."), + &style_set_list, + &style_show_list, + false); + tui_border_style.add_setshow_commands (no_class, _("\ TUI border display styling.\n\ Configure TUI border colors\n\ diff --git a/gdb/cli/cli-style.h b/gdb/cli/cli-style.h index 6422e52..c2e0df1 100644 --- a/gdb/cli/cli-style.h +++ b/gdb/cli/cli-style.h @@ -124,6 +124,15 @@ extern cli_style_option tui_border_style; /* The border style of a TUI window that does have the focus. */ extern cli_style_option tui_active_border_style; +/* The style for the common prefix of completions. */ +extern cli_style_option completion_prefix_style; + +/* The style for the difference character of completions. */ +extern cli_style_option completion_difference_style; + +/* The style for the suffix of completions. */ +extern cli_style_option completion_suffix_style; + /* True if source styling is enabled. */ extern bool source_styling; |