summaryrefslogtreecommitdiffstats
path: root/lib/Reply/Plugin/Autocomplete/Lexicals.pm
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-08-07 22:28:04 -0400
committerJesse Luehrs <doy@tozt.net>2013-09-03 16:50:15 -0400
commit3e19fb26f62ce9fa02e417c015f6668989d1eaad (patch)
tree411f3292cf712606ad177b5229314eb739db4b7b /lib/Reply/Plugin/Autocomplete/Lexicals.pm
parent7df1338f58d10c01cf8f742832b57b2736dbf301 (diff)
downloadreply-3e19fb26f62ce9fa02e417c015f6668989d1eaad.tar.gz
reply-3e19fb26f62ce9fa02e417c015f6668989d1eaad.zip
convert all of the plugins
Diffstat (limited to 'lib/Reply/Plugin/Autocomplete/Lexicals.pm')
-rw-r--r--lib/Reply/Plugin/Autocomplete/Lexicals.pm55
1 files changed, 27 insertions, 28 deletions
diff --git a/lib/Reply/Plugin/Autocomplete/Lexicals.pm b/lib/Reply/Plugin/Autocomplete/Lexicals.pm
index c733fed..c3468de 100644
--- a/lib/Reply/Plugin/Autocomplete/Lexicals.pm
+++ b/lib/Reply/Plugin/Autocomplete/Lexicals.pm
@@ -1,9 +1,9 @@
-package Reply::Plugin::Autocomplete::Lexicals;
+package main;
use strict;
use warnings;
# ABSTRACT: tab completion for lexical variables
-use base 'Reply::Plugin';
+use mop;
use Reply::Util qw($varname_rx);
@@ -20,40 +20,39 @@ Perl code.
=cut
-sub tab_handler {
- my $self = shift;
- my ($line) = @_;
+class Reply::Plugin::Autocomplete::Lexicals extends Reply::Plugin {
+ method tab_handler ($line) {
+ my ($var) = $line =~ /($varname_rx)$/;
+ return unless $var;
- my ($var) = $line =~ /($varname_rx)$/;
- return unless $var;
+ my ($sigil, $name_prefix) = $var =~ /(.)(.*)/;
- my ($sigil, $name_prefix) = $var =~ /(.)(.*)/;
+ # these can't be lexicals
+ return if $sigil eq '&' || $sigil eq '*';
- # these can't be lexicals
- return if $sigil eq '&' || $sigil eq '*';
+ my $env = { map { %$_ } $self->publish('lexical_environment') };
+ my @env = keys %$env;
- my $env = { map { %$_ } $self->publish('lexical_environment') };
- my @env = keys %$env;
+ my @results;
+ for my $env_var (@env) {
+ my ($env_sigil, $env_name) = $env_var =~ /(.)(.*)/;
- my @results;
- for my $env_var (@env) {
- my ($env_sigil, $env_name) = $env_var =~ /(.)(.*)/;
+ next unless index($env_name, $name_prefix) == 0;
- next unless index($env_name, $name_prefix) == 0;
-
- # this is weird, not sure why % gets stripped but not $ or @
- if ($sigil eq $env_sigil) {
- push @results, $sigil eq '%' ? $env_var : $env_name;
- }
- elsif ($env_sigil eq '@' && $sigil eq '$') {
- push @results, "$env_name\[";
- }
- elsif ($env_sigil eq '%') {
- push @results, "$env_name\{";
+ # this is weird, not sure why % gets stripped but not $ or @
+ if ($sigil eq $env_sigil) {
+ push @results, $sigil eq '%' ? $env_var : $env_name;
+ }
+ elsif ($env_sigil eq '@' && $sigil eq '$') {
+ push @results, "$env_name\[";
+ }
+ elsif ($env_sigil eq '%') {
+ push @results, "$env_name\{";
+ }
}
- }
- return @results;
+ return @results;
+ }
}
1;