This reverts commit
eca1f90cf47a2edc1a1cd22e12c6c0f3b900654e. Several
changes were requested, and it seemed simplest to revert it.
gdb/ChangeLog
2020-05-23 Tom Tromey <tom@tromey.com>
Revert commit
eca1f90c:
* NEWS: Remove entry for completion styling.
* completer.c (_rl_completion_prefix_display_length): Move
declaration later.
(gdb_fnprint): Revert.
(gdb_display_match_list_1): Likewise.
* cli/cli-style.c (completion_prefix_style)
(completion_difference_style, completion_suffix_style): Remove.
(_initialize_cli_style): Revert.
* cli/cli-style.h (completion_prefix_style)
(completion_difference_style, completion_suffix_style): Don't
declare.
gdb/doc/ChangeLog
2020-05-23 Tom Tromey <tom@tromey.com>
* gdb.texinfo (Output Styling): Don't mention completion styling.
(Editing): Don't mention readline completion styling.
gdb/testsuite/ChangeLog
2020-05-23 Tom Tromey <tom@tromey.com>
* gdb.base/style.exp: Remove completion styling test.
* lib/gdb-utils.exp (style): Remove completion styles.
+2020-05-23 Tom Tromey <tom@tromey.com>
+
+ Revert commit eca1f90c:
+ * NEWS: Remove entry for completion styling.
+ * completer.c (_rl_completion_prefix_display_length): Move
+ declaration later.
+ (gdb_fnprint): Revert.
+ (gdb_display_match_list_1): Likewise.
+ * cli/cli-style.c (completion_prefix_style)
+ (completion_difference_style, completion_suffix_style): Remove.
+ (_initialize_cli_style): Revert.
+ * cli/cli-style.h (completion_prefix_style)
+ (completion_difference_style, completion_suffix_style): Don't
+ declare.
+
2020-05-24 Pedro Alves <palves@redhat.com>
* symtab.c (completion_list_add_name): Return boolean indication
executable file; if 'warn', just display a warning; if 'off', don't
attempt to detect a mismatch.
-set style completion-prefix foreground COLOR
-set style completion-prefix background COLOR
-set style completion-prefix intensity VALUE
-set style completion-difference foreground COLOR
-set style completion-difference background COLOR
-set style completion-difference intensity VALUE
-set style completion-suffix foreground COLOR
-set style completion-suffix background COLOR
-set style completion-suffix intensity VALUE
- Control the styling of completions.
-
tui new-layout NAME WINDOW WEIGHT [WINDOW WEIGHT]...
Define a new TUI layout, specifying its name and the windows that
will be displayed.
/* 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),
&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\
/* 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;
#include <algorithm>
#include "linespec.h"
#include "cli/cli-decode.h"
-#include "cli/cli-style.h"
/* FIXME: This is needed because of lookup_cmd_1 (). We should be
calling a hook instead so we eliminate the CLI dependency. */
return width;
}
-extern int _rl_completion_prefix_display_length;
-
/* Print TO_PRINT, one matching completion.
PREFIX_BYTES is number of common prefix bytes.
Based on readline/complete.c:fnprint. */
gdb_fnprint (const char *to_print, int prefix_bytes,
const struct match_list_displayer *displayer)
{
- int common_prefix_len, printed_len, w;
+ int printed_len, w;
const char *s;
#if defined (HANDLE_MULTIBYTE)
mbstate_t ps;
memset (&ps, 0, sizeof (mbstate_t));
#endif
- printed_len = common_prefix_len = 0;
+ printed_len = 0;
/* Don't print only the ellipsis if the common prefix is one of the
possible completions */
if (to_print[prefix_bytes] == '\0')
prefix_bytes = 0;
- ui_file_style style = completion_prefix_style.style ();
- if (!style.is_default ())
- displayer->puts (displayer, style.to_ansi ().c_str ());
-
- if (prefix_bytes && _rl_completion_prefix_display_length > 0)
+ if (prefix_bytes)
{
char ellipsis;
displayer->putch (displayer, ellipsis);
printed_len = ELLIPSIS_LEN;
}
- else if (prefix_bytes && !style.is_default ())
- {
- common_prefix_len = prefix_bytes;
- prefix_bytes = 0;
- }
-
- /* There are 3 states: the initial state (#0), when we use the
- prefix style; the difference state (#1), which lasts a single
- character; and then the suffix state (#2). */
- int state = 0;
s = to_print + prefix_bytes;
while (*s)
printed_len++;
#endif
}
- if (common_prefix_len > 0 && (s - to_print) >= common_prefix_len)
- {
- if (!style.is_default ())
- displayer->puts (displayer, ui_file_style ().to_ansi ().c_str ());
-
- ++state;
- if (state == 1)
- {
- common_prefix_len = 1;
- style = completion_difference_style.style ();
- }
- else
- {
- common_prefix_len = 0;
- style = completion_suffix_style.style ();
- }
-
- if (!style.is_default ())
- displayer->puts (displayer, style.to_ansi ().c_str ());
- }
}
- if (!style.is_default ())
- displayer->puts (displayer, ui_file_style ().to_ansi ().c_str ());
-
return printed_len;
}
return displayer->width;
}
+extern int _rl_completion_prefix_display_length;
extern int _rl_print_completions_horizontally;
EXTERN_C int _rl_qsort_string_compare (const void *, const void *);
char *temp, *t;
int page_completions = displayer->height != INT_MAX && pagination_enabled;
- bool want_style = !completion_prefix_style.style ().is_default ();
-
/* Find the length of the prefix common to all items: length as displayed
characters (common_length) and as a byte index into the matches (sind) */
common_length = sind = 0;
- if (_rl_completion_prefix_display_length > 0 || want_style)
+ if (_rl_completion_prefix_display_length > 0)
{
t = gdb_printable_part (matches[0]);
temp = strrchr (t, '/');
common_length = temp ? gdb_fnwidth (temp) : gdb_fnwidth (t);
sind = temp ? strlen (temp) : strlen (t);
- if (_rl_completion_prefix_display_length > 0
- && common_length > _rl_completion_prefix_display_length
- && common_length > ELLIPSIS_LEN)
+ if (common_length > _rl_completion_prefix_display_length && common_length > ELLIPSIS_LEN)
max -= common_length - ELLIPSIS_LEN;
- else if (!want_style || common_length > max || sind > max)
+ else
common_length = sind = 0;
}
+2020-05-23 Tom Tromey <tom@tromey.com>
+
+ * gdb.texinfo (Output Styling): Don't mention completion styling.
+ (Editing): Don't mention readline completion styling.
+
2020-05-23 Tom Tromey <tom@tromey.com>
* gdb.texinfo (Output Styling): Mention completion styling.
next line relative to the current line from the history for editing.
Any argument is ignored.
-Note that @value{GDBN} ignores the Readline
-@code{colored-completion-prefix} setting. Instead, this is handled
-using the style settings (@xref{Output Styling}).
-
@node Command History
@section Command History
@cindex command history
Control the styling of the active TUI border; that is, the TUI window
that has the focus.
-@item completion-prefix
-Control the styling of the completion prefix. When completing, the
-common prefix of completion candidates will be shown with this style.
-By default, this style's intensity is dim.
-
-@item completion-difference
-Control the styling of the completion difference character. When
-completing, the character that differs between different completions
-will be shown using this style. By default, this style's foreground
-color is magenta.
-
-@item completion-suffix
-Control the styling of the completion suffix. When completing, the
-suffix of completion candidates will be shown with this style. By
-default, this style is the same as the default styling.
-
@end table
@node Numbers
+2020-05-23 Tom Tromey <tom@tromey.com>
+
+ * gdb.base/style.exp: Remove completion styling test.
+ * lib/gdb-utils.exp (style): Remove completion styles.
+
2020-05-23 Tom Tromey <tom@tromey.com>
* gdb.base/style.exp: Add completion styling test.
"warning: [style .*? file] is not a directory\\..*"
gdb_test "show data-directory" \
"GDB's data directory is \"[style .*? file]\"\\..*"
-
- if {[readline_is_used]} {
- set test "complete print VALUE_"
- # ESC-? is the readline binding to show all completions.
- send_gdb "print VALUE_\x1b?"
- set pfx [style VALUE_ completion-prefix]
- set d1 [style O completion-difference]
- set d2 [style T completion-difference]
- gdb_test_multiple "" $test {
- -re "${pfx}${d1}NE\[ \t\]+${pfx}${d2}WO.*$gdb_prompt print VALUE_$" {
- gdb_test "ONE" " = .*"
- }
- }
- }
}
variable { set style 36 }
address { set style 34 }
metadata { set style 2 }
- completion-prefix { set style 2 }
- completion-difference { set style 35 }
}
return "\033\\\[${style}m${str}\033\\\[m"
}