#ifndef shell_manager_hh_INCLUDED #define shell_manager_hh_INCLUDED #include "string.hh" #include "utils.hh" #include namespace Kakoune { struct Context; using EnvVarRetriever = std::function; using EnvVarMap = std::unordered_map; class ShellManager : public Singleton { public: ShellManager(); String eval(const String& cmdline, const Context& context, memoryview params, const EnvVarMap& env_vars); String pipe(const String& input, const String& cmdline, const Context& context, memoryview params, const EnvVarMap& env_vars); void register_env_var(const String& regex, EnvVarRetriever retriever); private: std::vector> m_env_vars; }; } #endif // shell_manager_hh_INCLUDED