memoryview: always pass by value
This commit is contained in:
parent
3862b5cbb8
commit
eedd37c09a
|
@ -23,7 +23,7 @@ void CommandManager::register_command(String command_name,
|
||||||
m_commands[command_name] = { std::move(command), std::move(completer) };
|
m_commands[command_name] = { std::move(command), std::move(completer) };
|
||||||
}
|
}
|
||||||
|
|
||||||
void CommandManager::register_commands(const memoryview<String>& command_names,
|
void CommandManager::register_commands(memoryview<String> command_names,
|
||||||
Command command,
|
Command command,
|
||||||
CommandCompleter completer)
|
CommandCompleter completer)
|
||||||
{
|
{
|
||||||
|
@ -247,7 +247,7 @@ struct command_not_found : runtime_error
|
||||||
: runtime_error(command + " : no such command") {}
|
: runtime_error(command + " : no such command") {}
|
||||||
};
|
};
|
||||||
|
|
||||||
void CommandManager::execute_single_command(const CommandParameters& params,
|
void CommandManager::execute_single_command(CommandParameters params,
|
||||||
Context& context) const
|
Context& context) const
|
||||||
{
|
{
|
||||||
if (params.empty())
|
if (params.empty())
|
||||||
|
@ -262,7 +262,7 @@ void CommandManager::execute_single_command(const CommandParameters& params,
|
||||||
|
|
||||||
void CommandManager::execute(const String& command_line,
|
void CommandManager::execute(const String& command_line,
|
||||||
Context& context,
|
Context& context,
|
||||||
const memoryview<String>& shell_params,
|
memoryview<String> shell_params,
|
||||||
const EnvVarMap& env_vars)
|
const EnvVarMap& env_vars)
|
||||||
{
|
{
|
||||||
TokenList tokens = parse(command_line);
|
TokenList tokens = parse(command_line);
|
||||||
|
@ -368,7 +368,7 @@ Completions CommandManager::complete(const Context& context,
|
||||||
}
|
}
|
||||||
|
|
||||||
CandidateList PerArgumentCommandCompleter::operator()(const Context& context,
|
CandidateList PerArgumentCommandCompleter::operator()(const Context& context,
|
||||||
const CommandParameters& params,
|
CommandParameters params,
|
||||||
size_t token_to_complete,
|
size_t token_to_complete,
|
||||||
ByteCount pos_in_token) const
|
ByteCount pos_in_token) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -21,10 +21,10 @@ struct parse_error : runtime_error
|
||||||
|
|
||||||
struct Context;
|
struct Context;
|
||||||
using CommandParameters = memoryview<String>;
|
using CommandParameters = memoryview<String>;
|
||||||
using Command = std::function<void (const CommandParameters&,
|
using Command = std::function<void (CommandParameters,
|
||||||
Context& context)>;
|
Context& context)>;
|
||||||
using CommandCompleter = std::function<CandidateList (const Context& context,
|
using CommandCompleter = std::function<CandidateList (const Context& context,
|
||||||
const CommandParameters&,
|
CommandParameters,
|
||||||
size_t, ByteCount)>;
|
size_t, ByteCount)>;
|
||||||
|
|
||||||
class PerArgumentCommandCompleter
|
class PerArgumentCommandCompleter
|
||||||
|
@ -34,11 +34,11 @@ public:
|
||||||
const String&, ByteCount)>;
|
const String&, ByteCount)>;
|
||||||
using ArgumentCompleterList = memoryview<ArgumentCompleter>;
|
using ArgumentCompleterList = memoryview<ArgumentCompleter>;
|
||||||
|
|
||||||
PerArgumentCommandCompleter(const ArgumentCompleterList& completers)
|
PerArgumentCommandCompleter(ArgumentCompleterList completers)
|
||||||
: m_completers(completers.begin(), completers.end()) {}
|
: m_completers(completers.begin(), completers.end()) {}
|
||||||
|
|
||||||
CandidateList operator()(const Context& context,
|
CandidateList operator()(const Context& context,
|
||||||
const CommandParameters& params,
|
CommandParameters params,
|
||||||
size_t token_to_complete,
|
size_t token_to_complete,
|
||||||
ByteCount pos_in_token) const;
|
ByteCount pos_in_token) const;
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ class CommandManager : public Singleton<CommandManager>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
void execute(const String& command_line, Context& context,
|
void execute(const String& command_line, Context& context,
|
||||||
const memoryview<String>& shell_params = {},
|
memoryview<String> shell_params = {},
|
||||||
const EnvVarMap& env_vars = EnvVarMap{});
|
const EnvVarMap& env_vars = EnvVarMap{});
|
||||||
|
|
||||||
Completions complete(const Context& context,
|
Completions complete(const Context& context,
|
||||||
|
@ -62,12 +62,12 @@ public:
|
||||||
Command command,
|
Command command,
|
||||||
CommandCompleter completer = CommandCompleter());
|
CommandCompleter completer = CommandCompleter());
|
||||||
|
|
||||||
void register_commands(const memoryview<String>& command_names,
|
void register_commands(memoryview<String> command_names,
|
||||||
Command command,
|
Command command,
|
||||||
CommandCompleter completer = CommandCompleter());
|
CommandCompleter completer = CommandCompleter());
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void execute_single_command(const CommandParameters& params,
|
void execute_single_command(CommandParameters params,
|
||||||
Context& context) const;
|
Context& context) const;
|
||||||
struct CommandDescriptor
|
struct CommandDescriptor
|
||||||
{
|
{
|
||||||
|
|
|
@ -86,7 +86,7 @@ Buffer* open_fifo(const String& name , const String& filename, Context& context)
|
||||||
}
|
}
|
||||||
|
|
||||||
template<bool force_reload>
|
template<bool force_reload>
|
||||||
void edit(const CommandParameters& params, Context& context)
|
void edit(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params, { { "scratch", false },
|
ParametersParser parser(params, { { "scratch", false },
|
||||||
{ "fifo", true } },
|
{ "fifo", true } },
|
||||||
|
@ -134,7 +134,7 @@ void edit(const CommandParameters& params, Context& context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void write_buffer(const CommandParameters& params, Context& context)
|
void write_buffer(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
if (params.size() > 1)
|
if (params.size() > 1)
|
||||||
throw wrong_argument_count();
|
throw wrong_argument_count();
|
||||||
|
@ -153,7 +153,7 @@ void write_buffer(const CommandParameters& params, Context& context)
|
||||||
buffer.notify_saved();
|
buffer.notify_saved();
|
||||||
}
|
}
|
||||||
|
|
||||||
void write_all_buffers(const CommandParameters& params, Context& context)
|
void write_all_buffers(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
if (params.size() != 0)
|
if (params.size() != 0)
|
||||||
throw wrong_argument_count();
|
throw wrong_argument_count();
|
||||||
|
@ -169,7 +169,7 @@ void write_all_buffers(const CommandParameters& params, Context& context)
|
||||||
}
|
}
|
||||||
|
|
||||||
template<bool force>
|
template<bool force>
|
||||||
void quit(const CommandParameters& params, Context& context)
|
void quit(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
if (params.size() != 0)
|
if (params.size() != 0)
|
||||||
throw wrong_argument_count();
|
throw wrong_argument_count();
|
||||||
|
@ -200,13 +200,13 @@ void quit(const CommandParameters& params, Context& context)
|
||||||
}
|
}
|
||||||
|
|
||||||
template<bool force>
|
template<bool force>
|
||||||
void write_and_quit(const CommandParameters& params, Context& context)
|
void write_and_quit(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
write_buffer(params, context);
|
write_buffer(params, context);
|
||||||
quit<force>(CommandParameters(), context);
|
quit<force>(CommandParameters(), context);
|
||||||
}
|
}
|
||||||
|
|
||||||
void show_buffer(const CommandParameters& params, Context& context)
|
void show_buffer(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
if (params.size() != 1)
|
if (params.size() != 1)
|
||||||
throw wrong_argument_count();
|
throw wrong_argument_count();
|
||||||
|
@ -223,7 +223,7 @@ void show_buffer(const CommandParameters& params, Context& context)
|
||||||
}
|
}
|
||||||
|
|
||||||
template<bool force>
|
template<bool force>
|
||||||
void delete_buffer(const CommandParameters& params, Context& context)
|
void delete_buffer(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
if (params.size() > 1)
|
if (params.size() > 1)
|
||||||
throw wrong_argument_count();
|
throw wrong_argument_count();
|
||||||
|
@ -239,7 +239,7 @@ void delete_buffer(const CommandParameters& params, Context& context)
|
||||||
manager.delete_buffer(buffer);
|
manager.delete_buffer(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_buffer_name(const CommandParameters& params, Context& context)
|
void set_buffer_name(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params, OptionMap{},
|
ParametersParser parser(params, OptionMap{},
|
||||||
ParametersParser::Flags::None, 1, 1);
|
ParametersParser::Flags::None, 1, 1);
|
||||||
|
@ -258,7 +258,7 @@ Group& get_group(Group& root, const String& group_path)
|
||||||
return group;
|
return group;
|
||||||
}
|
}
|
||||||
|
|
||||||
void add_highlighter(const CommandParameters& params, Context& context)
|
void add_highlighter(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params, { { "group", true } }, ParametersParser::Flags::None, 1);
|
ParametersParser parser(params, { { "group", true } }, ParametersParser::Flags::None, 1);
|
||||||
HighlighterRegistry& registry = HighlighterRegistry::instance();
|
HighlighterRegistry& registry = HighlighterRegistry::instance();
|
||||||
|
@ -278,7 +278,7 @@ void add_highlighter(const CommandParameters& params, Context& context)
|
||||||
group.append(factory(highlighter_params, window));
|
group.append(factory(highlighter_params, window));
|
||||||
}
|
}
|
||||||
|
|
||||||
void rm_highlighter(const CommandParameters& params, Context& context)
|
void rm_highlighter(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params, { { "group", true } }, ParametersParser::Flags::None, 1, 1);
|
ParametersParser parser(params, { { "group", true } }, ParametersParser::Flags::None, 1, 1);
|
||||||
|
|
||||||
|
@ -290,7 +290,7 @@ void rm_highlighter(const CommandParameters& params, Context& context)
|
||||||
group.remove(parser[0]);
|
group.remove(parser[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void add_filter(const CommandParameters& params, Context& context)
|
void add_filter(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params, { { "group", true } }, ParametersParser::Flags::None, 1);
|
ParametersParser parser(params, { { "group", true } }, ParametersParser::Flags::None, 1);
|
||||||
|
|
||||||
|
@ -311,7 +311,7 @@ void add_filter(const CommandParameters& params, Context& context)
|
||||||
group.append(factory(filter_params));
|
group.append(factory(filter_params));
|
||||||
}
|
}
|
||||||
|
|
||||||
void rm_filter(const CommandParameters& params, Context& context)
|
void rm_filter(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params, { { "group", true } }, ParametersParser::Flags::None, 1, 1);
|
ParametersParser parser(params, { { "group", true } }, ParametersParser::Flags::None, 1, 1);
|
||||||
|
|
||||||
|
@ -334,7 +334,7 @@ static HookManager& get_hook_manager(const String& scope, Context& context)
|
||||||
throw runtime_error("error: no such hook container " + scope);
|
throw runtime_error("error: no such hook container " + scope);
|
||||||
}
|
}
|
||||||
|
|
||||||
void add_hook(const CommandParameters& params, Context& context)
|
void add_hook(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params, { { "id", true } }, ParametersParser::Flags::None, 4, 4);
|
ParametersParser parser(params, { { "id", true } }, ParametersParser::Flags::None, 4, 4);
|
||||||
// copy so that the lambda gets a copy as well
|
// copy so that the lambda gets a copy as well
|
||||||
|
@ -349,13 +349,13 @@ void add_hook(const CommandParameters& params, Context& context)
|
||||||
get_hook_manager(parser[0], context).add_hook(parser[1], id, hook_func);
|
get_hook_manager(parser[0], context).add_hook(parser[1], id, hook_func);
|
||||||
}
|
}
|
||||||
|
|
||||||
void rm_hooks(const CommandParameters& params, Context& context)
|
void rm_hooks(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params, {}, ParametersParser::Flags::None, 2, 2);
|
ParametersParser parser(params, {}, ParametersParser::Flags::None, 2, 2);
|
||||||
get_hook_manager(parser[0], context).remove_hooks(parser[1]);
|
get_hook_manager(parser[0], context).remove_hooks(parser[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
EnvVarMap params_to_env_var_map(const CommandParameters& params)
|
EnvVarMap params_to_env_var_map(CommandParameters params)
|
||||||
{
|
{
|
||||||
std::unordered_map<String, String> vars;
|
std::unordered_map<String, String> vars;
|
||||||
char param_name[] = "param0";
|
char param_name[] = "param0";
|
||||||
|
@ -367,7 +367,7 @@ EnvVarMap params_to_env_var_map(const CommandParameters& params)
|
||||||
return vars;
|
return vars;
|
||||||
}
|
}
|
||||||
|
|
||||||
void define_command(const CommandParameters& params, Context& context)
|
void define_command(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params,
|
ParametersParser parser(params,
|
||||||
{ { "env-params", false },
|
{ { "env-params", false },
|
||||||
|
@ -389,20 +389,20 @@ void define_command(const CommandParameters& params, Context& context)
|
||||||
Command cmd;
|
Command cmd;
|
||||||
if (parser.has_option("env-params"))
|
if (parser.has_option("env-params"))
|
||||||
{
|
{
|
||||||
cmd = [=](const CommandParameters& params, Context& context) {
|
cmd = [=](CommandParameters params, Context& context) {
|
||||||
CommandManager::instance().execute(commands, context, {},
|
CommandManager::instance().execute(commands, context, {},
|
||||||
params_to_env_var_map(params));
|
params_to_env_var_map(params));
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (parser.has_option("shell-params"))
|
if (parser.has_option("shell-params"))
|
||||||
{
|
{
|
||||||
cmd = [=](const CommandParameters& params, Context& context) {
|
cmd = [=](CommandParameters params, Context& context) {
|
||||||
CommandManager::instance().execute(commands, context, params);
|
CommandManager::instance().execute(commands, context, params);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cmd = [=](const CommandParameters& params, Context& context) {
|
cmd = [=](CommandParameters params, Context& context) {
|
||||||
if (not params.empty())
|
if (not params.empty())
|
||||||
throw wrong_argument_count();
|
throw wrong_argument_count();
|
||||||
CommandManager::instance().execute(commands, context);
|
CommandManager::instance().execute(commands, context);
|
||||||
|
@ -412,7 +412,7 @@ void define_command(const CommandParameters& params, Context& context)
|
||||||
CommandCompleter completer;
|
CommandCompleter completer;
|
||||||
if (parser.has_option("file-completion"))
|
if (parser.has_option("file-completion"))
|
||||||
{
|
{
|
||||||
completer = [](const Context& context, const CommandParameters& params,
|
completer = [](const Context& context, CommandParameters params,
|
||||||
size_t token_to_complete, ByteCount pos_in_token)
|
size_t token_to_complete, ByteCount pos_in_token)
|
||||||
{
|
{
|
||||||
const String& prefix = token_to_complete < params.size() ?
|
const String& prefix = token_to_complete < params.size() ?
|
||||||
|
@ -423,7 +423,7 @@ void define_command(const CommandParameters& params, Context& context)
|
||||||
else if (parser.has_option("shell-completion"))
|
else if (parser.has_option("shell-completion"))
|
||||||
{
|
{
|
||||||
String shell_cmd = parser.option_value("shell-completion");
|
String shell_cmd = parser.option_value("shell-completion");
|
||||||
completer = [=](const Context& context, const CommandParameters& params,
|
completer = [=](const Context& context, CommandParameters params,
|
||||||
size_t token_to_complete, ByteCount pos_in_token)
|
size_t token_to_complete, ByteCount pos_in_token)
|
||||||
{
|
{
|
||||||
EnvVarMap vars = {
|
EnvVarMap vars = {
|
||||||
|
@ -437,7 +437,7 @@ void define_command(const CommandParameters& params, Context& context)
|
||||||
CommandManager::instance().register_command(cmd_name, cmd, completer);
|
CommandManager::instance().register_command(cmd_name, cmd, completer);
|
||||||
}
|
}
|
||||||
|
|
||||||
void echo_message(const CommandParameters& params, Context& context)
|
void echo_message(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params, { { "color", true } },
|
ParametersParser parser(params, { { "color", true } },
|
||||||
ParametersParser::Flags::OptionsOnlyAtStart);
|
ParametersParser::Flags::OptionsOnlyAtStart);
|
||||||
|
@ -449,7 +449,7 @@ void echo_message(const CommandParameters& params, Context& context)
|
||||||
context.print_status({ std::move(message), color } );
|
context.print_status({ std::move(message), color } );
|
||||||
}
|
}
|
||||||
|
|
||||||
void write_debug_message(const CommandParameters& params, Context&)
|
void write_debug_message(CommandParameters params, Context&)
|
||||||
{
|
{
|
||||||
String message;
|
String message;
|
||||||
for (auto& param : params)
|
for (auto& param : params)
|
||||||
|
@ -457,7 +457,7 @@ void write_debug_message(const CommandParameters& params, Context&)
|
||||||
write_debug(message);
|
write_debug(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void exec_commands_in_file(const CommandParameters& params,
|
void exec_commands_in_file(CommandParameters params,
|
||||||
Context& context)
|
Context& context)
|
||||||
{
|
{
|
||||||
if (params.size() != 1)
|
if (params.size() != 1)
|
||||||
|
@ -467,7 +467,7 @@ void exec_commands_in_file(const CommandParameters& params,
|
||||||
CommandManager::instance().execute(file_content, context);
|
CommandManager::instance().execute(file_content, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_global_option(const CommandParameters& params, Context& context)
|
void set_global_option(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params, { { "add", false } },
|
ParametersParser parser(params, { { "add", false } },
|
||||||
ParametersParser::Flags::OptionsOnlyAtStart,
|
ParametersParser::Flags::OptionsOnlyAtStart,
|
||||||
|
@ -480,7 +480,7 @@ void set_global_option(const CommandParameters& params, Context& context)
|
||||||
opt.set_from_string(parser[1]);
|
opt.set_from_string(parser[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_buffer_option(const CommandParameters& params, Context& context)
|
void set_buffer_option(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params, { { "buffer", true}, { "add", false } },
|
ParametersParser parser(params, { { "buffer", true}, { "add", false } },
|
||||||
ParametersParser::Flags::OptionsOnlyAtStart,
|
ParametersParser::Flags::OptionsOnlyAtStart,
|
||||||
|
@ -497,7 +497,7 @@ void set_buffer_option(const CommandParameters& params, Context& context)
|
||||||
opt.set_from_string(parser[1]);
|
opt.set_from_string(parser[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_window_option(const CommandParameters& params, Context& context)
|
void set_window_option(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params, { { "add", false } },
|
ParametersParser parser(params, { { "add", false } },
|
||||||
ParametersParser::Flags::OptionsOnlyAtStart,
|
ParametersParser::Flags::OptionsOnlyAtStart,
|
||||||
|
@ -510,7 +510,7 @@ void set_window_option(const CommandParameters& params, Context& context)
|
||||||
opt.set_from_string(parser[1]);
|
opt.set_from_string(parser[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void declare_option(const CommandParameters& params, Context& context)
|
void declare_option(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
if (params.size() != 2 and params.size() != 3)
|
if (params.size() != 2 and params.size() != 3)
|
||||||
throw wrong_argument_count();
|
throw wrong_argument_count();
|
||||||
|
@ -538,7 +538,7 @@ void declare_option(const CommandParameters& params, Context& context)
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename Func>
|
template<typename Func>
|
||||||
void context_wrap(const CommandParameters& params, Context& context, Func func)
|
void context_wrap(CommandParameters params, Context& context, Func func)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params, { { "client", true }, { "draft", false }},
|
ParametersParser parser(params, { { "client", true }, { "draft", false }},
|
||||||
ParametersParser::Flags::OptionsOnlyAtStart, 1);
|
ParametersParser::Flags::OptionsOnlyAtStart, 1);
|
||||||
|
@ -562,7 +562,7 @@ void context_wrap(const CommandParameters& params, Context& context, Func func)
|
||||||
real_context.window().forget_timestamp();
|
real_context.window().forget_timestamp();
|
||||||
}
|
}
|
||||||
|
|
||||||
void exec_string(const CommandParameters& params, Context& context)
|
void exec_string(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
context_wrap(params, context, [](const ParametersParser& parser, Context& context) {
|
context_wrap(params, context, [](const ParametersParser& parser, Context& context) {
|
||||||
KeyList keys;
|
KeyList keys;
|
||||||
|
@ -575,7 +575,7 @@ void exec_string(const CommandParameters& params, Context& context)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void eval_string(const CommandParameters& params, Context& context)
|
void eval_string(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
context_wrap(params, context, [](const ParametersParser& parser, Context& context) {
|
context_wrap(params, context, [](const ParametersParser& parser, Context& context) {
|
||||||
String command;
|
String command;
|
||||||
|
@ -585,7 +585,7 @@ void eval_string(const CommandParameters& params, Context& context)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void menu(const CommandParameters& params, Context& context)
|
void menu(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params, { { "auto-single", false },
|
ParametersParser parser(params, { { "auto-single", false },
|
||||||
{ "select-cmds", false } });
|
{ "select-cmds", false } });
|
||||||
|
@ -694,7 +694,7 @@ static String assist(String message, CharCount maxWidth)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void info(const CommandParameters& params, Context& context)
|
void info(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params, { { "anchor", true }, { "assist", false } },
|
ParametersParser parser(params, { { "anchor", true }, { "assist", false } },
|
||||||
ParametersParser::Flags::None, 0, 1);
|
ParametersParser::Flags::None, 0, 1);
|
||||||
|
@ -724,7 +724,7 @@ void info(const CommandParameters& params, Context& context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void try_catch(const CommandParameters& params, Context& context)
|
void try_catch(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
if (params.size() != 3)
|
if (params.size() != 3)
|
||||||
throw wrong_argument_count();
|
throw wrong_argument_count();
|
||||||
|
@ -742,7 +742,7 @@ void try_catch(const CommandParameters& params, Context& context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void define_color_alias(const CommandParameters& params, Context& context)
|
void define_color_alias(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params, OptionMap{},
|
ParametersParser parser(params, OptionMap{},
|
||||||
ParametersParser::Flags::None, 2, 2);
|
ParametersParser::Flags::None, 2, 2);
|
||||||
|
@ -750,7 +750,7 @@ void define_color_alias(const CommandParameters& params, Context& context)
|
||||||
parser[0], parser[1], true);
|
parser[0], parser[1], true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_client_name(const CommandParameters& params, Context& context)
|
void set_client_name(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
ParametersParser parser(params, OptionMap{},
|
ParametersParser parser(params, OptionMap{},
|
||||||
ParametersParser::Flags::None, 1, 1);
|
ParametersParser::Flags::None, 1, 1);
|
||||||
|
@ -758,7 +758,7 @@ void set_client_name(const CommandParameters& params, Context& context)
|
||||||
manager.set_client_name(manager.get_client(context), params[0]);
|
manager.set_client_name(manager.get_client(context), params[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_register(const CommandParameters& params, Context& context)
|
void set_register(CommandParameters params, Context& context)
|
||||||
{
|
{
|
||||||
if (params.size() != 2)
|
if (params.size() != 2)
|
||||||
throw wrong_argument_count();
|
throw wrong_argument_count();
|
||||||
|
@ -768,7 +768,7 @@ void set_register(const CommandParameters& params, Context& context)
|
||||||
RegisterManager::instance()[params[0][0]] = memoryview<String>(params[1]);
|
RegisterManager::instance()[params[0][0]] = memoryview<String>(params[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void change_working_directory(const CommandParameters& params, Context&)
|
void change_working_directory(CommandParameters params, Context&)
|
||||||
{
|
{
|
||||||
if (params.size() != 1)
|
if (params.size() != 1)
|
||||||
throw wrong_argument_count();
|
throw wrong_argument_count();
|
||||||
|
@ -780,7 +780,7 @@ void change_working_directory(const CommandParameters& params, Context&)
|
||||||
template<typename GetRootGroup>
|
template<typename GetRootGroup>
|
||||||
CommandCompleter group_rm_completer(GetRootGroup get_root_group)
|
CommandCompleter group_rm_completer(GetRootGroup get_root_group)
|
||||||
{
|
{
|
||||||
return [=](const Context& context, const CommandParameters& params,
|
return [=](const Context& context, CommandParameters params,
|
||||||
size_t token_to_complete, ByteCount pos_in_token) {
|
size_t token_to_complete, ByteCount pos_in_token) {
|
||||||
auto& root_group = get_root_group(context);
|
auto& root_group = get_root_group(context);
|
||||||
const String& arg = token_to_complete < params.size() ?
|
const String& arg = token_to_complete < params.size() ?
|
||||||
|
@ -796,7 +796,7 @@ CommandCompleter group_rm_completer(GetRootGroup get_root_group)
|
||||||
template<typename FactoryRegistry, typename GetRootGroup>
|
template<typename FactoryRegistry, typename GetRootGroup>
|
||||||
CommandCompleter group_add_completer(GetRootGroup get_root_group)
|
CommandCompleter group_add_completer(GetRootGroup get_root_group)
|
||||||
{
|
{
|
||||||
return [=](const Context& context, const CommandParameters& params,
|
return [=](const Context& context, CommandParameters params,
|
||||||
size_t token_to_complete, ByteCount pos_in_token) {
|
size_t token_to_complete, ByteCount pos_in_token) {
|
||||||
auto& root_group = get_root_group(context);
|
auto& root_group = get_root_group(context);
|
||||||
const String& arg = token_to_complete < params.size() ?
|
const String& arg = token_to_complete < params.size() ?
|
||||||
|
@ -842,7 +842,7 @@ public:
|
||||||
|
|
||||||
void print_status(const DisplayLine&) override {}
|
void print_status(const DisplayLine&) override {}
|
||||||
void draw(const DisplayBuffer&, const DisplayLine&) override {}
|
void draw(const DisplayBuffer&, const DisplayLine&) override {}
|
||||||
void menu_show(const memoryview<String>&,
|
void menu_show(memoryview<String>,
|
||||||
DisplayCoord, ColorPair, ColorPair, MenuStyle) override {}
|
DisplayCoord, ColorPair, ColorPair, MenuStyle) override {}
|
||||||
void menu_select(int) override {}
|
void menu_select(int) override {}
|
||||||
void menu_hide() override {}
|
void menu_hide() override {}
|
||||||
|
@ -887,7 +887,7 @@ void register_commands()
|
||||||
{
|
{
|
||||||
CommandManager& cm = CommandManager::instance();
|
CommandManager& cm = CommandManager::instance();
|
||||||
|
|
||||||
cm.register_commands({"nop"}, [](const CommandParameters&, Context&){});
|
cm.register_commands({"nop"}, [](CommandParameters, Context&){});
|
||||||
|
|
||||||
PerArgumentCommandCompleter filename_completer({
|
PerArgumentCommandCompleter filename_completer({
|
||||||
[](const Context& context, const String& prefix, ByteCount cursor_pos)
|
[](const Context& context, const String& prefix, ByteCount cursor_pos)
|
||||||
|
|
|
@ -93,7 +93,7 @@ void Editor::insert(const String& str, InsertMode mode)
|
||||||
check_invariant();
|
check_invariant();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Editor::insert(const memoryview<String>& strings, InsertMode mode)
|
void Editor::insert(memoryview<String> strings, InsertMode mode)
|
||||||
{
|
{
|
||||||
scoped_edition edition(*this);
|
scoped_edition edition(*this);
|
||||||
if (strings.empty())
|
if (strings.empty())
|
||||||
|
@ -542,7 +542,7 @@ void IncrementalInserter::insert(String content)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IncrementalInserter::insert(const memoryview<String>& strings)
|
void IncrementalInserter::insert(memoryview<String> strings)
|
||||||
{
|
{
|
||||||
auto& buffer = m_editor.buffer();
|
auto& buffer = m_editor.buffer();
|
||||||
for (size_t i = 0; i < m_editor.m_selections.size(); ++i)
|
for (size_t i = 0; i < m_editor.m_selections.size(); ++i)
|
||||||
|
|
|
@ -50,7 +50,7 @@ public:
|
||||||
|
|
||||||
void insert(const String& string,
|
void insert(const String& string,
|
||||||
InsertMode mode = InsertMode::Insert);
|
InsertMode mode = InsertMode::Insert);
|
||||||
void insert(const memoryview<String>& strings,
|
void insert(memoryview<String> strings,
|
||||||
InsertMode mode = InsertMode::Insert);
|
InsertMode mode = InsertMode::Insert);
|
||||||
|
|
||||||
void move_selections(LineCount move,
|
void move_selections(LineCount move,
|
||||||
|
@ -126,7 +126,7 @@ public:
|
||||||
~IncrementalInserter();
|
~IncrementalInserter();
|
||||||
|
|
||||||
void insert(String content);
|
void insert(String content);
|
||||||
void insert(const memoryview<String>& strings);
|
void insert(memoryview<String> strings);
|
||||||
void erase();
|
void erase();
|
||||||
void move_cursors(CharCount move);
|
void move_cursors(CharCount move);
|
||||||
void move_cursors(LineCount move);
|
void move_cursors(LineCount move);
|
||||||
|
|
|
@ -184,7 +184,7 @@ Buffer* create_buffer_from_file(String filename)
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void write(int fd, const memoryview<char>& data, const String& filename)
|
static void write(int fd, memoryview<char> data, const String& filename)
|
||||||
{
|
{
|
||||||
const char* ptr = data.pointer();
|
const char* ptr = data.pointer();
|
||||||
ssize_t count = data.size();
|
ssize_t count = data.size();
|
||||||
|
@ -228,7 +228,7 @@ void write_buffer_to_file(const Buffer& buffer, const String& filename)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String find_file(const String& filename, const memoryview<String>& paths)
|
String find_file(const String& filename, memoryview<String> paths)
|
||||||
{
|
{
|
||||||
for (auto candidate : paths)
|
for (auto candidate : paths)
|
||||||
{
|
{
|
||||||
|
|
|
@ -31,7 +31,7 @@ String compact_path(const String& filename);
|
||||||
String read_file(const String& filename);
|
String read_file(const String& filename);
|
||||||
Buffer* create_buffer_from_file(String filename);
|
Buffer* create_buffer_from_file(String filename);
|
||||||
void write_buffer_to_file(const Buffer& buffer, const String& filename);
|
void write_buffer_to_file(const Buffer& buffer, const String& filename);
|
||||||
String find_file(const String& filename, const memoryview<String>& paths);
|
String find_file(const String& filename, memoryview<String> paths);
|
||||||
|
|
||||||
std::vector<String> complete_filename(const String& prefix,
|
std::vector<String> complete_filename(const String& prefix,
|
||||||
const Regex& ignore_regex,
|
const Regex& ignore_regex,
|
||||||
|
|
|
@ -24,7 +24,7 @@ using FilterAndId = std::pair<String, FilterFunc>;
|
||||||
using FilterGroup = FunctionGroup<Buffer&, Selection&, String&>;
|
using FilterGroup = FunctionGroup<Buffer&, Selection&, String&>;
|
||||||
|
|
||||||
using FilterParameters = memoryview<String>;
|
using FilterParameters = memoryview<String>;
|
||||||
using FilterFactory = std::function<FilterAndId (const FilterParameters& params)>;
|
using FilterFactory = std::function<FilterAndId (FilterParameters params)>;
|
||||||
|
|
||||||
struct FilterRegistry : FunctionRegistry<FilterFactory>,
|
struct FilterRegistry : FunctionRegistry<FilterFactory>,
|
||||||
Singleton<FilterRegistry>
|
Singleton<FilterRegistry>
|
||||||
|
|
|
@ -99,7 +99,7 @@ private:
|
||||||
String m_replacement;
|
String m_replacement;
|
||||||
};
|
};
|
||||||
|
|
||||||
FilterAndId regex_filter_factory(const FilterParameters& params)
|
FilterAndId regex_filter_factory(FilterParameters params)
|
||||||
{
|
{
|
||||||
if (params.size() != 3)
|
if (params.size() != 3)
|
||||||
throw runtime_error("wrong parameter count");
|
throw runtime_error("wrong parameter count");
|
||||||
|
@ -114,7 +114,7 @@ class SimpleFilterFactory
|
||||||
public:
|
public:
|
||||||
SimpleFilterFactory(const String& id) : m_id(id) {}
|
SimpleFilterFactory(const String& id) : m_id(id) {}
|
||||||
|
|
||||||
FilterAndId operator()(const FilterParameters& params) const
|
FilterAndId operator()(FilterParameters params) const
|
||||||
{
|
{
|
||||||
return FilterAndId(m_id, FilterFunc(filter_func));
|
return FilterAndId(m_id, FilterFunc(filter_func));
|
||||||
}
|
}
|
||||||
|
@ -122,7 +122,7 @@ private:
|
||||||
String m_id;
|
String m_id;
|
||||||
};
|
};
|
||||||
|
|
||||||
FilterAndId filter_group_factory(const FilterParameters& params)
|
FilterAndId filter_group_factory(FilterParameters params)
|
||||||
{
|
{
|
||||||
if (params.size() != 1)
|
if (params.size() != 1)
|
||||||
throw runtime_error("wrong parameter count");
|
throw runtime_error("wrong parameter count");
|
||||||
|
|
|
@ -24,7 +24,7 @@ typedef std::function<void (const Window& window, DisplayBuffer& display_buffer)
|
||||||
typedef std::pair<String, HighlighterFunc> HighlighterAndId;
|
typedef std::pair<String, HighlighterFunc> HighlighterAndId;
|
||||||
typedef memoryview<String> HighlighterParameters;
|
typedef memoryview<String> HighlighterParameters;
|
||||||
|
|
||||||
using HighlighterFactory = std::function<HighlighterAndId (const HighlighterParameters& params,
|
using HighlighterFactory = std::function<HighlighterAndId (HighlighterParameters params,
|
||||||
Window& window)>;
|
Window& window)>;
|
||||||
|
|
||||||
using HighlighterGroup = FunctionGroup<const Window&, DisplayBuffer&>;
|
using HighlighterGroup = FunctionGroup<const Window&, DisplayBuffer&>;
|
||||||
|
|
|
@ -117,7 +117,7 @@ private:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
HighlighterAndId colorize_regex_factory(const HighlighterParameters params, const Window&)
|
HighlighterAndId colorize_regex_factory(HighlighterParameters params, const Window&)
|
||||||
{
|
{
|
||||||
if (params.size() < 2)
|
if (params.size() < 2)
|
||||||
throw runtime_error("wrong parameter count");
|
throw runtime_error("wrong parameter count");
|
||||||
|
@ -179,7 +179,7 @@ private:
|
||||||
RegexGetter m_regex_getter;
|
RegexGetter m_regex_getter;
|
||||||
};
|
};
|
||||||
|
|
||||||
HighlighterAndId highlight_search_factory(const HighlighterParameters params, const Window&)
|
HighlighterAndId highlight_search_factory(HighlighterParameters params, const Window&)
|
||||||
{
|
{
|
||||||
if (params.size() != 1)
|
if (params.size() != 1)
|
||||||
throw runtime_error("wrong parameter count");
|
throw runtime_error("wrong parameter count");
|
||||||
|
@ -198,7 +198,7 @@ HighlighterAndId highlight_search_factory(const HighlighterParameters params, co
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
HighlighterAndId highlight_regex_option_factory(const HighlighterParameters params, const Window& window)
|
HighlighterAndId highlight_regex_option_factory(HighlighterParameters params, const Window& window)
|
||||||
{
|
{
|
||||||
if (params.size() != 2)
|
if (params.size() != 2)
|
||||||
throw runtime_error("wrong parameter count");
|
throw runtime_error("wrong parameter count");
|
||||||
|
@ -446,7 +446,7 @@ private:
|
||||||
};
|
};
|
||||||
std::unordered_map<const Option*, std::weak_ptr<FlagLines::OptionUpdater>> FlagLines::ms_updaters;
|
std::unordered_map<const Option*, std::weak_ptr<FlagLines::OptionUpdater>> FlagLines::ms_updaters;
|
||||||
|
|
||||||
HighlighterAndId flag_lines_factory(const HighlighterParameters& params, Window& window)
|
HighlighterAndId flag_lines_factory(HighlighterParameters params, Window& window)
|
||||||
{
|
{
|
||||||
if (params.size() != 2)
|
if (params.size() != 2)
|
||||||
throw runtime_error("wrong parameter count");
|
throw runtime_error("wrong parameter count");
|
||||||
|
@ -460,7 +460,7 @@ class SimpleHighlighterFactory
|
||||||
public:
|
public:
|
||||||
SimpleHighlighterFactory(const String& id) : m_id(id) {}
|
SimpleHighlighterFactory(const String& id) : m_id(id) {}
|
||||||
|
|
||||||
HighlighterAndId operator()(const HighlighterParameters& params, const Window&) const
|
HighlighterAndId operator()(HighlighterParameters params, const Window&) const
|
||||||
{
|
{
|
||||||
return HighlighterAndId(m_id, HighlighterFunc(highlighter_func));
|
return HighlighterAndId(m_id, HighlighterFunc(highlighter_func));
|
||||||
}
|
}
|
||||||
|
@ -468,7 +468,7 @@ private:
|
||||||
String m_id;
|
String m_id;
|
||||||
};
|
};
|
||||||
|
|
||||||
HighlighterAndId highlighter_group_factory(const HighlighterParameters& params, const Window&)
|
HighlighterAndId highlighter_group_factory(HighlighterParameters params, const Window&)
|
||||||
{
|
{
|
||||||
if (params.size() != 1)
|
if (params.size() != 1)
|
||||||
throw runtime_error("wrong parameter count");
|
throw runtime_error("wrong parameter count");
|
||||||
|
|
|
@ -161,7 +161,7 @@ private:
|
||||||
class Menu : public InputMode
|
class Menu : public InputMode
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Menu(InputHandler& input_handler, const memoryview<String>& choices,
|
Menu(InputHandler& input_handler, memoryview<String> choices,
|
||||||
MenuCallback callback)
|
MenuCallback callback)
|
||||||
: InputMode(input_handler),
|
: InputMode(input_handler),
|
||||||
m_callback(callback), m_choices(choices.begin(), choices.end()),
|
m_callback(callback), m_choices(choices.begin(), choices.end()),
|
||||||
|
@ -269,7 +269,7 @@ private:
|
||||||
LineEditor m_filter_editor;
|
LineEditor m_filter_editor;
|
||||||
};
|
};
|
||||||
|
|
||||||
String common_prefix(const memoryview<String>& strings)
|
String common_prefix(memoryview<String> strings)
|
||||||
{
|
{
|
||||||
String res;
|
String res;
|
||||||
if (strings.empty())
|
if (strings.empty())
|
||||||
|
@ -879,7 +879,7 @@ void InputHandler::set_prompt_colors(ColorPair prompt_colors)
|
||||||
prompt->set_prompt_colors(prompt_colors);
|
prompt->set_prompt_colors(prompt_colors);
|
||||||
}
|
}
|
||||||
|
|
||||||
void InputHandler::menu(const memoryview<String>& choices,
|
void InputHandler::menu(memoryview<String> choices,
|
||||||
MenuCallback callback)
|
MenuCallback callback)
|
||||||
{
|
{
|
||||||
m_mode_trash.emplace_back(std::move(m_mode));
|
m_mode_trash.emplace_back(std::move(m_mode));
|
||||||
|
|
|
@ -57,7 +57,7 @@ public:
|
||||||
// abort or validation with corresponding MenuEvent value
|
// abort or validation with corresponding MenuEvent value
|
||||||
// returns to normal mode after validation if callback does
|
// returns to normal mode after validation if callback does
|
||||||
// not change the mode itself
|
// not change the mode itself
|
||||||
void menu(const memoryview<String>& choices,
|
void menu(memoryview<String> choices,
|
||||||
MenuCallback callback);
|
MenuCallback callback);
|
||||||
|
|
||||||
// execute callback on next keypress and returns to normal mode
|
// execute callback on next keypress and returns to normal mode
|
||||||
|
|
|
@ -413,7 +413,7 @@ void NCursesUI::draw_menu()
|
||||||
redraw();
|
redraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
void NCursesUI::menu_show(const memoryview<String>& choices,
|
void NCursesUI::menu_show(memoryview<String> choices,
|
||||||
DisplayCoord anchor, ColorPair fg, ColorPair bg,
|
DisplayCoord anchor, ColorPair fg, ColorPair bg,
|
||||||
MenuStyle style)
|
MenuStyle style)
|
||||||
{
|
{
|
||||||
|
|
|
@ -26,7 +26,7 @@ public:
|
||||||
bool is_key_available() override;
|
bool is_key_available() override;
|
||||||
Key get_key() override;
|
Key get_key() override;
|
||||||
|
|
||||||
void menu_show(const memoryview<String>& choices,
|
void menu_show(memoryview<String> choices,
|
||||||
DisplayCoord anchor, ColorPair fg, ColorPair bg,
|
DisplayCoord anchor, ColorPair fg, ColorPair bg,
|
||||||
MenuStyle style) override;
|
MenuStyle style) override;
|
||||||
void menu_select(int selected) override;
|
void menu_select(int selected) override;
|
||||||
|
|
|
@ -109,7 +109,7 @@ struct TupleOptionDetail
|
||||||
tuple_separator + escape(option_to_string(std::get<I>(opt)), tuple_separator, '\\');
|
tuple_separator + escape(option_to_string(std::get<I>(opt)), tuple_separator, '\\');
|
||||||
}
|
}
|
||||||
|
|
||||||
static void from_string(const memoryview<String>& elems, std::tuple<Types...>& opt)
|
static void from_string(memoryview<String> elems, std::tuple<Types...>& opt)
|
||||||
{
|
{
|
||||||
option_from_string(elems[I], std::get<I>(opt));
|
option_from_string(elems[I], std::get<I>(opt));
|
||||||
TupleOptionDetail<I-1, Types...>::from_string(elems, opt);
|
TupleOptionDetail<I-1, Types...>::from_string(elems, opt);
|
||||||
|
@ -124,7 +124,7 @@ struct TupleOptionDetail<0, Types...>
|
||||||
return option_to_string(std::get<0>(opt));
|
return option_to_string(std::get<0>(opt));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void from_string(const memoryview<String>& elems, std::tuple<Types...>& opt)
|
static void from_string(memoryview<String> elems, std::tuple<Types...>& opt)
|
||||||
{
|
{
|
||||||
option_from_string(elems[0], std::get<0>(opt));
|
option_from_string(elems[0], std::get<0>(opt));
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ class Register
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~Register() {}
|
virtual ~Register() {}
|
||||||
virtual Register& operator=(const memoryview<String>& values) = 0;
|
virtual Register& operator=(memoryview<String> values) = 0;
|
||||||
|
|
||||||
virtual memoryview<String> values(const Context& context) = 0;
|
virtual memoryview<String> values(const Context& context) = 0;
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,7 +11,7 @@ namespace Kakoune
|
||||||
class StaticRegister : public Register
|
class StaticRegister : public Register
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Register& operator=(const memoryview<String>& values) override
|
Register& operator=(memoryview<String> values) override
|
||||||
{
|
{
|
||||||
m_content = std::vector<String>(values.begin(), values.end());
|
m_content = std::vector<String>(values.begin(), values.end());
|
||||||
return *this;
|
return *this;
|
||||||
|
@ -40,7 +40,7 @@ public:
|
||||||
DynamicRegister(RegisterRetriever function)
|
DynamicRegister(RegisterRetriever function)
|
||||||
: m_function(std::move(function)) {}
|
: m_function(std::move(function)) {}
|
||||||
|
|
||||||
Register& operator=(const memoryview<String>& values) override
|
Register& operator=(memoryview<String> values) override
|
||||||
{
|
{
|
||||||
throw runtime_error("this register is not assignable");
|
throw runtime_error("this register is not assignable");
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,7 +62,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void write(const memoryview<T>& view)
|
void write(memoryview<T> view)
|
||||||
{
|
{
|
||||||
write<uint32_t>(view.size());
|
write<uint32_t>(view.size());
|
||||||
for (auto& val : view)
|
for (auto& val : view)
|
||||||
|
@ -213,7 +213,7 @@ public:
|
||||||
|
|
||||||
void print_status(const DisplayLine& status) override;
|
void print_status(const DisplayLine& status) override;
|
||||||
|
|
||||||
void menu_show(const memoryview<String>& choices,
|
void menu_show(memoryview<String> choices,
|
||||||
DisplayCoord anchor, ColorPair fg, ColorPair bg,
|
DisplayCoord anchor, ColorPair fg, ColorPair bg,
|
||||||
MenuStyle style) override;
|
MenuStyle style) override;
|
||||||
void menu_select(int selected) override;
|
void menu_select(int selected) override;
|
||||||
|
@ -258,7 +258,7 @@ void RemoteUI::print_status(const DisplayLine& status)
|
||||||
msg.write(status);
|
msg.write(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RemoteUI::menu_show(const memoryview<String>& choices,
|
void RemoteUI::menu_show(memoryview<String> choices,
|
||||||
DisplayCoord anchor, ColorPair fg, ColorPair bg,
|
DisplayCoord anchor, ColorPair fg, ColorPair bg,
|
||||||
MenuStyle style)
|
MenuStyle style)
|
||||||
{
|
{
|
||||||
|
|
|
@ -17,7 +17,7 @@ ShellManager::ShellManager()
|
||||||
}
|
}
|
||||||
|
|
||||||
String ShellManager::eval(const String& cmdline, const Context& context,
|
String ShellManager::eval(const String& cmdline, const Context& context,
|
||||||
const memoryview<String>& params,
|
memoryview<String> params,
|
||||||
const EnvVarMap& env_vars)
|
const EnvVarMap& env_vars)
|
||||||
{
|
{
|
||||||
return pipe("", cmdline, context, params, env_vars);
|
return pipe("", cmdline, context, params, env_vars);
|
||||||
|
@ -25,7 +25,7 @@ String ShellManager::eval(const String& cmdline, const Context& context,
|
||||||
|
|
||||||
String ShellManager::pipe(const String& input,
|
String ShellManager::pipe(const String& input,
|
||||||
const String& cmdline, const Context& context,
|
const String& cmdline, const Context& context,
|
||||||
const memoryview<String>& params,
|
memoryview<String> params,
|
||||||
const EnvVarMap& env_vars)
|
const EnvVarMap& env_vars)
|
||||||
{
|
{
|
||||||
int write_pipe[2]; // child stdin
|
int write_pipe[2]; // child stdin
|
||||||
|
|
|
@ -19,12 +19,12 @@ public:
|
||||||
ShellManager();
|
ShellManager();
|
||||||
|
|
||||||
String eval(const String& cmdline, const Context& context,
|
String eval(const String& cmdline, const Context& context,
|
||||||
const memoryview<String>& params,
|
memoryview<String> params,
|
||||||
const EnvVarMap& env_vars);
|
const EnvVarMap& env_vars);
|
||||||
|
|
||||||
String pipe(const String& input,
|
String pipe(const String& input,
|
||||||
const String& cmdline, const Context& context,
|
const String& cmdline, const Context& context,
|
||||||
const memoryview<String>& params,
|
memoryview<String> params,
|
||||||
const EnvVarMap& env_vars);
|
const EnvVarMap& env_vars);
|
||||||
|
|
||||||
void register_env_var(const String& regex, EnvVarRetriever retriever);
|
void register_env_var(const String& regex, EnvVarRetriever retriever);
|
||||||
|
|
|
@ -28,7 +28,7 @@ public:
|
||||||
virtual ~UserInterface() {}
|
virtual ~UserInterface() {}
|
||||||
virtual void print_status(const DisplayLine& status) = 0;
|
virtual void print_status(const DisplayLine& status) = 0;
|
||||||
|
|
||||||
virtual void menu_show(const memoryview<String>& choices,
|
virtual void menu_show(memoryview<String> choices,
|
||||||
DisplayCoord anchor, ColorPair fg, ColorPair bg,
|
DisplayCoord anchor, ColorPair fg, ColorPair bg,
|
||||||
MenuStyle style) = 0;
|
MenuStyle style) = 0;
|
||||||
virtual void menu_select(int selected) = 0;
|
virtual void menu_select(int selected) = 0;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user