diff options
author | Naïm Favier <n@monade.li> | 2022-06-20 04:15:38 +0200 |
---|---|---|
committer | Naïm Favier <n@monade.li> | 2022-07-11 15:13:51 +0200 |
commit | 711b2e1f48316d80853635408c518e3562a1fa37 (patch) | |
tree | dcb298bf9a252344e8e7dd947a5d029e4e6e131d /src/libutil/args.hh | |
parent | d6d0e781bbade76f6ea3f310cb36973f4013826d (diff) |
Fix flake input completion for `InstallablesCommand`s
Defers completion of flake inputs until the whole command line is parsed
so that we know what flakes we need to complete the inputs of.
Previously, `nix build flake --update-input <Tab>` always behaved like
`nix build . --update-input <Tab>`.
Diffstat (limited to 'src/libutil/args.hh')
-rw-r--r-- | src/libutil/args.hh | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libutil/args.hh b/src/libutil/args.hh index 07c017719..84866f12b 100644 --- a/src/libutil/args.hh +++ b/src/libutil/args.hh @@ -148,6 +148,11 @@ protected: argument (if any) have been processed. */ virtual void initialFlagsProcessed() {} + /* Called after the command line has been processed if we need to generate + completions. Useful for commands that need to know the whole command line + in order to know what completions to generate. */ + virtual void completionHook() { } + public: void addFlag(Flag && flag); @@ -223,6 +228,8 @@ public: bool processArgs(const Strings & args, bool finish) override; + void completionHook() override; + nlohmann::json toJSON() override; }; |