perf annotate browser: Add '<' and '>' keys for navigation
authorNamhyung Kim <namhyung@kernel.org>
Thu, 11 May 2023 06:27:25 +0000 (23:27 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 15 May 2023 20:52:13 +0000 (17:52 -0300)
hists__find_annotations() allows 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@kernel.org>
Acked-by: Ian Rogers <irogers@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20230511062725.514752-3-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-annotate.c
tools/perf/ui/browsers/annotate.c

index 63cdf6e..425a7e2 100644 (file)
@@ -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 @@ find_next:
                                        return;
                                /* fall through */
                        case K_RIGHT:
+                       case '>':
                                next = rb_next(nd);
                                break;
                        case K_LEFT:
+                       case '<':
                                next = rb_prev(nd);
                                break;
                        default:
index 12c3ce5..70bad42 100644 (file)
@@ -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 @@ show_sup_ins:
                        annotation__toggle_full_addr(notes, ms);
                        continue;
                case K_LEFT:
+               case '<':
+               case '>':
                case K_ESC:
                case 'q':
                case CTRL('c'):