def run(self): self.started = time.time() tid = gs.begin(DOMAIN, self.message, set_status=False, cancel=self.cancel) try: try: self.p = gs.popen( self.cmd, shell=self.shell, stderr=subprocess.STDOUT, environ=self.env, cwd=self.cwd, bufsize=1, ) CommandStdoutReader(self, self.p.stdout).start() except Exception as ex: self.x = ex finally: self.rcode = self.p.wait() if self.p else False finally: gs.end(tid) self.ended = time.time() self.on_done(self) for f in self.done: try: f(self) except Exception: gs.notice(DOMAIN, gs.traceback())
def _9_begin_call(name, view, edit, args, wd, rkey, cid): dmn = '%s: 9 %s' % (DOMAIN, name) msg = '[ %s ] # 9 %s' % (gs.simple_fn(wd), ' '.join(args)) if not cid: cid = '9%s-%s' % (name, uuid.uuid4()) tid = gs.begin(dmn, msg, set_status=False, cancel=lambda: mg9.acall('kill', {'cid': cid}, None)) tid_alias['%s-%s' % (name, wd)] = tid def cb(res, err): out = '\n'.join(s for s in (res.get('out'), res.get('err'), err) if s) tmp_fn = res.get('tmpFn') fn = res.get('fn') if fn and tmp_fn: bfn = os.path.basename(tmp_fn) repls = [ './%s' % bfn, '.\\%s' % bfn, tmp_fn, ] for s in repls: out = out.replace(s, fn) def f(): gs.end(tid) push_output(view, rkey, out, hourglass_repl='| done: %s' % res.get('dur', '')) sublime.set_timeout(f, 0) return cid, cb
def _9_begin_call(name, view, edit, args, wd, rkey, cid): dmn = "%s: 9 %s" % (DOMAIN, name) msg = "[ %s ] # 9 %s" % (gs.simple_fn(wd), " ".join(args)) if not cid: cid = "9%s-%s" % (name, uuid.uuid4()) tid = gs.begin(dmn, msg, set_status=False, cancel=lambda: mg9.acall("kill", {"cid": cid}, None)) tid_alias["%s-%s" % (name, wd)] = tid def cb(res, err): out = "\n".join(s for s in (res.get("out"), res.get("err"), err) if s) tmp_fn = res.get("tmpFn") fn = res.get("fn") if fn and tmp_fn: bfn = os.path.basename(tmp_fn) repls = ["./%s" % bfn, ".\\%s" % bfn, tmp_fn] for s in repls: out = out.replace(s, fn) def f(): gs.end(tid) push_output(view, rkey, out, hourglass_repl="| done: %s" % res.get("dur", "")) sublime.set_timeout(f, 0) return cid, cb
def run(self): self.started = time.time() tid = gs.begin(DOMAIN, self.message, set_status=False, cancel=self.cancel) try: try: self.p = gs.popen(self.cmd, shell=self.shell, stderr=subprocess.STDOUT, environ=self.env, cwd=self.cwd, bufsize=1) CommandStdoutReader(self, self.p.stdout).start() except Exception as ex: self.x = ex finally: self.rcode = self.p.wait() if self.p else False finally: gs.end(tid) self.ended = time.time() self.on_done(self) for f in self.done: try: f(self) except Exception: gs.notice(DOMAIN, gs.traceback())
def run(self): tid = gs.begin(self.domain, self.msg, self.set_status) try: self.f() # WARN (CEV): Error except Exception: gs.notice(self.domain, gs.traceback()) finally: gs.end(tid)
def run(self): tid = gs.begin(self.domain, self.msg, self.set_status) try: self.f() except Exception: gs.notice(self.domain, gs.traceback()) finally: gs.end(tid)
def import_paths(fn, src, f): tid = gs.begin(DOMAIN, "Fetching import paths") def cb(res, err): gs.end(tid) f(res, err) acall("import_paths", {"fn": fn or "", "src": src or "", "env": gs.env()}, cb)
def pkg_dirs(f): tid = gs.begin(DOMAIN, "Fetching pkg dirs") def cb(res, err): gs.end(tid) f(res, err) acall("pkg_dirs", {"env": sh.env()}, cb)
def declarations(fn, src, pkg_dir, f): tid = gs.begin(DOMAIN, "Fetching declarations") def cb(res, err): gs.end(tid) f(res, err) return acall("declarations", {"fn": fn or "", "src": src, "env": gs.env(), "pkgDir": pkg_dir}, cb)
def pkg_dirs(f): tid = gs.begin(DOMAIN, 'Fetching pkg dirs') def cb(res, err): gs.end(tid) f(res, err) acall('pkg_dirs', { 'env': sh.env(), }, cb)
def pkg_dirs(f): tid = gs.begin(DOMAIN, 'Fetching pkg dirs') def cb(res, err): gs.end(tid) f(res, err) acall('pkg_dirs', { 'env': gs.env(), }, cb)
def import_paths(fn, src, f): tid = gs.begin(DOMAIN, 'Fetching import paths') def cb(res, err): gs.end(tid) f(res, err) acall('import_paths', { 'fn': fn or '', 'src': src or '', 'env': gs.env(), }, cb)
def declarations(fn, src, pkg_dir, f): tid = gs.begin(DOMAIN, 'Fetching declarations') def cb(res, err): gs.end(tid) f(res, err) return acall('declarations', { 'fn': fn or '', 'src': src, 'env': gs.env(), 'pkgDir': pkg_dir, }, cb)
def import_paths(fn, src, f): tid = gs.begin(DOMAIN, 'Fetching import paths') def cb(res, err): gs.end(tid) f(res, err) acall('import_paths', { 'fn': fn or '', 'src': src or '', 'env': sh.env(), 'InstallSuffix': gs.setting('installsuffix', ''), }, cb)
def declarations(fn, src, pkg_dir, f): tid = gs.begin(DOMAIN, 'Fetching declarations') def cb(res, err): gs.end(tid) f(res, err) return acall('declarations', { 'fn': fn or '', 'src': src, 'env': sh.env(), 'pkgDir': pkg_dir, }, cb)
def calltip(fn, src, pos, quiet, f): tid = '' if not quiet: tid = gs.begin(DOMAIN, 'Fetching calltips') def cb(res, err): if tid: gs.end(tid) res = gs.dval(res.get('Candidates'), []) f(res, err) return acall('gocode_calltip', _complete_opts(fn, src, pos, True), cb)
def calltip(fn, src, pos, quiet, f): tid = "" if not quiet: tid = gs.begin(DOMAIN, "Fetching calltips") def cb(res, err): if tid: gs.end(tid) res = gs.dval(res.get("calltips"), []) f(res, err) return acall("gocode_calltip", _complete_opts(fn, src, pos), cb)
def calltip(fn, src, pos, quiet, f): tid = '' if not quiet: tid = gs.begin(DOMAIN, 'Fetching calltips') def cb(res, err): if tid: gs.end(tid) res = gs.dval(res.get('calltips'), []) f(res, err) return acall('gocode_calltip', _complete_opts(fn, src, pos), cb)
def import_paths(fn, src, f): tid = gs.begin(DOMAIN, 'Fetching import paths') def cb(res, err): gs.end(tid) f(res, err) acall('import_paths', { 'fn': fn or '', 'src': src or '', 'env': sh.env(), 'WantPkgNames': gs.setting('use_named_imports'), 'UseLegacyImports': gs.setting('use_legacy_imports'), }, cb)
def run(self): while True: try: f, msg, set_status = self.q.get() tid = gs.begin(self.domain, msg, set_status) try: f() except Exception: gs.notice(self.domain, gs.traceback()) except: pass gs.end(tid)
def _init_go_bin(): global GO_BIN if GO_BIN: return tid = gs.begin(DOMAIN, 'Looking for go') GO_BIN = gs.which('go') if not GO_BIN: _init_shell_path() GO_BIN = gs.which('go') gs.end(tid)
def doc(fn, src, offset, f): tid = gs.begin(DOMAIN, 'Fetching doc info') def cb(res, err): gs.end(tid) f(res, err) acall('doc', { 'fn': fn or '', 'src': src or '', 'offset': offset or 0, 'env': sh.env(), 'tabIndent': gs.setting('fmt_tab_indent'), 'tabWidth': gs.setting('fmt_tab_width'), }, cb)
def import_paths(fn, src, f): tid = gs.begin(DOMAIN, 'Fetching import paths') def cb(res, err): gs.end(tid) f(res, err) acall( 'import_paths', { 'fn': fn or '', 'src': src or '', 'env': sh.env(), 'InstallSuffix': gs.setting('installsuffix', ''), }, cb)
def doc(fn, src, offset, f): tid = gs.begin(DOMAIN, 'Fetching doc info') def cb(res, err): gs.end(tid) f(res, err) acall('doc', { 'fn': fn or '', 'src': src or '', 'offset': offset or 0, 'env': gs.env(), 'tabIndent': gs.setting('fmt_tab_indent'), 'tabWidth': gs.setting('fmt_tab_width'), }, cb)
def a_pkgpaths(exclude, f): tid = gs.begin(DOMAIN, '') def cb(res, err): gs.end(tid) f(res, err) m = sh.env() acall('pkgpaths', { 'env': { 'GOPATH': m.get('GOPATH'), 'GOROOT': m.get('GOROOT'), '_pathsep': m.get('_pathsep'), }, 'exclude': exclude, }, cb)
def a_pkgpaths(exclude, f): tid = gs.begin(DOMAIN, '') def cb(res, err): gs.end(tid) f(res, err) m = sh.env() acall('pkgpaths', { 'env': { 'GOPATH': m.get('GOPATH'), 'GOROOT': m.get('GOROOT'), }, 'exclude': exclude, 'WantPkgNames': gs.setting('use_named_imports'), }, cb)
def do_post_save(view): if not gs.is_pkg_view(view): return for c in gs.setting('on_save', []): cmd = c.get('cmd', '') args = c.get('args', {}) msg = 'running on_save command %s' % cmd tid = gs.begin(DOMAIN, msg, set_status=False) try: view.run_command(cmd, args) except Exception as ex: gs.notice(DOMAIN, 'Error %s' % ex) finally: gs.end(tid)
def _init_go_version(): global GO_VERSION if GO_VERSION and GO_VERSION != about.DEFAULT_GO_VERSION: return tid = gs.begin(DOMAIN, 'Finding go version') bin = _go_bin() if bin: out, _, _ = gsshell.run(['go', 'version'], stderr=subprocess.STDOUT, env=gs.env()) m = about.GO_VERSION_OUTPUT_PAT.search(out) if m: GO_VERSION = '-'.join(s for s in m.groups() if s) gs.end(tid)
def _9_begin_call(name, view, edit, args, wd, rkey, cid): dmn = '%s: 9 %s' % (DOMAIN, name) msg = '[ %s ] # 9 %s' % (wd, ' '.join(args)) if not cid: cid = '9%s-%s' % (name, uuid.uuid4()) tid = gs.begin(dmn, msg, set_status=False, cancel=lambda: mg9.acall('kill', {'cid': cid}, None)) tid_alias['%s-%s' % (name, wd)] = tid def cb(res, err): out = '\n'.join(s for s in (res.get('out'), res.get('err'), err) if s) def f(): gs.end(tid) push_output(view, rkey, out, hourglass_repl='| done: %s' % res.get('dur', '')) sublime.set_timeout(f, 0) return cid, cb
def import_paths(fn, src, f): tid = gs.begin(DOMAIN, "Fetching import paths") def cb(res, err): gs.end(tid) f(res, err) acall( "import_paths", { "fn": fn or "", "src": src or "", "env": sh.env(), "InstallSuffix": gs.setting("installsuffix", ""), }, cb, )
def doc(fn, src, offset, f, mode='doc'): tid = gs.begin(DOMAIN, 'Fetching doc info') def cb(res, err): gs.end(tid) f(res, err) #default to doc if mode not in ['usage', 'doc']: mode = 'doc' acall(mode, { 'fn': fn or '', 'src': src or '', 'offset': offset or 0, 'env': sh.env(), 'tabIndent': gs.setting('fmt_tab_indent'), 'tabWidth': gs.setting('fmt_tab_width'), }, cb)
def doc(fn, src, offset, f): tid = gs.begin(DOMAIN, "Fetching doc info") def cb(res, err): gs.end(tid) f(res, err) acall( "doc", { "fn": fn or "", "src": src or "", "offset": offset or 0, "env": sh.env(), "tabIndent": gs.setting("fmt_tab_indent"), "tabWidth": gs.setting("fmt_tab_width"), }, cb, )
def calltip(fn, src, pos, quiet, f): tid = '' if not quiet: tid = gs.begin(DOMAIN, 'Fetching calltips') def cb(res, err): if tid: gs.end(tid) res = gs.dval(res.get('Candidates'), []) f(res, err) global lastInstallTime forceInstall = False if time.time() - lastInstallTime > 60: lastInstallTime = time.time() forceInstall = True return acall('gocode_calltip', _complete_opts(fn, src, pos, True, forceInstall = forceInstall), cb)
def calltip(fn, src, pos, quiet, f): tid = "" if not quiet: tid = gs.begin(DOMAIN, "Fetching calltips") def cb(res, err): if tid: gs.end(tid) res = gs.dval(res.get("Candidates"), []) calltip_cache.set(fn, src, pos, res, err) f(res, err) res, err, ok = calltip_cache.get(fn, src, pos) if ok: if tid: gs.end(tid) f(res, err) return return acall("gocode_calltip", _complete_opts(fn, src, pos, True), cb)
def calltip(fn, src, pos, quiet, f): tid = '' if not quiet: tid = gs.begin(DOMAIN, 'Fetching calltips') def cb(res, err): if tid: gs.end(tid) res = gs.dval(res.get('Candidates'), []) f(res, err) global lastInstallTime forceInstall = False if time.time() - lastInstallTime > 60: lastInstallTime = time.time() forceInstall = True return acall('gocode_calltip', _complete_opts(fn, src, pos, True, forceInstall=forceInstall), cb)