Re: [PATCH 3/3] perf annotate browser: Add '<' and '>' keys for navigation

From: Ian Rogers
Date: Mon May 15 2023 - 13:11:39 EST


On Wed, May 10, 2023 at 11:27 PM Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
>
> The hists__find_annotations() allow to move to next or previous symbols
> for annotation using the arrow keys. But TUI annotate_browser__run()
> uses the RIGHT key as ENTER to handle jump/call instructions. That
> makes the navigation to the next function impossible.
>
> I'd like to change it back to move the next symbol but I'm afraid if
> some users get confused. So I added a new pair of keys to handle that.
>
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>

Acked-by: Ian Rogers <irogers@xxxxxxxxxx>

Thanks,
Ian

> ---
> tools/perf/builtin-annotate.c | 4 +++-
> tools/perf/ui/browsers/annotate.c | 4 +++-
> 2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
> index 63cdf6ea6f6d..425a7e2fd6fb 100644
> --- a/tools/perf/builtin-annotate.c
> +++ b/tools/perf/builtin-annotate.c
> @@ -342,7 +342,7 @@ static void hists__find_annotations(struct hists *hists,
> notes = symbol__annotation(he->ms.sym);
> if (notes->src == NULL) {
> find_next:
> - if (key == K_LEFT)
> + if (key == K_LEFT || key == '<')
> nd = rb_prev(nd);
> else
> nd = rb_next(nd);
> @@ -378,9 +378,11 @@ static void hists__find_annotations(struct hists *hists,
> return;
> /* fall through */
> case K_RIGHT:
> + case '>':
> next = rb_next(nd);
> break;
> case K_LEFT:
> + case '<':
> next = rb_prev(nd);
> break;
> default:
> diff --git a/tools/perf/ui/browsers/annotate.c b/tools/perf/ui/browsers/annotate.c
> index 12c3ce530e42..70bad42b807b 100644
> --- a/tools/perf/ui/browsers/annotate.c
> +++ b/tools/perf/ui/browsers/annotate.c
> @@ -781,9 +781,9 @@ static int annotate_browser__run(struct annotate_browser *browser,
> ui_browser__help_window(&browser->b,
> "UP/DOWN/PGUP\n"
> "PGDN/SPACE Navigate\n"
> + "</> Move to prev/next symbol\n"
> "q/ESC/CTRL+C Exit\n\n"
> "ENTER Go to target\n"
> - "ESC Exit\n"
> "H Go to hottest instruction\n"
> "TAB/shift+TAB Cycle thru hottest instructions\n"
> "j Toggle showing jump to target arrows\n"
> @@ -913,6 +913,8 @@ static int annotate_browser__run(struct annotate_browser *browser,
> annotation__toggle_full_addr(notes, ms);
> continue;
> case K_LEFT:
> + case '<':
> + case '>':
> case K_ESC:
> case 'q':
> case CTRL('c'):
> --
> 2.40.1.521.gf1e218fcd8-goog
>