selections env var is : separated, and : in selections are escaped

This commit is contained in:
Maxime Coste 2013-08-28 18:52:29 +01:00
parent 535a454349
commit 3150fe97cf

View File

@ -70,10 +70,17 @@ void register_env_vars()
{ const Range& sel = context.editor().main_selection(); { const Range& sel = context.editor().main_selection();
return content(context.buffer(), sel); }); return content(context.buffer(), sel); });
shell_manager.register_env_var("selections", shell_manager.register_env_var("selections",
[](const String& name, const Context& context) [](const String& name, const Context& context) {
{ auto sels = context.editor().selections_content(); auto sels = context.editor().selections_content();
return std::accumulate(sels.begin(), sels.end(), ""_str, String res;
[](const String& lhs, const String& rhs) { return lhs.empty() ? rhs : lhs + "," + rhs; }); }); for (size_t i = 0; i < sels.size(); ++i)
{
res += escape(sels[i], ':', '\\');
if (i != sels.size() - 1)
res += ':';
}
return res;
});
shell_manager.register_env_var("runtime", shell_manager.register_env_var("runtime",
[](const String& name, const Context& context) [](const String& name, const Context& context)
{ return runtime_directory(); }); { return runtime_directory(); });