コード例 #1
0
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
コード例 #2
0
ファイル: gsdepends.py プロジェクト: muchenshou/GoSublime
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
コード例 #3
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())
コード例 #4
0
ファイル: gscommander.py プロジェクト: polaris1119/GoSublime
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')
コード例 #5
0
ファイル: gsq.py プロジェクト: optionalg/sublime-support
 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)
コード例 #6
0
ファイル: gsq.py プロジェクト: quarnster/GoSublime
 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)
コード例 #7
0
ファイル: mg9.py プロジェクト: ski/GoSublime
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)
コード例 #8
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)
コード例 #9
0
ファイル: mg9.py プロジェクト: ski/GoSublime
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)
コード例 #10
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)
コード例 #11
0
ファイル: mg9.py プロジェクト: ski/GoSublime
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)
コード例 #12
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)
コード例 #13
0
ファイル: gsq.py プロジェクト: optionalg/sublime-support
    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)
コード例 #14
0
ファイル: gsq.py プロジェクト: pyoner/GoSublime
	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)
コード例 #15
0
ファイル: gsq.py プロジェクト: quarnster/GoSublime
    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)
コード例 #16
0
ファイル: mg9.py プロジェクト: ski/GoSublime
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)
コード例 #17
0
    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)
コード例 #18
0
ファイル: gsev.py プロジェクト: ntcong/sublime-text-2-config
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)
コード例 #19
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)
コード例 #20
0
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
コード例 #21
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)
コード例 #22
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))

	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
コード例 #23
0
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)
コード例 #24
0
ファイル: gscommands.py プロジェクト: pyoner/GoSublime
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)
コード例 #25
0
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
コード例 #26
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())