summaryrefslogtreecommitdiff
path: root/src/command_manager.cc
diff options
context:
space:
mode:
authorJohannes Altmanninger <aclopte@gmail.com>2023-02-12 20:51:28 +0100
committerJohannes Altmanninger <aclopte@gmail.com>2023-02-17 20:50:58 +0100
commit213ea922b16bf95c5b441ce2cae2de6d221f638a (patch)
tree96cc2e01ea2702c7e9c480e5bee6538fefb6b816 /src/command_manager.cc
parent9e0502a1ca234bd20e17f078e75c3d5da4687a82 (diff)
Complete arguments to "echo -to-file"
Including this here because grandparent parent commit broke completions for "edit -fifo".
Diffstat (limited to 'src/command_manager.cc')
-rw-r--r--src/command_manager.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/command_manager.cc b/src/command_manager.cc
index caae2776..22b365ea 100644
--- a/src/command_manager.cc
+++ b/src/command_manager.cc
@@ -831,7 +831,12 @@ Completions CommandManager::complete(const Context& context,
: Completions{start+1, cursor_pos, std::move(switches), Completions::Flags::Menu};
}
case ParametersParser::State::SwitchArgument:
- return Completions{};
+ {
+ const auto& switch_desc = command.param_desc.switches.get(raw_params.at(raw_params.size() - 2).substr(1_byte));
+ if (not *switch_desc.arg_completer)
+ return Completions{};
+ return offset_pos(requote((*switch_desc.arg_completer)(context, flags, raw_params.back(), pos_in_token), token.type), start);
+ }
case ParametersParser::State::Positional:
break;
}