[tip:perf/core] perf tools: Auto-complete for events with ':'

From: tip-bot for Jin Yao
Date: Thu Dec 28 2017 - 10:39:25 EST


Commit-ID: 5d4fd9c8b83b36d34521b3af361a5726899045bf
Gitweb: https://git.kernel.org/tip/5d4fd9c8b83b36d34521b3af361a5726899045bf
Author: Jin Yao <yao.jin@xxxxxxxxxxxxxxx>
AuthorDate: Sat, 23 Dec 2017 04:15:58 +0800
Committer: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
CommitDate: Wed, 27 Dec 2017 12:16:00 -0300

perf tools: Auto-complete for events with ':'

It's a follow up patch for a previous patch "perf tool: Return all
events as auto-completions after comma".

With this patch, auto-completion can work well for events with a ':'.
For example:

root@skl:/tmp# perf stat -e block:block_<TAB>
block:block_bio_backmerge block:block_rq_complete
block:block_bio_bounce block:block_rq_insert
block:block_bio_complete block:block_rq_issue
block:block_bio_frontmerge block:block_rq_remap
block:block_bio_queue block:block_rq_requeue
block:block_bio_remap block:block_sleeprq
block:block_dirty_buffer block:block_split
block:block_getrq block:block_touch_buffer
block:block_plug block:block_unplug

root@skl:/tmp# perf stat -e block:block_rq_<TAB>
block:block_rq_complete block:block_rq_issue block:block_rq_requeue
block:block_rq_insert block:block_rq_remap

root@skl:/tmp# perf stat -e block:block_rq_complete<TAB>
block:block_rq_complete

root@skl:/tmp# perf stat -e block:block_rq_complete

Signed-off-by: Jin Yao <yao.jin@xxxxxxxxxxxxxxx>
Tested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Link: http://lkml.kernel.org/r/1513973758-19109-1-git-send-email-yao.jin@xxxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
---
tools/perf/perf-completion.sh | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/tools/perf/perf-completion.sh b/tools/perf/perf-completion.sh
index 9020641..fdf75d4 100644
--- a/tools/perf/perf-completion.sh
+++ b/tools/perf/perf-completion.sh
@@ -280,6 +280,11 @@ _perf()
export COMP_WORDBREAKS
fi

+ if [[ "$COMP_WORDBREAKS" == *:* ]]; then
+ COMP_WORDBREAKS="${COMP_WORDBREAKS/:/}"
+ export COMP_WORDBREAKS
+ fi
+
local cur words cword prev
if [ $preload_get_comp_words_by_ref = "true" ]; then
_get_comp_words_by_ref -n =:, cur words cword prev