From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id MHr7GJ7X/2FJBwAAWB0awg (envelope-from ) for ; Sun, 06 Feb 2022 09:13:50 -0500 Received: by simark.ca (Postfix, from userid 112) id 645911F3C6; Sun, 6 Feb 2022 09:13:50 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RDNS_DYNAMIC,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 7353F1EE1A for ; Sun, 6 Feb 2022 09:13:49 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 18DD0385841C for ; Sun, 6 Feb 2022 14:13:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 18DD0385841C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1644156829; bh=+Ie2VD7WH8BBLaWg4XWM8bvbz9ye3N/r2A4uti2/lyg=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=Vn2M0JXK5aPye5ZF8kLYMKdJUXKHPcIk0lAGhhQ9ByBjunQP3DP8vS4gGv29+CC67 g2mtlSP9pi6k4fYJjMoRKfAa1g4Q3seoWSMiWl7nHhX5sYMzfobtZF7PvQ5JvXUbFc ELPvn4ie32o6Q4sJdvGVjH2wUSKDyhhkvkhYBijQ= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 549CF3858D1E for ; Sun, 6 Feb 2022 14:13:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 549CF3858D1E Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-516-5173iebiOa6GeazS_65qPA-1; Sun, 06 Feb 2022 09:13:02 -0500 X-MC-Unique: 5173iebiOa6GeazS_65qPA-1 Received: by mail-ed1-f71.google.com with SMTP id b26-20020a056402139a00b004094fddbbdfso6140684edv.12 for ; Sun, 06 Feb 2022 06:13:01 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+Ie2VD7WH8BBLaWg4XWM8bvbz9ye3N/r2A4uti2/lyg=; b=Ty0xzvsF2+17r7tm2d46cG3IhUI07rLgb8sf3Go+NaWx9rPSTqzYV888XrkIwBoNIs vGnJgB6fICumocBGNnrg+kspayWbjtOr6+REgF8uvAPGX+4eFor1mJSLh0y9O8DUiSvv 2mDW+f3jW6GcgPVUWSW896Jt1TCmi1ogBBuS79I88nPcC0EgWE+6271/bKeB5JYiDlYS i3eq189TYI9HEJqVHSeSMCFoTvHjsiEJD4lyOTBhsjG1VC/SusbgHqV1SYV01KmuvaYH Y4/92oOJvyo84RxN0/66OEWCsU78A/sXHhRCY7EKgrvPL4M+abi5c1Ey0WvGREfhN/kK L7mw== X-Gm-Message-State: AOAM532BDT0JkL+500uXsuRrMsL6TzfcUTaumkyM2DOO+4H+Sjw6JK9p sJjZBRGiskzseCFXtL4YQEKULwuEGUCJe88F6jbh9y0sVWQhL0eiAt9wIF3KPh89n4Xeo5+F3Js Go/amUrS5JvdVOpHBH9Z8p9aPmhXIVKf+9HfKS4sEVHNmZadO7y4b+2hgZcsubpbSTUX72BoFoA == X-Received: by 2002:a17:906:4999:: with SMTP id p25mr1704713eju.605.1644156780357; Sun, 06 Feb 2022 06:13:00 -0800 (PST) X-Google-Smtp-Source: ABdhPJz8cnEgkOnepEA0nJm/zlHfkBPdFRRSZWfrmqlmCj/6L3ke2fw+AzBcrdbo/XvQBnd/QcYKjA== X-Received: by 2002:a17:906:4999:: with SMTP id p25mr1704691eju.605.1644156780022; Sun, 06 Feb 2022 06:13:00 -0800 (PST) Received: from localhost (92.40.178.36.threembb.co.uk. [92.40.178.36]) by smtp.gmail.com with ESMTPSA id r22sm2631563ejo.48.2022.02.06.06.12.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Feb 2022 06:12:59 -0800 (PST) To: gdb-patches@sourceware.org Subject: [PATCHv2 01/15] gdb: move some commands into the tui namespace Date: Sun, 6 Feb 2022 14:12:39 +0000 Message-Id: <09b6012944b9fbfc03f48131e57030d0c4f029ee.1644156219.git.aburgess@redhat.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: References: MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Andrew Burgess via Gdb-patches Reply-To: Andrew Burgess Cc: Andrew Burgess Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb-patches" 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. --- 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 8da68c88def..f97f643b6ee 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -81,6 +81,14 @@ maint show gnu-source-highlight enabled styling to a particular source file, then the Python Pygments library will be used instead. +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 maint packet @@ -106,6 +114,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. + * Python API ** New function gdb.add_history(), which takes a gdb.Value object diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 2073d929099..4d91741bcbd 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -28866,8 +28866,10 @@ 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 @@ -28897,8 +28899,9 @@ 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: @@ -28922,8 +28925,10 @@ 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} @@ -28959,9 +28964,12 @@ @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 cef9190c3e1..f8388e3fca5 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 fd6ca59a728..ba6aca3d078 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, _("\ -- 2.25.4