def do_hello(): global hello_sarting if hello_sarting: return hello_sarting = True tid = gs.begin(DOMAIN, 'Starting Gocode', False) call_cmd([mg9.GOCODE_BIN]) gs.end(tid) margo_cmd = list(gs.setting('margo_cmd', [])) margo_cmd = [ mg9.MARGO0_BIN, "-d", "-call", "replace", "-addr", gs.setting('margo_addr', '') ] tid = gs.begin(DOMAIN, 'Starting MarGo', False) out, err, _ = gs.runcmd(margo_cmd) gs.end(tid) out = out.strip() err = err.strip() if err: gs.notice(DOMAIN, err) elif out: gs.println(DOMAIN, 'MarGo started %s' % out) hello_sarting = False
def do_hello(): global hello_sarting if hello_sarting: return hello_sarting = True tid = gs.begin(DOMAIN, 'Starting Gocode', False) call_cmd(['gocode']) gs.end(tid) margo_cmd = list(gs.setting('margo_cmd', [])) if margo_cmd: margo_cmd.extend([ "-d", "-call", "replace", "-addr", gs.setting('margo_addr', '') ]) tid = gs.begin(DOMAIN, 'Starting MarGo', False) out, err, _ = gs.runcmd(margo_cmd) gs.end(tid) out = out.strip() err = err.strip() if err: gs.notice(DOMAIN, err) elif out: gs.notice(DOMAIN, 'MarGo started %s' % out) hello_sarting = False else: err = 'Missing `margo_cmd`' gs.notice("MarGo", err) hello_sarting = False
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 cmd_9(view, edit, args, wd, r): if len(args) == 1 and args[0] == "play": dmn = '%s: 9 play' % DOMAIN cid = '9play-%s' % uuid.uuid4() def cancel(): mg9.acall('kill', {'cid': cid}, None) tid = gs.begin(dmn, "9 play", set_status=False, cancel=cancel) def cb(res, err): out = '\n'.join(s for s in (res.get('out'), res.get('err')) if s) if not out: out = err def f(): gs.end(tid) view.insert(edit, r.end(), '\n%s' % out) view.run_command('gs_commander_init') sublime.set_timeout(f, 0) a = { 'cid': cid, 'env': gs.env(), 'dir': wd, } av = sublime.active_window().active_view() if av and not av.file_name() and gs.is_go_source_view(av, False): a['src'] = av.substr(sublime.Region(0, av.size())) mg9.acall('play', a, cb) else: view.insert(edit, r.end(), ('Invalid args %s' % args)) view.run_command('gs_commander_init')
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 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 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 run(self): while True: try: f, msg = self.q.get() tid = gs.begin(self.domain, msg, False) try: f() except Exception: gs.notice(self.domain, traceback.format_exc()) except: pass 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': gs.env(), 'tabIndent': gs.setting('fmt_tab_indent'), 'tabWidth': gs.setting('fmt_tab_width'), }, 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 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 _9_begin_call(name, view, edit, args, wd, rkey): dmn = '%s: 9 %s' % (DOMAIN, name) msg = '[ %s ] # 9 %s' % (wd, ' '.join(args)) cid = '9%s-%s' % (name, uuid.uuid4()) tid = gs.begin(dmn, msg, set_status=False, cancel=lambda: mg9.acall('kill', {'cid': cid}, None)) 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 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 _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)) 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 do_post_save(view): if not gs.is_pkg_view(view): return domain = 'GoSublime-On-Save' 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) gs.println(msg) try: view.run_command(cmd, args) except Exception as ex: gs.notice(domain, 'Error %s' % ex) finally: gs.end(tid)
def do_hello(): global hello_sarting if hello_sarting: return hello_sarting = True margo_cmd = [ mg9.MARGO0_BIN, "-d", "-call", "replace", "-addr", gs.setting('margo_addr', '') ] tid = gs.begin(DOMAIN, 'Starting MarGo', False) out, err, _ = gsshell.run(margo_cmd) gs.end(tid) out = out.strip() err = err.strip() if err: gs.notice(DOMAIN, err) elif out: gs.println(DOMAIN, 'MarGo started %s' % out) hello_sarting = False