]> git.99rst.org Git - irssi-scripts.irssi.org.git/commitdiff
Implement second-level tab completion for /perlalias and /perlunalias
authorThomas Stagner <redacted>
Sun, 19 Feb 2017 19:43:16 +0000 (12:43 -0700)
committerThomas Stagner <redacted>
Sun, 19 Feb 2017 19:43:16 +0000 (12:43 -0700)
scripts/perlalias.pl

index bb3b306364ae8da20b0aefeff4dc744378fe85c9..c4e4803d1edc26a77011e16780075be6567d2578 100644 (file)
@@ -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);
 
git clone https://git.99rst.org/PROJECT