def bootstrap_rplugins_io() -> Do: vr = yield installable_plugins() dir = yield Ribo.setting(venv_dir) global_interpreter = yield Ribo.setting_raw(interpreter) ios = yield vr.traverse( lambda a: bootstrap_rplugin(a, dir, global_interpreter.to_maybe) (a.meta), NS) yield NS.pure(GatherIOs(ios, timeout=30))
def install_plugins_result( results: List[Either[IOException, SubprocessResult[str]]] ) -> NS[Env, Tuple[List[SubprocessResult[str]], List[str]]]: venvs = results.flat_map(lambda a: a.cata(ReplaceVal(Nil), List)) errors = results.flat_map(lambda a: a.cata(List, ReplaceVal(Nil))) log.debug(f'installed plugins: {venvs}') if errors: log.debug(f'error installing plugins: {errors}') return NS.pure((venvs, errors))
def deactivate_rplugin(active_rplugin: ActiveRplugin) -> Do: rplugin = active_rplugin.rplugin meta = active_rplugin.meta cname = camelcaseify(rplugin.name) rpc_triggers_fun = f'{cname}RpcTriggers' triggers = yield NS.lift(nvim_call_json(rpc_triggers_fun)) yield NS.modify(lambda a: a.deactivate_rplugin(meta)) yield NS.lift(stop_rplugin(rplugin.name, meta.channel, triggers)) log.debug(f'deactivated {active_rplugin}') yield NS.pure(None)
def dir(self, a: HsStackDirRplugin ) -> NS[CrmRibosome, GatherItem[Tuple[str, bool]]]: return NS.pure(GatherIO(IO.pure((self.rplugin.name, False))))
def hackage( self, a: HsHackageRplugin ) -> NS[CrmRibosome, GatherItem[Tuple[str, bool]]]: exe = cabal_rplugin_executable(self.rplugin) return NS.pure(GatherIO(IO.pure((self.rplugin.name, exe.is_file()))))
def reboot_test() -> NS[None, None]: return NS.pure(17)
def ext_test() -> NS[None, int]: return NS.pure(23)
def test() -> NS[None, int]: import extra_path return NS.pure(13)
def test() -> NS[None, int]: return NS.pure(13)
def bootstrap_hs_rplugin(rplugin: InstallableRplugin, meta: HsInstallableRplugin) -> None: yield NS.pure(IO.pure(rplugin.rplugin.name))
def installing_message(rplugins: List[str]) -> Do: yield NS.pure(Echo.none() if rplugins.empty else Echo. info(resources.installing_plugins(rplugins)))