Example #1
0
    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())
Example #2
0
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
Example #3
0
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
Example #4
0
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
Example #5
0
    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())
Example #6
0
 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)
Example #7
0
 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)
Example #8
0
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)
Example #9
0
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)
Example #10
0
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)
Example #11
0
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)
Example #12
0
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)
Example #13
0
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)
Example #14
0
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)
Example #15
0
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)
Example #16
0
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)
Example #17
0
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)
Example #18
0
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)
Example #19
0
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)
Example #20
0
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)
Example #21
0
    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)
Example #22
0
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)
Example #23
0
    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)
Example #24
0
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)
Example #25
0
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)
Example #26
0
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)
Example #27
0
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)
Example #28
0
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)
Example #29
0
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)
Example #30
0
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)
Example #31
0
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)
Example #32
0
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)
Example #33
0
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)
Example #34
0
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
Example #35
0
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,
    )
Example #36
0
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)
Example #37
0
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)
Example #38
0
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,
    )
Example #39
0
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)
Example #40
0
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)
Example #41
0
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)
Example #42
0
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