[我最近使用golang.org/x/tools/go/analysis
和golang.org/x/tools/go/analysis/singlechecker
编写了一个Go检查器,我设法编写了自己的自定义文件操作机制(跟踪文件偏移量等),但是我感觉自己正在与系统进行斗争。] >
Fix
中似乎定义了一个https://pkg.go.dev/golang.org/x/tools/go/analysis/internal/checker标志,但我不知道如何使用它或挂接到使用它的系统中。
也可以定义
-fix apply all suggested fixes
当用
singlechecker
编译检查器时:
import ( "golang.org/x/tools/go/analysis/singlechecker" ) var ( Analyzer = &analysis.Analyzer{ Name: "name", Run: run, } // Can't define a "fix" flag because golang.org/x/tools/go/analysis/internal/checker // defines it and flags cannot be redefined. // Fix = flag.Bool("autofix", false, "apply fixes automatically") Fix bool ) func main() { // NOTE: // Don't do this at home. This should be properly integrated with // "golang.org/x/tools/go/analysis/internal/checker" flags (specifically -fix // flag) but I have no idea how to do that and the documentation is non existent. if len(os.Args) > 1 { for _, arg := range os.Args[1:] { if arg == "-fix" { Fix = true break } } } singlechecker.Main(Analyzer) }
我也找不到关于它的任何文档。启用
Fix
标志后应在此处运行的代码:https://github.com/golang/tools/blob/268ba720d32c891185aa340e8851e215f23173db/go/analysis/internal/checker/checker.go#L265
任何线索如何使用它?
我最近使用golang.org/x/tools/go/analysis和golang.org/x/tools/go/analysis/singlechecker编写了Go检查器,并且我设法编写了自己的自定义文件操作机制( ...
您只可以在运行检查器时提供标志-fix=true
。 singlechecker
将通过运行checker.RegisterFlags()来注册该标志。然后,传递的标志将在analysisflags.Parse()