lib/PublicInbox/LeiQuery.pm | 13 ++++++++++++- diff --git a/lib/PublicInbox/LeiQuery.pm b/lib/PublicInbox/LeiQuery.pm index 10b8d6fae68339ab81df2ed1e3c268f204ac102e..8015ecec6230a2fb222e6bb158cc77f2ef55eb42 100644 --- a/lib/PublicInbox/LeiQuery.pm +++ b/lib/PublicInbox/LeiQuery.pm @@ -112,11 +112,22 @@ # shell completion helper called by lei__complete sub _complete_q { my ($self, @argv) = @_; my $ext = qr/\A(?:-I|(?:--(?:include|exclude|only)))\z/; - # $argv[-1] =~ $ext and return $self->_complete_forget_external; my @cur; while (@argv) { if ($argv[-1] =~ $ext) { my @c = $self->_complete_forget_external(@cur); + # try basename match: + if (scalar(@cur) == 1 && index($cur[0], '/') < 0) { + my $all = $self->externals_each; + my %bn; + for my $loc (keys %$all) { + my $bn = (split(m!/!, $loc))[-1]; + ++$bn{$bn}; + } + push @c, grep { + $bn{$_} == 1 && /\A\Q$cur[0]/ + } keys %bn; + } return @c if @c; } unshift(@cur, pop @argv);