summaryrefslogtreecommitdiff
path: root/src/command_manager.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/command_manager.hh')
-rw-r--r--src/command_manager.hh16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/command_manager.hh b/src/command_manager.hh
index 9592bce6..2251e8b7 100644
--- a/src/command_manager.hh
+++ b/src/command_manager.hh
@@ -19,11 +19,15 @@ namespace Kakoune
class Context;
using CommandParameters = ConstArrayView<String>;
-using Command = std::function<void (const ParametersParser& parser, Context& context)>;
+using Command = std::function<void (const ParametersParser& parser,
+ Context& context,
+ const ShellContext& shell_context)>;
+
using CommandCompleter = std::function<Completions (const Context& context,
CompletionFlags,
CommandParameters,
size_t, ByteCount)>;
+
using CommandHelper = std::function<String (const Context& context, CommandParameters)>;
enum class CommandFlags
@@ -61,8 +65,7 @@ class CommandManager : public Singleton<CommandManager>
{
public:
void execute(StringView command_line, Context& context,
- ConstArrayView<String> shell_params = {},
- const EnvVarMap& env_vars = EnvVarMap{});
+ const ShellContext& shell_context = ShellContext{});
Completions complete(const Context& context, CompletionFlags flags,
StringView command_line, ByteCount cursor_pos);
@@ -85,7 +88,9 @@ public:
private:
void execute_single_command(CommandParameters params,
- Context& context, CharCoord pos) const;
+ Context& context,
+ const ShellContext& shell_context,
+ CharCoord pos) const;
struct CommandDescriptor
{
@@ -104,8 +109,7 @@ private:
};
String expand(StringView str, const Context& context,
- ConstArrayView<String> shell_params = {},
- const EnvVarMap& env_vars = EnvVarMap{});
+ const ShellContext& shell_context = ShellContext{});
}