def run(self, qAndaDict=None, **kwds): _async = kwds.pop("async", True) commands = kwds.pop("commands") run_mode = kwds.pop("run_mode", "capture_both") win_mode = kwds.pop("win_mode", "hide") run_opts = kwds.pop("run_opts", {}) dyn_report_mul = kwds.pop("dyn_report_mul", True) if qAndaDict: commands = [Str.renderText(cmd, **qAndaDict) for cmd in commands] commands = Setting.expandVariables(self.window, *commands) cwd, = Setting.expandVariables(self.window, run_opts.get("cwd", "${file_path}")) if cwd: run_opts["cwd"] = cwd workParams = dict(commands=commands, run_mode=run_mode, win_mode=win_mode, run_opts=run_opts, dyn_report_mul=dyn_report_mul ) print(workParams) if _async: view = self.window.active_view() self.asncCmdCount += 1 if run_mode != "run": view.set_status(ASYNC_STATUS_KEY, "***asnc command running***") self.doWorkAsnc(view, workParams, **kwds) else: self.doWork(**Data.mergeDicts(kwds, workParams))
def doWorkAsnc(self, view, workParams, **kwds): self.doWork(**Data.mergeDicts(kwds, workParams)) self.asncCmdCount -= 1 if self.asncCmdCount == 0: view.erase_status(ASYNC_STATUS_KEY)