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