コード例 #1
0
    def run(self):
        def f(res, err):
            if err:
                gs.notify(DOMAIN, err)
                return

            mats = {}
            args = {}
            decls = res.get('file_decls', [])
            decls.extend(res.get('pkg_decls', []))
            for d in decls:
                name = d['name']
                prefix, _ = match_prefix_name(name)
                if prefix and d['kind'] == 'func' and d['repr'] == '':
                    mats[True] = prefix
                    args[name] = name

            names = sorted(args.keys())
            ents = ['Run all tests and examples']
            for k in ['Test', 'Benchmark', 'Example']:
                if mats.get(k):
                    s = 'Run %ss Only' % k
                    ents.append(s)
                    if k == 'Benchmark':
                        args[s] = ['-test.run=none', '-test.bench="%s.*"' % k]
                    else:
                        args[s] = ['-test.run="%s.*"' % k]

            for k in names:
                ents.append(k)
                if k.startswith('Benchmark'):
                    args[k] = ['-test.run=none', '-test.bench="^%s$"' % k]
                else:
                    args[k] = ['-test.run="^%s$"' % k]

            def cb(i, win):
                if i >= 0:
                    a = args.get(ents[i], [])
                    win.active_view().run_command(
                        'gs9o_open', {'run': gs.lst('go', 'test', a)})

            gs.show_quick_panel(ents, cb)

        win, view = gs.win_view(None, self.window)
        if view is None:
            return

        vfn = gs.view_fn(view)
        src = gs.view_src(view)
        pkg_dir = ''
        if view.file_name():
            pkg_dir = os.path.dirname(view.file_name())

        mg9.declarations(vfn, src, pkg_dir, f)
コード例 #2
0
	def present_current(self):
		pkg_dir = ''
		view = gs.active_valid_go_view(win=self.window, strict=False)
		if view:
			if view.file_name():
				pkg_dir = os.path.dirname(view.file_name())
			vfn = gs.view_fn(view)
			src = gs.view_src(view)
		else:
			vfn = ''
			src = ''
		self.present(vfn, src, pkg_dir)
コード例 #3
0
    def run(self):
        def f(res, err):
            if err:
                gs.notify(DOMAIN, err)
                return

            mats = {}
            args = {}
            decls = res.get("file_decls", [])
            decls.extend(res.get("pkg_decls", []))
            for d in decls:
                name = d["name"]
                prefix, _ = match_prefix_name(name)
                if prefix and d["kind"] == "func" and d["repr"] == "":
                    mats[True] = prefix
                    args[name] = name

            names = sorted(args.keys())
            ents = ["Run all tests and examples"]
            for k in ["Test", "Benchmark", "Example"]:
                if mats.get(k):
                    s = "Run %ss Only" % k
                    ents.append(s)
                    if k == "Benchmark":
                        args[s] = ["-test.run=none", '-test.bench="%s.*"' % k]
                    else:
                        args[s] = ['-test.run="%s.*"' % k]

            for k in names:
                ents.append(k)
                if k.startswith("Benchmark"):
                    args[k] = ["-test.run=none", '-test.bench="^%s$"' % k]
                else:
                    args[k] = ['-test.run="^%s$"' % k]

            def cb(i, win):
                if i >= 0:
                    a = args.get(ents[i], [])
                    win.active_view().run_command("gs9o_open", {"run": gs.lst("go", "test", a)})

            gs.show_quick_panel(ents, cb)

        win, view = gs.win_view(None, self.window)
        if view is None:
            return

        vfn = gs.view_fn(view)
        src = gs.view_src(view)
        pkg_dir = ""
        if view.file_name():
            pkg_dir = os.path.dirname(view.file_name())

        mg9.declarations(vfn, src, pkg_dir, f)
