summaryrefslogtreecommitdiff
path: root/src/command_manager.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2014-06-18 19:28:48 +0100
committerMaxime Coste <frrrwww@gmail.com>2014-06-18 19:32:13 +0100
commit9aa8c8a60a03396b7ed679537e3ed6b6de02ce8e (patch)
treeecd25237cb493f6fb11aa59bb77768bc0e7e116d /src/command_manager.cc
parent62707aa82d407436c517f241c38eed68b5d158af (diff)
Add a %val{...} expand type
%val{name} gives access to values given in shell through $kak_<name>
Diffstat (limited to 'src/command_manager.cc')
-rw-r--r--src/command_manager.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/command_manager.cc b/src/command_manager.cc
index a99f89b3..874d0290 100644
--- a/src/command_manager.cc
+++ b/src/command_manager.cc
@@ -55,6 +55,7 @@ struct Token
ShellExpand,
RegisterExpand,
OptionExpand,
+ ValExpand,
CommandSeparator
};
Token() : m_type(Type::Raw) {}
@@ -150,6 +151,8 @@ Token::Type token_type(StringView type_name)
return Token::Type::RegisterExpand;
else if (type_name == "opt")
return Token::Type::OptionExpand;
+ else if (type_name == "val")
+ return Token::Type::ValExpand;
else if (type_name == "rec")
return Token::Type::RawEval;
else if (throw_on_invalid)
@@ -316,6 +319,8 @@ String eval_token(const Token& token, Context& context,
return RegisterManager::instance()[content].values(context)[0];
case Token::Type::OptionExpand:
return context.options()[content].get_as_string();
+ case Token::Type::ValExpand:
+ return ShellManager::instance().get_val(content, context);
case Token::Type::RawEval:
return eval(content, context, shell_params, env_vars);
case Token::Type::Raw: