From 27163106c74fdee8af923daf4345f1c90f9d8b1d Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Sun, 3 Jun 2018 14:46:44 +1000 Subject: Make register expansions expand to the full register content Now that we have a nice standard way to express lists of strings, registers can be fully exposed. An new $kak_main_reg_... env var was added to provide the previous behaviour which is relied on by doc.kak. --- src/command_manager.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/command_manager.cc') diff --git a/src/command_manager.cc b/src/command_manager.cc index c3dfc7c4..a554daa2 100644 --- a/src/command_manager.cc +++ b/src/command_manager.cc @@ -263,6 +263,16 @@ auto expand_option(Option& opt, std::false_type) return opt.get_as_strings(); } +auto expand_register(StringView reg, const Context& context, std::true_type) +{ + return join(RegisterManager::instance()[reg].get(context) | transform(quote), ' ', false); +} + +auto expand_register(StringView reg, const Context& context, std::false_type) +{ + return RegisterManager::instance()[reg].get(context) | gather>(); +} + String expand_arobase(ConstArrayView params, std::true_type) { return join(params, ' ', false); @@ -298,7 +308,7 @@ expand_token(const Token& token, const Context& context, const ShellContext& she return {str}; } case Token::Type::RegisterExpand: - return {context.main_sel_register_value(content).str()}; + return expand_register(content, context, IsSingle{}); case Token::Type::OptionExpand: return expand_option(context.options()[content], IsSingle{}); case Token::Type::ValExpand: -- cgit v1.2.3