diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2012-08-06 21:37:43 +0200 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2012-08-06 21:37:43 +0200 |
| commit | a712dd5bbe8d2b4b433ce90f7d977acf762ad080 (patch) | |
| tree | f5d8b0b8f6d5724aa4f84cb173c1f01b753621c4 /src/command_manager.cc | |
| parent | 39797f87dc73675881854b38611489de1dba6b8f (diff) | |
Completions functions take a Context parameter
Diffstat (limited to 'src/command_manager.cc')
| -rw-r--r-- | src/command_manager.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/command_manager.cc b/src/command_manager.cc index 6b7a33bf..0ec579b3 100644 --- a/src/command_manager.cc +++ b/src/command_manager.cc @@ -229,7 +229,8 @@ void CommandManager::execute(const String& command_line, execute_single_command(params, context); } -Completions CommandManager::complete(const String& command_line, size_t cursor_pos) +Completions CommandManager::complete(const Context& context, + const String& command_line, size_t cursor_pos) { TokenPosList pos_info; TokenList tokens = parse(command_line, &pos_info); @@ -279,13 +280,14 @@ Completions CommandManager::complete(const String& command_line, size_t cursor_p std::vector<String> params; for (auto token_it = tokens.begin()+1; token_it != tokens.end(); ++token_it) params.push_back(token_it->content()); - result.candidates = command_it->second.completer(params, + result.candidates = command_it->second.completer(context, params, token_to_complete - 1, cursor_pos_in_token); return result; } -CandidateList PerArgumentCommandCompleter::operator()(const CommandParameters& params, +CandidateList PerArgumentCommandCompleter::operator()(const Context& context, + const CommandParameters& params, size_t token_to_complete, size_t pos_in_token) const { @@ -297,7 +299,7 @@ CandidateList PerArgumentCommandCompleter::operator()(const CommandParameters& p const String& argument = token_to_complete < params.size() ? params[token_to_complete] : String(); - return m_completers[token_to_complete](argument, pos_in_token); + return m_completers[token_to_complete](context, argument, pos_in_token); } } |
