From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by sourceware.org (Postfix) with ESMTP id ED2593858D35 for ; Mon, 15 Jun 2020 19:30:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org ED2593858D35 Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-267-q1Db-sqVPmaQclsHJfzG7w-1; Mon, 15 Jun 2020 15:30:03 -0400 X-MC-Unique: q1Db-sqVPmaQclsHJfzG7w-1 Received: by mail-wr1-f69.google.com with SMTP id z10so7462937wrs.2 for ; Mon, 15 Jun 2020 12:30:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=0AZddvLPyzVty2wNJCgP6UkQ9Efq1xxpr3Hokp6A//g=; b=uKR3XREAmGBFWkKrSuI8XEmz9zbZUkaxvJVUNFP+3sV7WsHpCZiZVI69uJWTmHvqft 0+kUiMz9dJYIRKZs1cWF4Ctl8VeeLhnWS6gXiioTBIxX6HkXOuRIvRTK+smmhPvBNtA4 7wwuOBsFQ/sFDLBa0IGj7Cp0hZsbNmTqYo0RJvB6MEiI6p9jVeCoo17G8pPARosenAJc wHQBIgjBdW6mfrbN/Hxx4oa8yi9OTzzJRxW2f10Lkn5QV+zjN0LumEmrdVxGHCbFOCFt hJsyLnQMI9PB1ylyFLwxrxnE3dMrwrrG6Y0KHPOn7wF7pMHH/+7BsyAc7YQgeZcTWND+ GYEA== X-Gm-Message-State: AOAM531bNiYZt4f/kza1aSEazCGt2M1juYZ6pv29SRFG2Mbzfyh1jAAD FOQyAl/viPWREZdfjUNX1riQ4sUdACD56puNxOT0ZHa12ONQshsolizq53ZR0oZUMwF1UfCDK76 1SB5wjCORJJakqZ870BOqAg== X-Received: by 2002:adf:f251:: with SMTP id b17mr29013630wrp.289.1592249402046; Mon, 15 Jun 2020 12:30:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzJAAp8pu3q8pjuX1pfLsMXIaQWEM37gVuojmcfDxYxw/uwgnMaziY+BIBk18kZmhOmybdg+Q== X-Received: by 2002:adf:f251:: with SMTP id b17mr29013608wrp.289.1592249401757; Mon, 15 Jun 2020 12:30:01 -0700 (PDT) Received: from ?IPv6:2001:8a0:f922:c400:56ee:75ff:fe8d:232b? ([2001:8a0:f922:c400:56ee:75ff:fe8d:232b]) by smtp.gmail.com with ESMTPSA id f9sm24939727wre.65.2020.06.15.12.30.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Jun 2020 12:30:01 -0700 (PDT) Subject: Re: TUI enhancement suggestion. To: Phi Debian , Hannes Domani References: <38b5d874-cdf2-50e7-dc76-aed3fee20334@redhat.com> <3011c306-2c6c-228f-07eb-95d3ff560942@redhat.com> <314644177.1902979.1592236099059@mail.yahoo.com> Cc: "gdb-patches@sourceware.org" From: Pedro Alves Message-ID: <07772538-b41f-49e2-43c9-c6cb8831050b@redhat.com> Date: Mon, 15 Jun 2020 20:30:00 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------A5D03AABEE8808D96036D5D1" X-Spam-Status: No, score=-8.7 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org 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: , X-List-Received-Date: Mon, 15 Jun 2020 19:30:13 -0000 This is a multi-part message in MIME format. --------------A5D03AABEE8808D96036D5D1 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit On 6/15/20 5:56 PM, Phi Debian via Gdb-patches wrote: > Hi Pedro and all, > > I am really sorry but I lost my bandwith, I am starting a new job tomorow > leaving little room for investigation etc. > > Regarding the point line, used to be inverse video on monochrome, i thought > it was kind of bizare with highlighted text because we don't have a uniform > background color (before patch) then an attempt was made to have a uniform > background color but then it monopolized one color that can't be used with > foreground. The underline suffer the same problem as the inverse video, I.e > its color change as we highlight text. That's why the little demo only > underlined the front part of the line, that could be be reverse video too > but just the whitespace on the front of the line are by definition > monochrome. I reckon my demo is bugged as you noticed, when disabling > syntax highlight then my underline goes all the way through the point line. > > May be an idea could be set the whole point line with un-highlited, > monochrome, then with the new range thing use reverse or underline for the > sub part only Yeah. I actually saw some screenshots of IDEs disabling syntax highlighting in the current highlighted source line the other day, and thought that looks nice too, and probably a better solution that the underline idea. E.g., looking around I found this: https://forum.unity.com/proxy.php?image=http%3A%2F%2Fpuu.sh%2FpL42e%2F11645e7230.gif&hash=fedb45091f23bfa99b53af562f56ff0c Try the attached patch, and do "set tui current-line-highlight reverse-mono". "set tui current-line-highlight reverse-styled" is the same as current GDB: https://i.imgur.com/UwX6bfz.png "set tui current-line-highlight reverse-mono" gives you this: https://i.imgur.com/T1DeRum.png Thanks, Pedro Alves --------------A5D03AABEE8808D96036D5D1 Content-Type: text/x-patch; name="0001-set-tui-current-line-highlight-mode-reverse-styled-r.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-set-tui-current-line-highlight-mode-reverse-styled-r.pa"; filename*1="tch" >From 5524ac5733cc95c652c5db1aff6dde362ae08b1b Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Mon, 15 Jun 2020 19:35:10 +0100 Subject: [PATCH] set tui current-line-highlight-mode reverse-styled|reverse-mono --- gdb/tui/tui-io.c | 25 +++++++++++++++++-------- gdb/tui/tui-win.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ gdb/tui/tui-win.h | 8 ++++++++ 3 files changed, 80 insertions(+), 8 deletions(-) diff --git a/gdb/tui/tui-io.c b/gdb/tui/tui-io.c index e7a8ac77bce..4a012ca0eea 100644 --- a/gdb/tui/tui-io.c +++ b/gdb/tui/tui-io.c @@ -365,6 +365,10 @@ apply_ansi_escape (WINDOW *w, const char *buf) if (reverse_mode_p) { + current_line_highlight_mode mode = get_current_line_highlight_mode (); + if (mode == current_line_highlight_mode::reverse_mono) + return n_read; + /* We want to reverse _only_ the default foreground/background colors. If the foreground color is not the default (because the text was styled), we want to leave it as is. If e.g., @@ -407,19 +411,24 @@ tui_set_reverse_mode (WINDOW *w, bool reverse) ui_file_style style = last_style; reverse_mode_p = reverse; - style.set_reverse (reverse); if (reverse) { - reverse_save_bg = style.get_background (); - reverse_save_fg = style.get_foreground (); - } - else - { - style.set_bg (reverse_save_bg); - style.set_fg (reverse_save_fg); + current_line_highlight_mode mode = get_current_line_highlight_mode (); + switch (mode) + { + case current_line_highlight_mode::reverse_styled: + reverse_save_bg = style.get_background (); + reverse_save_fg = style.get_foreground (); + break; + case current_line_highlight_mode::reverse_mono: + style = {}; + break; + } } + style.set_reverse (reverse); + tui_apply_style (w, style); } diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c index a78837fe689..81eeb090888 100644 --- a/gdb/tui/tui-win.c +++ b/gdb/tui/tui-win.c @@ -108,6 +108,16 @@ static const char *const tui_border_mode_enums[] = { NULL }; +static const char *highlight_mode_reverse_styled = "reverse-styled"; +static const char *highlight_mode_reverse_mono = "reverse-mono"; + +/* Possible values for tui-current-line-highlight variable. */ +static const char *const tui_current_line_highlight_mode_enums[] = { + highlight_mode_reverse_styled, + highlight_mode_reverse_mono, + NULL +}; + struct tui_translate { const char *name; @@ -218,6 +228,39 @@ show_tui_border_kind (struct ui_file *file, value); } +/* Tui configuration variables controlled with set/show command. */ +static const char *tui_current_line_highlight_mode + = highlight_mode_reverse_styled; + +current_line_highlight_mode +get_current_line_highlight_mode () +{ + for (int i = 0; i < ARRAY_SIZE (tui_current_line_highlight_mode_enums); i++) + if (tui_current_line_highlight_mode + == tui_current_line_highlight_mode_enums[i]) + return (current_line_highlight_mode) i; + + gdb_assert_not_reached ("unknown mode"); +} + +static void +show_tui_current_line_highlight_mode (struct ui_file *file, + int from_tty, + struct cmd_list_element *c, + const char *value) +{ + fprintf_filtered (file, _("\ +The mode to use for the current source highlight is \"%s\".\n"), + value); +} + +static void +set_tui_current_line_highlight_mode (const char *ignore, int from_tty, + struct cmd_list_element *c) +{ + if (TUI_SRC_WIN != nullptr) + TUI_SRC_WIN->refill (); +} /* Tui internal configuration variables. These variables are updated by tui_update_variables to reflect the tui configuration @@ -1120,6 +1163,18 @@ the line numbers and uses less horizontal space."), tui_set_compact_source, tui_show_compact_source, &tui_setlist, &tui_showlist); + add_setshow_enum_cmd ("current-line-highlight-mode", no_class, + tui_current_line_highlight_mode_enums, + &tui_current_line_highlight_mode, _("\ +Set the attribute mode to use for the active TUI window border."), _("\ +Show the attribute mode to use for the active TUI window border."), _("\ +This variable controls the attributes to use for the active window border:\n\ + reverse-styled use reverse video for the background, and style the text\n\ + reverse-mono use reverse video for the background, don't style the text"), + set_tui_current_line_highlight_mode, + show_tui_current_line_highlight_mode, + &tui_setlist, &tui_showlist); + tui_border_style.changed.attach (tui_rehighlight_all); tui_active_border_style.changed.attach (tui_rehighlight_all); } diff --git a/gdb/tui/tui-win.h b/gdb/tui/tui-win.h index e3791846307..f6a39bbf437 100644 --- a/gdb/tui/tui-win.h +++ b/gdb/tui/tui-win.h @@ -57,4 +57,12 @@ struct cmd_list_element **tui_get_cmd_list (void); /* Whether compact source display should be used. */ extern bool compact_source; +enum current_line_highlight_mode +{ + reverse_styled, + reverse_mono, +}; + +current_line_highlight_mode get_current_line_highlight_mode (); + #endif /* TUI_TUI_WIN_H */ base-commit: 669203174311c5be76744a879563c697cd479853 -- 2.14.5 --------------A5D03AABEE8808D96036D5D1--