summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorThomas Stagner2017-02-19 12:43:16 -0700
committerThomas Stagner2017-02-19 12:43:16 -0700
commita5b61e32c4c77f3f6c31133812facbc7f90f35ff (patch)
treec6fbea51f0c07e0a783f49f3da44b28f32287b2c /scripts
parentb3a8e7731bc5e12822820efc88491e05ffe8f556 (diff)
downloadscripts.irssi.org-a5b61e32c4c77f3f6c31133812facbc7f90f35ff.tar.bz2
Implement second-level tab completion for /perlalias and /perlunalias
Diffstat (limited to 'scripts')
-rw-r--r--scripts/perlalias.pl28
1 files changed, 28 insertions, 0 deletions
diff --git a/scripts/perlalias.pl b/scripts/perlalias.pl
index bb3b306..c4e4803 100644
--- a/scripts/perlalias.pl
+++ b/scripts/perlalias.pl
@@ -235,6 +235,34 @@ sub sig_setup_reread {
close $fd;
}
+sub sig_complete_perlalias {
+ my ($lst, $win, $word, $line, $want_space) = @_;
+ $word//return;
+ $line//return;
+ $lst//return;
+ if ($line ne '') {
+ my $def = $cmds{$line};
+ $def//return;
+ push @$lst, $def->{textcmd};
+ Irssi::signal_stop();
+ }
+ else {
+ push @$lst, (grep /^\Q$word\E/i, keys %cmds);
+ Irssi::signal_stop();
+ }
+}
+
+sub sig_complete_perlunalias {
+ my ($lst, $win, $word, $line, $want_space) = @_;
+ $lst//return;
+ $word//return;
+ push @$lst, (grep /^\Q$word\E/i, keys %cmds);
+}
+
+Irssi::signal_register({"complete command " => [qw(glistptr_char* Irssi::UI::Window string string intptr)]});
+Irssi::signal_add("complete command perlalias" => \&sig_complete_perlalias);
+Irssi::signal_add("complete command perlunalias" => \&sig_complete_perlunalias);
+
Irssi::signal_add("setup saved" => \&sig_setup_saved);
Irssi::signal_add("setup reread" => \&sig_setup_reread);