From 14b1fa00a3369880ec081a93133bb39f88925e4d Mon Sep 17 00:00:00 2001 From: DisposaBoy Date: Tue, 8 May 2018 17:41:49 +0100 Subject: [PATCH] sync margo --- src/margo.sh/Gopkg.lock | 28 +- src/margo.sh/Gopkg.toml | 14 +- src/margo.sh/cmdpkg/margosublime/main.go | 2 +- .../extension-example/extension-example.go | 8 +- src/margo.sh/format/format.go | 22 +- src/margo.sh/golang/common.go | 10 +- src/margo.sh/golang/gocmd.go | 6 +- src/margo.sh/golang/gocode.go | 16 +- src/margo.sh/golang/gocode_calltips.go | 2 +- src/margo.sh/golang/gofmt.go | 14 +- src/margo.sh/golang/guru.go | 133 + .../golang/internal/gocode/bridge._margo_.go | 4 - src/margo.sh/golang/lint.go | 169 +- src/margo.sh/golang/snippets.go | 8 +- src/margo.sh/golang/syntaxcheck.go | 42 +- src/margo.sh/js/jsonfmt.go | 13 +- src/margo.sh/mg/action.go | 29 +- src/margo.sh/mg/agent.go | 6 +- src/margo.sh/mg/builtins.go | 2 +- src/margo.sh/mg/client-actions.go | 21 +- src/margo.sh/mg/cmd.go | 15 +- src/margo.sh/mg/cmd_internal_test.go | 2 +- src/margo.sh/mg/common.go | 10 +- src/margo.sh/mg/ctx.go | 165 + src/margo.sh/mg/issue.go | 116 +- src/margo.sh/mg/issue_test.go | 4 +- src/margo.sh/mg/langs.go | 50 + src/margo.sh/mg/lint.go | 129 + src/margo.sh/mg/reducers.go | 203 +- src/margo.sh/mg/restart.go | 133 + src/margo.sh/mg/state.go | 162 +- src/margo.sh/mg/store.go | 49 +- src/margo.sh/mg/tasks.go | 19 +- src/margo.sh/mg/view.go | 26 +- src/margo.sh/{misc/pf/pf.go => mgpf/mgpf.go} | 2 +- .../pprof/pprofdo/pprofdo-fallback.go | 0 .../{misc => mgpf}/pprof/pprofdo/pprofdo.go | 0 .../pprof/pprofhttp/pprofhttp.go | 0 src/margo.sh/sublime/config.go | 4 +- .../x/crypto/blake2b/blake2bAVX2_amd64.s | 12 - .../vendor/golang.org/x/tools/AUTHORS | 3 + .../vendor/golang.org/x/tools/CONTRIBUTORS | 3 + .../vendor/golang.org/x/tools/LICENSE | 27 + .../vendor/golang.org/x/tools/PATENTS | 22 + .../golang.org/x/tools/cmd/getgo/LICENSE | 27 + .../golang.org/x/tools/cmd/guru/callees.go | 257 + .../golang.org/x/tools/cmd/guru/callers.go | 195 + .../golang.org/x/tools/cmd/guru/callstack.go | 141 + .../golang.org/x/tools/cmd/guru/definition.go | 205 + .../golang.org/x/tools/cmd/guru/describe.go | 899 ++ .../golang.org/x/tools/cmd/guru/freevars.go | 223 + .../golang.org/x/tools/cmd/guru/guru.go | 401 + .../golang.org/x/tools/cmd/guru/implements.go | 364 + .../golang.org/x/tools/cmd/guru/isAlias18.go | 15 + .../golang.org/x/tools/cmd/guru/isAlias19.go | 15 + .../golang.org/x/tools/cmd/guru/main.go | 215 + .../golang.org/x/tools/cmd/guru/peers.go | 252 + .../golang.org/x/tools/cmd/guru/pointsto.go | 290 + .../vendor/golang.org/x/tools/cmd/guru/pos.go | 142 + .../golang.org/x/tools/cmd/guru/referrers.go | 802 ++ .../x/tools/cmd/guru/serial/serial.go | 259 + .../golang.org/x/tools/cmd/guru/what.go | 282 + .../golang.org/x/tools/cmd/guru/whicherrs.go | 327 + .../x/tools/container/intsets/popcnt_amd64.go | 20 + .../x/tools/container/intsets/popcnt_amd64.s | 30 + .../x/tools/container/intsets/popcnt_gccgo.go | 9 + .../tools/container/intsets/popcnt_gccgo_c.c | 19 + .../tools/container/intsets/popcnt_generic.go | 33 + .../x/tools/container/intsets/sparse.go | 1091 ++ .../x/tools/container/intsets/util.go | 84 + .../x/tools/go/ast/astutil/enclosing.go | 627 ++ .../x/tools/go/ast/astutil/imports.go | 470 + .../x/tools/go/ast/astutil/rewrite.go | 477 + .../golang.org/x/tools/go/ast/astutil/util.go | 14 + .../x/tools/go/buildutil/allpackages.go | 198 + .../x/tools/go/buildutil/fakecontext.go | 108 + .../x/tools/go/buildutil/overlay.go | 103 + .../golang.org/x/tools/go/buildutil/tags.go | 75 + .../golang.org/x/tools/go/buildutil/util.go | 212 + .../x/tools/go/callgraph/callgraph.go | 129 + .../x/tools/go/callgraph/static/static.go | 35 + .../golang.org/x/tools/go/callgraph/util.go | 181 + .../golang.org/x/tools/go/loader/cgo.go | 207 + .../x/tools/go/loader/cgo_pkgconfig.go | 39 + .../golang.org/x/tools/go/loader/doc.go | 205 + .../golang.org/x/tools/go/loader/loader.go | 1077 ++ .../golang.org/x/tools/go/loader/util.go | 124 + .../vendor/golang.org/x/tools/go/pointer/TODO | 33 + .../golang.org/x/tools/go/pointer/analysis.go | 452 + .../golang.org/x/tools/go/pointer/api.go | 285 + .../x/tools/go/pointer/callgraph.go | 61 + .../x/tools/go/pointer/constraint.go | 149 + .../golang.org/x/tools/go/pointer/doc.go | 610 ++ .../golang.org/x/tools/go/pointer/gen.go | 1325 +++ .../golang.org/x/tools/go/pointer/hvn.go | 973 ++ .../x/tools/go/pointer/intrinsics.go | 361 + .../golang.org/x/tools/go/pointer/labels.go | 152 + .../golang.org/x/tools/go/pointer/opt.go | 132 + .../golang.org/x/tools/go/pointer/print.go | 43 + .../golang.org/x/tools/go/pointer/query.go | 221 + .../golang.org/x/tools/go/pointer/reflect.go | 1975 ++++ .../golang.org/x/tools/go/pointer/solve.go | 370 + .../golang.org/x/tools/go/pointer/util.go | 313 + .../golang.org/x/tools/go/ssa/blockopt.go | 187 + .../golang.org/x/tools/go/ssa/builder.go | 2379 ++++ .../vendor/golang.org/x/tools/go/ssa/const.go | 169 + .../golang.org/x/tools/go/ssa/create.go | 263 + .../vendor/golang.org/x/tools/go/ssa/doc.go | 123 + .../vendor/golang.org/x/tools/go/ssa/dom.go | 341 + .../vendor/golang.org/x/tools/go/ssa/emit.go | 468 + .../vendor/golang.org/x/tools/go/ssa/func.go | 689 ++ .../golang.org/x/tools/go/ssa/identical.go | 7 + .../golang.org/x/tools/go/ssa/identical_17.go | 7 + .../vendor/golang.org/x/tools/go/ssa/lift.go | 653 ++ .../golang.org/x/tools/go/ssa/lvalue.go | 120 + .../golang.org/x/tools/go/ssa/methods.go | 239 + .../vendor/golang.org/x/tools/go/ssa/mode.go | 100 + .../vendor/golang.org/x/tools/go/ssa/print.go | 431 + .../golang.org/x/tools/go/ssa/sanity.go | 521 + .../golang.org/x/tools/go/ssa/source.go | 293 + .../vendor/golang.org/x/tools/go/ssa/ssa.go | 1696 +++ .../golang.org/x/tools/go/ssa/ssautil/load.go | 95 + .../x/tools/go/ssa/ssautil/switch.go | 234 + .../x/tools/go/ssa/ssautil/visit.go | 79 + .../golang.org/x/tools/go/ssa/testmain.go | 267 + .../vendor/golang.org/x/tools/go/ssa/util.go | 119 + .../golang.org/x/tools/go/ssa/wrappers.go | 294 + .../x/tools/go/types/typeutil/imports.go | 31 + .../x/tools/go/types/typeutil/map.go | 313 + .../tools/go/types/typeutil/methodsetcache.go | 72 + .../x/tools/go/types/typeutil/ui.go | 52 + .../vendor/golang.org/x/tools/imports/fix.go | 1125 ++ .../golang.org/x/tools/imports/imports.go | 310 + .../golang.org/x/tools/imports/mkindex.go | 173 + .../golang.org/x/tools/imports/mkstdlib.go | 107 + .../golang.org/x/tools/imports/sortimports.go | 212 + .../golang.org/x/tools/imports/zstdlib.go | 9734 +++++++++++++++++ .../x/tools/internal/fastwalk/fastwalk.go | 191 + .../fastwalk/fastwalk_dirent_fileno.go | 13 + .../internal/fastwalk/fastwalk_dirent_ino.go | 14 + .../internal/fastwalk/fastwalk_portable.go | 29 + .../tools/internal/fastwalk/fastwalk_unix.go | 123 + .../x/tools/refactor/importgraph/graph.go | 167 + .../x/tools/third_party/moduleloader/LICENSE | 22 + .../x/tools/third_party/typescript/LICENSE | 55 + .../x/tools/third_party/webcomponents/LICENSE | 27 + 146 files changed, 42034 insertions(+), 548 deletions(-) create mode 100644 src/margo.sh/golang/guru.go create mode 100644 src/margo.sh/mg/ctx.go create mode 100644 src/margo.sh/mg/langs.go create mode 100644 src/margo.sh/mg/lint.go create mode 100644 src/margo.sh/mg/restart.go rename src/margo.sh/{misc/pf/pf.go => mgpf/mgpf.go} (99%) rename src/margo.sh/{misc => mgpf}/pprof/pprofdo/pprofdo-fallback.go (100%) rename src/margo.sh/{misc => mgpf}/pprof/pprofdo/pprofdo.go (100%) rename src/margo.sh/{misc => mgpf}/pprof/pprofhttp/pprofhttp.go (100%) create mode 100644 src/margo.sh/vendor/golang.org/x/tools/AUTHORS create mode 100644 src/margo.sh/vendor/golang.org/x/tools/CONTRIBUTORS create mode 100644 src/margo.sh/vendor/golang.org/x/tools/LICENSE create mode 100644 src/margo.sh/vendor/golang.org/x/tools/PATENTS create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/getgo/LICENSE create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/callees.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/callers.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/callstack.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/definition.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/describe.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/freevars.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/guru.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/implements.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/isAlias18.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/isAlias19.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/main.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/peers.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/pointsto.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/pos.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/referrers.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/serial/serial.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/what.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/cmd/guru/whicherrs.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/container/intsets/popcnt_amd64.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/container/intsets/popcnt_amd64.s create mode 100644 src/margo.sh/vendor/golang.org/x/tools/container/intsets/popcnt_gccgo.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/container/intsets/popcnt_gccgo_c.c create mode 100644 src/margo.sh/vendor/golang.org/x/tools/container/intsets/popcnt_generic.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/container/intsets/sparse.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/container/intsets/util.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ast/astutil/imports.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ast/astutil/util.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/buildutil/allpackages.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/buildutil/fakecontext.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/buildutil/overlay.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/buildutil/tags.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/buildutil/util.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/callgraph/callgraph.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/callgraph/static/static.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/callgraph/util.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/loader/cgo.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/loader/cgo_pkgconfig.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/loader/doc.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/loader/loader.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/loader/util.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/pointer/TODO create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/pointer/analysis.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/pointer/api.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/pointer/callgraph.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/pointer/constraint.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/pointer/doc.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/pointer/gen.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/pointer/hvn.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/pointer/intrinsics.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/pointer/labels.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/pointer/opt.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/pointer/print.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/pointer/query.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/pointer/reflect.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/pointer/solve.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/pointer/util.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/blockopt.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/builder.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/const.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/create.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/doc.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/dom.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/emit.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/func.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/identical.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/identical_17.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/lift.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/lvalue.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/methods.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/mode.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/print.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/sanity.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/source.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/ssa.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/ssautil/load.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/ssautil/switch.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/ssautil/visit.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/testmain.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/util.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/ssa/wrappers.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/types/typeutil/imports.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/types/typeutil/map.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/go/types/typeutil/ui.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/imports/fix.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/imports/imports.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/imports/mkindex.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/imports/mkstdlib.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/imports/sortimports.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/imports/zstdlib.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/internal/fastwalk/fastwalk.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_fileno.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_ino.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_portable.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_unix.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/refactor/importgraph/graph.go create mode 100644 src/margo.sh/vendor/golang.org/x/tools/third_party/moduleloader/LICENSE create mode 100644 src/margo.sh/vendor/golang.org/x/tools/third_party/typescript/LICENSE create mode 100644 src/margo.sh/vendor/golang.org/x/tools/third_party/webcomponents/LICENSE diff --git a/src/margo.sh/Gopkg.lock b/src/margo.sh/Gopkg.lock index de10f658..8c58e411 100644 --- a/src/margo.sh/Gopkg.lock +++ b/src/margo.sh/Gopkg.lock @@ -17,17 +17,39 @@ branch = "master" name = "golang.org/x/crypto" packages = ["blake2b"] - revision = "2c241ca3045ddc354463c376a9515d9f1f1390a4" + revision = "4ec37c66abab2c7e02ae775328b2ff001c3f025a" [[projects]] branch = "master" name = "golang.org/x/sys" packages = ["cpu"] - revision = "78d5f264b493f125018180c204871ecf58a2dce1" + revision = "7db1c3b1a98089d0071c84f646ff5c96aad43682" + +[[projects]] + branch = "master" + name = "golang.org/x/tools" + packages = [ + "cmd/guru", + "cmd/guru/serial", + "container/intsets", + "go/ast/astutil", + "go/buildutil", + "go/callgraph", + "go/callgraph/static", + "go/loader", + "go/pointer", + "go/ssa", + "go/ssa/ssautil", + "go/types/typeutil", + "imports", + "internal/fastwalk", + "refactor/importgraph" + ] + revision = "87723262609ca8fd55d449c027454c29cadefd68" [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "a7d8a00d2d704fb62eed79ee67536c295268edae7c67b316af3af70397acad95" + inputs-digest = "d929fab6918d1833fd0bf96d285bc438bfa936590205bbba2e182511b2bf6ac5" solver-name = "gps-cdcl" solver-version = 1 diff --git a/src/margo.sh/Gopkg.toml b/src/margo.sh/Gopkg.toml index 48f5c2eb..9d2cfa57 100644 --- a/src/margo.sh/Gopkg.toml +++ b/src/margo.sh/Gopkg.toml @@ -1,3 +1,11 @@ +required = [ + "golang.org/x/tools/cmd/guru" +] + +[prune] + go-tests = true + unused-packages = true + [[constraint]] name = "github.com/ugorji/go" branch = "master" @@ -10,6 +18,6 @@ branch = "master" name = "golang.org/x/crypto" -[prune] - go-tests = true - unused-packages = true +[[constraint]] + branch = "master" + name = "golang.org/x/tools" diff --git a/src/margo.sh/cmdpkg/margosublime/main.go b/src/margo.sh/cmdpkg/margosublime/main.go index 90644935..9041a7c2 100644 --- a/src/margo.sh/cmdpkg/margosublime/main.go +++ b/src/margo.sh/cmdpkg/margosublime/main.go @@ -33,7 +33,7 @@ func Main() { return mgcli.Error("agent creation failed:", err) } - ag.Store.EditorConfig(sublime.DefaultConfig) + ag.Store.SetBaseConfig(sublime.DefaultConfig) if margoExt != nil { margoExt(ag.Args()) } diff --git a/src/margo.sh/extension-example/extension-example.go b/src/margo.sh/extension-example/extension-example.go index 860aaba4..9d89e3b0 100644 --- a/src/margo.sh/extension-example/extension-example.go +++ b/src/margo.sh/extension-example/extension-example.go @@ -12,12 +12,12 @@ func Margo(ma mg.Args) { // they are run in the specified order // and should ideally not block for more than a couple milliseconds ma.Store.Use( - // by default, events (e.g. ViewSaved) are triggered in all files - // uncomment the reducer below to restict event to Go(-lang) files - // please note, however, that this mode is not tested + // By default, events (e.g. ViewSaved) are triggered in all files. + // Uncomment the reducer below to restict events to Go(-lang) files. + // Please note, however, that this mode is not tested // and saving a non-go file will not trigger linters, etc. for that go pkg // - // mg.Reduce(func(mx *mg.Ctx) *mg.State { + // mg.NewReducer(func(mx *mg.Ctx) *mg.State { // return mx.SetConfig(mx.Config.EnabledForLangs("go")) // }), diff --git a/src/margo.sh/format/format.go b/src/margo.sh/format/format.go index b2bd1226..2520cec2 100644 --- a/src/margo.sh/format/format.go +++ b/src/margo.sh/format/format.go @@ -19,22 +19,20 @@ type FmtFunc struct { Fmt func(mx *mg.Ctx, src []byte) ([]byte, error) // Langs is the list of languages in which the reducer should run - Langs []string + Langs []mg.Lang - // Actions is a list of additional actions on which the reducer is allowed to run. + // Actions is a list of actions on which the reducer is allowed to run. // The reducer always runs on the ViewFmt action, even if this list is empty. Actions []mg.Action } +// ReducerCond returns true if Langs and Actions matches the Ctx +func (ff FmtFunc) ReducerCond(mx *mg.Ctx) bool { + return mx.ActionIs(ff.Actions...) && mx.LangIs(ff.Langs...) +} + // Reduce implements the FmtFunc reducer. func (ff FmtFunc) Reduce(mx *mg.Ctx) *mg.State { - if !mx.LangIs(ff.Langs...) { - return mx.State - } - if !mx.ActionIs(mg.ViewFmt{}) && !mx.ActionIs(ff.Actions...) { - return mx.State - } - fn := mx.View.Filename() src, err := mx.View.ReadAll() if err != nil { @@ -48,7 +46,7 @@ func (ff FmtFunc) Reduce(mx *mg.Ctx) *mg.State { if err != nil { return mx.AddErrorf("failed to fmt %s: %s\n", fn, err) } - return mx.SetSrc(src) + return mx.SetViewSrc(src) } // FmtCmd is wrapper around FmtFunc for generic fmt commands. @@ -66,9 +64,9 @@ type FmtCmd struct { Env mg.EnvMap // Langs is the list of languages in which the reducer should run - Langs []string + Langs []mg.Lang - // Actions is a list of additional actions on which the reducer is allowed to run. + // Actions is a list of actions on which the reducer is allowed to run. // The reducer always runs on the ViewFmt action, even if this list is empty. Actions []mg.Action } diff --git a/src/margo.sh/golang/common.go b/src/margo.sh/golang/common.go index bff089b6..e2925a9c 100644 --- a/src/margo.sh/golang/common.go +++ b/src/margo.sh/golang/common.go @@ -1,10 +1,10 @@ package golang import ( - "margo.sh/mg" "go/ast" "go/build" "go/token" + "margo.sh/mg" "os" "path/filepath" "reflect" @@ -14,12 +14,12 @@ import ( "unicode/utf8" ) -var ( - CommonPatterns = append([]*regexp.Regexp{ +func init() { + mg.AddCommonPatterns(mg.Go, regexp.MustCompile(`^\s*(?P.+?\.\w+):(?P\d+:)(?P\d+:?)?(?:(?Pwarning|error)[:])?(?P.+?)(?: [(](?P