コード例 #4
0
    def run(self):
        win, view = gs.win_view(None, self.window)
        if view is None:
            return

        mats = {}
        args = {}
        vfn = gs.view_fn(view)
        src = gs.view_src(view)
        pkg_dir = ''
        if view.file_name():
            pkg_dir = os.path.dirname(view.file_name())

        res, err = margo.declarations(vfn, src, pkg_dir)
        if err:
            gs.notice(DOMAIN, err)
            return

        decls = res.get('file_decls', [])
        decls.extend(res.get('pkg_decls', []))
        for d in decls:
            name = d['name']
            prefix, _ = match_prefix_name(name)
            if prefix and d['kind'] == 'func' and d['repr'] == '':
                mats[True] = prefix
                args[name] = name

        names = sorted(args.keys())
        ents = ['Run all tests and examples']
        for k in ['Test', 'Benchmark', 'Example']:
            if mats.get(k):
                s = 'Run %ss Only' % k
                ents.append(s)
                if k == 'Benchmark':
                    args[s] = '-test.run=none -test.bench=%s.*' % k
                else:
                    args[s] = '-test.run=%s.*' % k

        for k in names:
            ents.append(k)
            if k.startswith('Benchmark'):
                args[k] = '-test.run=none -test.bench=^%s$' % k
            else:
                args[k] = '-test.run=^%s$' % k

        def cb(i):
            if i >= 0:
                s = 'go test %s' % args.get(ents[i], '')
                win.run_command('gs_shell', {'run': s})

        win.show_quick_panel(ents, cb)
コード例 #5
0
ファイル: gstest.py プロジェクト: jbaikge/SublimeTextScripts
	def run(self):
		win, view = gs.win_view(None, self.window)
		if view is None:
			return

		mats = {}
		args = {}
		vfn = gs.view_fn(view)
		src = gs.view_src(view)
		pkg_dir = ''
		if view.file_name():
			pkg_dir = os.path.dirname(view.file_name())

		res, err = margo.declarations(vfn, src, pkg_dir)
		if err:
			gs.notice(DOMAIN, err)
			return

		decls = res.get('file_decls', [])
		decls.extend(res.get('pkg_decls', []))
		for d in decls:
			name = d['name']
			m = TEST_PAT.match(name)
			if m and d['kind'] == 'func' and d['repr'] == '':
				mats[m.group(1)] = True
				args[name] = name

		names = sorted(args.keys())
		ents = ['Run all tests and examples']
		for k in ['Test', 'Benchmark', 'Example']:
			if mats.get(k):
				s = 'Run %ss Only' % k
				ents.append(s)
				if k == 'Benchmark':
					args[s] = '-test.run=none -test.bench=%s.*' % k
				else:
					args[s] = '-test.run=%s.*' % k

		for k in names:
			ents.append(k)
			if k.startswith('Benchmark'):
				args[k] = '-test.run=none -test.bench=^%s$' % k
			else:
				args[k] = '-test.run=^%s$' % k

		def cb(i):
			if i >= 0:
				s = 'go test %s' % args.get(ents[i], '')
				win.run_command('gs_shell', {'run': s})

		win.show_quick_panel(ents, cb)
コード例 #6
0
ファイル: gspalette.py プロジェクト: ski/GoSublime
	def palette_declarations(self, view, direct=False):
		def f(res, err):
			if err:
				gs.notify('GsDeclarations', err)
			else:
				decls = res.get('file_decls', [])
				decls.sort(key=lambda v: v.get('row', 0))
				added = 0
				for i, v in enumerate(decls):
					loc = Loc(v['fn'], v['row'], v['col'])
					s = '%s %s' % (v['kind'], (v['repr'] or v['name']))
					self.add_item(s, self.jump_to, (view, loc))
					added += 1

			if added < 1:
				self.add_item(['', 'No declarations found'])

			self.do_show_panel()

		mg9.declarations(gs.view_fn(view), gs.view_src(view), '', f)
コード例 #7
0
    def palette_declarations(self, view, direct=False):
        def f(res, err):
            if err:
                gs.notify('GsDeclarations', err)
            else:
                decls = res.get('file_decls', [])
                decls.sort(key=lambda v: v.get('row', 0))
                added = 0
                for i, v in enumerate(decls):
                    loc = Loc(v['fn'], v['row'], v['col'])
                    s = '%s %s' % (v['kind'], (v['repr'] or v['name']))
                    self.add_item(s, self.jump_to, (view, loc))
                    added += 1

            if added < 1:
                self.add_item(['', 'No declarations found'])

            self.do_show_panel()

        mg9.declarations(gs.view_fn(view), gs.view_src(view), '', f)