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