From: Andrew Burgess Date: Mon, 24 Jan 2022 17:23:20 +0000 (+0000) Subject: gdb: move some commands into the tui namespace X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=51c2a9e24396f69c1e7eba6cef042fad7c07880e;p=binutils-gdb.git gdb: move some commands into the tui namespace There are a lot of tui related commands that live in the top-level command name space, e.g. layout, focus, refresh, winheight. Having them at the top level means less typing for the user, which is good, but, I think, makes command discovery harder. In this commit, I propose moving all of the above mentioned commands into the tui namespace, so 'layout' becomes 'tui layout', etc. But I will then add aliases so that the old commands will still work, e.g. I'll make 'layout' an alias for 'tui layout'. The benefit I see in this work is that tui related commands can be more easily discovered by typing 'tui ' and then tab-completing. Also the "official" command is now a tui-sub-command, this is visible in, for example, the help output, e.g.: (gdb) help layout tui layout, layout Change the layout of windows. Usage: tui layout prev | next | LAYOUT-NAME List of tui layout subcommands: tui layout asm -- Apply the "asm" layout. tui layout next -- Apply the next TUI layout. tui layout prev -- Apply the previous TUI layout. tui layout regs -- Apply the TUI register layout. tui layout split -- Apply the "split" layout. tui layout src -- Apply the "src" layout. Which I think is a good thing, it makes it clearer that this is a tui command. I've added a NEWS entry and updated the docs to mention the new and old command names, with the new name being mentioned first. --- diff --git a/gdb/NEWS b/gdb/NEWS index 0fbc4537303..10090aff0b4 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -140,6 +140,14 @@ show ada source-charset values for this follow the values that can be passed to the GNAT compiler via the '-gnati' option. The default is ISO-8859-1. +tui layout +tui focus +tui refresh +tui window height + These are the new names for the old 'layout', 'focus', 'refresh', + and 'winheight' tui commands respectively. The old names still + exist as aliases to these new commands. + * Changed commands print @@ -171,6 +179,13 @@ info win This command now includes information about the width of the tui windows in its output. +layout +focus +refresh +winheight + These commands are now aliases for the 'tui layout', 'tui focus', + 'tui refresh', and 'tui window height' commands respectively. + * GDB's Ada parser now supports an extension for specifying the exact byte contents of a floating-point literal. This can be useful for setting floating-point registers to a precise value without loss of diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index d21fd0d3f0a..4aec2e81e9a 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -29005,8 +29005,10 @@ status and command window being beneath these, filling the entire width of the terminal. Because they have weight 2, the source and assembly windows will be twice the height of the command window. -@item layout @var{name} +@kindex tui layout @kindex layout +@item tui layout @var{name} +@itemx layout @var{name} Changes which TUI windows are displayed. The @var{name} parameter controls which layout is shown. It can be either one of the built-in layout names, or the name of a layout defined by the user using @@ -29036,8 +29038,9 @@ windows. When in @code{asm} or @code{split} layout display the register, assembler, and command windows. @end table -@item focus @var{name} @kindex focus +@item tui focus @var{name} +@itemx focus @var{name} Changes which TUI window is currently active for scrolling. The @var{name} parameter can be any of the following: @@ -29061,8 +29064,10 @@ Make the register window active for scrolling. Make the command window active for scrolling. @end table -@item refresh +@kindex tui refresh @kindex refresh +@item tui refresh +@itemx refresh Refresh the screen. This is similar to typing @kbd{C-L}. @item tui reg @var{group} @@ -29098,9 +29103,12 @@ Display all registers. @kindex update Update the source window and the current execution point. -@item winheight @var{name} +@var{count} -@itemx winheight @var{name} -@var{count} +@kindex tui window height @kindex winheight +@item tui window height @var{name} +@var{count} +@itemx tui window height @var{name} -@var{count} +@itemx winheight @var{name} +@var{count} +@itemx winheight @var{name} -@var{count} Change the height of the window @var{name} by @var{count} lines. Positive counts increase the height, while negative counts decrease it. The @var{name} parameter can be the name of any currently visible diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c index 6195ca18a32..04e5ac24ef9 100644 --- a/gdb/tui/tui-layout.c +++ b/gdb/tui/tui-layout.c @@ -839,6 +839,14 @@ destroy_layout (struct cmd_list_element *self, void *context) static struct cmd_list_element *layout_list; +/* Called to implement 'tui layout'. */ + +static void +tui_layout_command (const char *args, int from_tty) +{ + help_list (layout_list, "tui layout ", all_commands, gdb_stdout); +} + /* Add a "layout" command with name NAME that switches to LAYOUT. */ static struct cmd_list_element * @@ -1017,10 +1025,12 @@ void _initialize_tui_layout (); void _initialize_tui_layout () { - add_basic_prefix_cmd ("layout", class_tui, _("\ + struct cmd_list_element *layout_cmd + = add_prefix_cmd ("layout", class_tui, tui_layout_command, _("\ Change the layout of windows.\n\ -Usage: layout prev | next | LAYOUT-NAME"), - &layout_list, 0, &cmdlist); +Usage: tui layout prev | next | LAYOUT-NAME"), + &layout_list, 0, tui_get_cmd_list ()); + add_com_alias ("layout", layout_cmd, class_tui, 0); add_cmd ("next", class_tui, tui_next_layout_command, _("Apply the next TUI layout."), diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c index b95d72dc33a..13718611494 100644 --- a/gdb/tui/tui-win.c +++ b/gdb/tui/tui-win.c @@ -977,6 +977,18 @@ parse_scrolling_args (const char *arg, } } +/* The list of 'tui window' sub-commands. */ + +static cmd_list_element *tui_window_cmds = nullptr; + +/* Called to implement 'tui window'. */ + +static void +tui_window_command (const char *args, int from_tty) +{ + help_list (tui_window_cmds, "tui window ", all_commands, gdb_stdout); +} + /* Function to initialize gdb commands, for tui window manipulation. */ @@ -995,8 +1007,11 @@ _initialize_tui_win () &tui_setlist, &tui_showlist, &setlist, &showlist); - add_com ("refresh", class_tui, tui_refresh_all_command, - _("Refresh the terminal display.")); + cmd_list_element *refresh_cmd + = add_cmd ("refresh", class_tui, tui_refresh_all_command, + _("Refresh the terminal display."), + tui_get_cmd_list ()); + add_com_alias ("refresh", refresh_cmd, class_tui, 0); cmd_list_element *tabset_cmd = add_com ("tabset", class_tui, tui_set_tab_width_command, _("\ @@ -1004,21 +1019,30 @@ Set the width (in characters) of tab stops.\n\ Usage: tabset N")); deprecate_cmd (tabset_cmd, "set tui tab-width"); + /* Setup the 'tui window' list of command. */ + add_prefix_cmd ("window", class_tui, tui_window_command, + _("Text User Interface window commands."), + &tui_window_cmds, 1, tui_get_cmd_list ()); + cmd_list_element *winheight_cmd - = add_com ("winheight", class_tui, tui_set_win_height_command, _("\ + = add_cmd ("height", class_tui, tui_set_win_height_command, _("\ Set or modify the height of a specified window.\n\ -Usage: winheight WINDOW-NAME [+ | -] NUM-LINES\n\ -Use \"info win\" to see the names of the windows currently being displayed.")); +Usage: tui window height WINDOW-NAME [+ | -] NUM-LINES\n\ +Use \"info win\" to see the names of the windows currently being displayed."), + &tui_window_cmds); + add_com_alias ("winheight", winheight_cmd, class_tui, 0); add_com_alias ("wh", winheight_cmd, class_tui, 0); set_cmd_completer (winheight_cmd, winheight_completer); add_info ("win", tui_all_windows_info, _("List of all displayed windows.\n\ Usage: info win")); cmd_list_element *focus_cmd - = add_com ("focus", class_tui, tui_set_focus_command, _("\ + = add_cmd ("focus", class_tui, tui_set_focus_command, _("\ Set focus to named window or next/prev window.\n\ -Usage: focus [WINDOW-NAME | next | prev]\n\ -Use \"info win\" to see the names of the windows currently being displayed.")); +Usage: tui focus [WINDOW-NAME | next | prev]\n\ +Use \"info win\" to see the names of the windows currently being displayed."), + tui_get_cmd_list ()); + add_com_alias ("focus", focus_cmd, class_tui, 0); add_com_alias ("fs", focus_cmd, class_tui, 0); set_cmd_completer (focus_cmd, focus_completer); add_com ("+", class_tui, tui_scroll_forward_command, _("\