summaryrefslogtreecommitdiffstats
path: root/lib/Reply/Plugin/Autocomplete/Lexicals.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Reply/Plugin/Autocomplete/Lexicals.pm')
-rw-r--r--lib/Reply/Plugin/Autocomplete/Lexicals.pm10
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;