Highlight keyboard shortcuts in git-add--interactive
authorWincent Colaiuta <win@wincent.com>
Thu, 29 Nov 2007 12:00:38 +0000 (13:00 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 30 Nov 2007 20:37:40 +0000 (12:37 -0800)
commit14cb50382c9027ca3b8cf8dbc0a26503a40f50c5
tree4caa00e69d33a7d27a2dcc4abe0183f7195c58e6
parent280e50c7e5c2c52cbcc452fa5fb254ee580ae39c
Highlight keyboard shortcuts in git-add--interactive

The user interface provided by the command loop in git-add--interactive
gives the impression that subcommands can only be launched by entering
an integer identifier from 1 through 8.

A "hidden" feature is that any string can be entered, and a regex search
anchored at the beginning of the string is used to find the uniquely
matching option.

This patch makes this feature a little more obvious by highlighting the
first character of each subcommand (for example "patch" is displayed as
"[p]atch").

A new function is added to detect the shortest unique prefix and this
is used to decide what to highlight. Highlighting is also applied when
choosing files.

In the case where the common prefix may be unreasonably large
highlighting is omitted; in this patch the soft limit (above which the
highlighting will be omitted for a particular item) is 0 (in other words,
there is no soft limit) and the hard limit (above which highlighting will
be omitted for all items) is 3, but this can be tweaked.

The actual highlighting is done by the highlight_prefix function, which
will enable us to implement ANSI color code-based highlighting (most
likely using underline or boldface) in the future.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-add--interactive.perl