- my $match_cb = $lei->complete_url_prepare(\@argv);
- my @m = map { $match_cb->($_) } $lei->url_folder_cache->keys;
- my %f = map { $_ => 1 } @m;
- my $sto = $lei->_lei_store;
- if (my $lms = $sto ? $sto->search->lms : undef) {
- @m = map { $match_cb->($_) } $lms->folders;
- @f{@m} = @m;
+ my ($re, $cur, $match_cb) = $lei->complete_url_prepare(\@argv);
+ my @k = $lei->url_folder_cache->keys($argv[-1] // undef, 1);
+ my @L = eval { $lei->_lei_store->search->all_terms('L') };
+ push(@k, map { "+L:$_" } @L);
+ my @m = map { $match_cb->($_) } @k;
+ my %f = map { $_ => 1 } (@m ? @m : @k);
+ if (my $lms = $lei->lms) {
+ @k = $lms->folders($argv[-1] // undef, 1);
+ @m = map { $match_cb->($_) } @k;
+ if (@m) { @f{@m} = @m } else { @f{@k} = @k }