Merge remote-tracking branch 'eraserhd/object-command-submode'

This commit is contained in:
Maxime Coste 2019-02-17 11:22:02 +11:00
commit e169a1893b
2 changed files with 14 additions and 3 deletions

View File

@ -681,6 +681,10 @@ in order to specify the wanted object:
*c*::
select user defined object, will prompt for open and close text
*<a-;>*::
run a command in object context. The expansions `%val{count}` and
`%val{register}` are available here.
== Prompt commands
When pressing `:` in normal mode, Kakoune will open a prompt to enter

View File

@ -1252,12 +1252,12 @@ void select_object(Context& context, NormalParams params)
whole ? "" : (flags & ObjectFlags::ToBegin ? " begin" : " end"));
};
const int count = params.count <= 0 ? 0 : params.count - 1;
on_next_key_with_autoinfo(context, KeymapMode::Object,
[count](Key key, Context& context) {
[params](Key key, Context& context) {
if (key == Key::Escape)
return;
const int count = params.count <= 0 ? 0 : params.count - 1;
static constexpr struct ObjectType
{
Key key;
@ -1311,6 +1311,12 @@ void select_object(Context& context, NormalParams params)
return;
}
if (key == alt(';'))
{
command(context, params);
return;
}
static constexpr struct SurroundingPair
{
char opening;
@ -1365,7 +1371,8 @@ void select_object(Context& context, NormalParams params)
{{'i'}, "indent"},
{{'u'}, "argument"},
{{'n'}, "number"},
{{'c'}, "custom object desc"}}));
{{'c'}, "custom object desc"},
{{alt(';')}, "run command in object context"}}));
}
enum Direction { Backward = -1, Forward = 1 };