public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] gdb: move some commands into the tui namespace
@ 2022-04-03 14:42 Andrew Burgess
0 siblings, 0 replies; only message in thread
From: Andrew Burgess @ 2022-04-03 14:42 UTC (permalink / raw)
To: gdb-cvs
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=51c2a9e24396f69c1e7eba6cef042fad7c07880e
commit 51c2a9e24396f69c1e7eba6cef042fad7c07880e
Author: Andrew Burgess <aburgess@redhat.com>
Date: Mon Jan 24 17:23:20 2022 +0000
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:
---
gdb/NEWS | 15 +++++++++++++++
gdb/doc/gdb.texinfo | 18 +++++++++++++-----
gdb/tui/tui-layout.c | 16 +++++++++++++---
gdb/tui/tui-win.c | 40 ++++++++++++++++++++++++++++++++--------
4 files changed, 73 insertions(+), 16 deletions(-)
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, _("\
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-04-03 14:42 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-03 14:42 [binutils-gdb] gdb: move some commands into the tui namespace Andrew Burgess
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).