}
-sub mapping_paste {
- my ($key, $screen, $config, $input) = @_;
+sub mapping_state_helper {
+ my ($name, $flags, $key, $screen, $config, $input) = @_;
- $screen->debug('mapping_paste', 'started');
+ $screen->debug("mapping_$name", 'started');
- $config->{state}{handler} = $config->{handler}{paste};
+ $config->{state}{handler} = $config->{handler}{$name};
- $screen->prompt(flags => 'P'); # paste
+ $screen->prompt(flags => $flags);
$screen->draw_prompt($config);
$screen->refresh;
return {};
}
-sub mapping_paste_now {
- my ($key, $screen, $config, $input) = @_;
+sub mapping_state_now_helper {
+ my ($name, $key, $screen, $config, $input) = @_;
- $screen->debug('mapping_paste_now', 'started');
+ $screen->debug("mapping_${name}_now", 'started');
- $config->{state}{handler} = $config->{handler}{paste};
+ $config->{state}{handler} = $config->{handler}{$name};
return {
select_match => 1,
};
}
-sub mapping_yank {
- my ($key, $screen, $config, $input) = @_;
-
- $screen->debug('mapping_yank', 'started');
-
- $config->{state}{handler} = $config->{handler}{yank};
-
- $screen->prompt(flags => 'Y'); # yank
- $screen->draw_prompt($config);
- $screen->refresh;
+sub mapping_paste {
+ return mapping_state_helper('paste', 'P', @_);
+}
+sub mapping_paste_now {
+ return mapping_state_now_helper('paste', @_);
+}
- return {};
+sub mapping_yank {
+ return mapping_state_helper('yank', 'Y', @_);
}
sub mapping_yank_now {
- my ($key, $screen, $config, $input) = @_;
-
- $screen->debug('mapping_yank_now', 'started');
-
- $config->{state}{handler} = $config->{handler}{yank};
-
- return {
- select_match => 1,
- };
+ return mapping_state_now_helper('yank', @_);
}