diff options
Diffstat (limited to 'lib/Reply/Plugin/Autocomplete/Lexicals.pm')
-rw-r--r-- | lib/Reply/Plugin/Autocomplete/Lexicals.pm | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/Reply/Plugin/Autocomplete/Lexicals.pm b/lib/Reply/Plugin/Autocomplete/Lexicals.pm index 08d4c02..dd953bf 100644 --- a/lib/Reply/Plugin/Autocomplete/Lexicals.pm +++ b/lib/Reply/Plugin/Autocomplete/Lexicals.pm @@ -5,6 +5,8 @@ use warnings; use base 'Reply::Plugin'; +use Reply::Util qw($varname_rx); + =head1 SYNOPSIS ; .replyrc @@ -18,9 +20,6 @@ Perl code. =cut -# XXX unicode? -my $var_name_rx = qr/[\$\@\%]\s*(?:[A-Z_a-z][0-9A-Z_a-z]*)?/; - sub new { my $class = shift; @@ -41,11 +40,14 @@ sub tab_handler { my $self = shift; my ($line) = @_; - my ($var) = $line =~ /($var_name_rx)$/; + my ($var) = $line =~ /($varname_rx)$/; return unless $var; my ($sigil, $name_prefix) = $var =~ /(.)(.*)/; + # these can't be lexicals + return if $sigil eq '&' || $sigil eq '*'; + my $env = { map { %$_ } values %{ $self->{env} } }; my @env = keys %$env; |