diff --git a/lix/libcmd/command.hh b/lix/libcmd/command.hh index 96e707c1f..055c4a451 100644 --- a/lix/libcmd/command.hh +++ b/lix/libcmd/command.hh @@ -7,6 +7,7 @@ #include "lix/libcmd/common-eval-args.hh" #include "lix/libstore/path.hh" #include "lix/libexpr/flake/lockfile.hh" +#include "lix/libutil/async.hh" #include @@ -357,7 +358,9 @@ void completeFlakeInputPath( const std::vector & flakeRefs, std::string_view prefix); -void completeFlakeRef(AddCompletions & completions, ref store, std::string_view prefix); +void completeFlakeRef( + AsyncIoRoot & aio, AddCompletions & completions, ref store, std::string_view prefix +); void completeFlakeRefWithFragment( AddCompletions & completions, diff --git a/lix/libcmd/common-eval-args.cc b/lix/libcmd/common-eval-args.cc index 1663ee0f6..4803ed8ca 100644 --- a/lix/libcmd/common-eval-args.cc +++ b/lix/libcmd/common-eval-args.cc @@ -155,7 +155,7 @@ MixEvalArgs::MixEvalArgs() fetchers::overrideRegistry(from.input, to.input, extraAttrs); }}, .completer = {[&](AddCompletions & completions, size_t, std::string_view prefix) { - completeFlakeRef(completions, aio().blockOn(openStore()), prefix); + completeFlakeRef(aio(), completions, aio().blockOn(openStore()), prefix); }} }); diff --git a/lix/libcmd/installables.cc b/lix/libcmd/installables.cc index 5781eee21..2d9dfb45d 100644 --- a/lix/libcmd/installables.cc +++ b/lix/libcmd/installables.cc @@ -3,6 +3,7 @@ #include "lix/libcmd/installable-derived-path.hh" #include "lix/libcmd/installable-attr-path.hh" #include "lix/libcmd/installable-flake.hh" +#include "lix/libutil/async.hh" #include "lix/libutil/logging.hh" #include "lix/libstore/outputs-spec.hh" #include "lix/libcmd/command.hh" @@ -90,7 +91,7 @@ MixFlakeOptions::MixFlakeOptions() completions, *getEvaluator()->begin(aio()), getFlakeRefsForCompletion(), prefix ); } else if (n == 1) { - completeFlakeRef(completions, getEvaluator()->store, prefix); + completeFlakeRef(aio(), completions, getEvaluator()->store, prefix); } }} }); @@ -139,7 +140,7 @@ MixFlakeOptions::MixFlakeOptions() } }}, .completer = {[&](AddCompletions & completions, size_t, std::string_view prefix) { - completeFlakeRef(completions, getEvaluator()->store, prefix); + completeFlakeRef(aio(), completions, getEvaluator()->store, prefix); }} }); } @@ -282,7 +283,7 @@ void completeFlakeRefWithFragment( try { auto hash = prefix.find('#'); if (hash == std::string::npos) { - completeFlakeRef(completions, evaluator->store, prefix); + completeFlakeRef(evalState.aio, completions, evaluator->store, prefix); } else { completions.setType(AddCompletions::Type::Attrs); @@ -349,7 +350,9 @@ void completeFlakeRefWithFragment( } } -void completeFlakeRef(AddCompletions & completions, ref store, std::string_view prefix) +void completeFlakeRef( + AsyncIoRoot & aio, AddCompletions & completions, ref store, std::string_view prefix +) { if (!experimentalFeatureSettings.isEnabled(Xp::Flakes)) return; diff --git a/lix/nix/bundle.cc b/lix/nix/bundle.cc index 94628992f..79bcc7112 100644 --- a/lix/nix/bundle.cc +++ b/lix/nix/bundle.cc @@ -22,7 +22,7 @@ struct CmdBundle : InstallableCommand .labels = {"flake-url"}, .handler = {&bundler}, .completer = {[&](AddCompletions & completions, size_t, std::string_view prefix) { - completeFlakeRef(completions, getStore(), prefix); + completeFlakeRef(aio(), completions, getStore(), prefix); }} }); diff --git a/lix/nix/flake.cc b/lix/nix/flake.cc index 8133a491f..3bd3491ed 100644 --- a/lix/nix/flake.cc +++ b/lix/nix/flake.cc @@ -41,7 +41,7 @@ public: .optional = true, .handler = {&flakeUrl}, .completer = {[&](AddCompletions & completions, size_t, std::string_view prefix) { - completeFlakeRef(completions, getStore(), prefix); + completeFlakeRef(aio(), completions, getStore(), prefix); }} }); } @@ -83,7 +83,7 @@ public: .labels={"flake-url"}, .handler={&flakeUrl}, .completer = {[&](AddCompletions & completions, size_t, std::string_view prefix) { - completeFlakeRef(completions, getStore(), prefix); + completeFlakeRef(aio(), completions, getStore(), prefix); }} }); expectArgs({ diff --git a/lix/nix/registry.cc b/lix/nix/registry.cc index caba6849f..df2bc17d9 100644 --- a/lix/nix/registry.cc +++ b/lix/nix/registry.cc @@ -184,7 +184,7 @@ struct CmdRegistryPin : RegistryCommand, EvalCommand .optional = true, .handler = {&locked}, .completer = {[&](AddCompletions & completions, size_t, std::string_view prefix) { - completeFlakeRef(completions, getStore(), prefix); + completeFlakeRef(aio(), completions, getStore(), prefix); }} }); }