我最近使用 and 编写了一个 Go 检查器golang.org/x/tools/go/analysis,golang.org/x/tools/go/analysis/singlechecker并且我设法编写了自己的自定义文件操作机制(跟踪文件偏移等),但我觉得我在与系统作斗争。
https://pkg.go.dev/golang.org/x/tools/go/analysis/internal/checker中似乎Fix定义了一个标志,但我不知道如何使用它或挂钩到使用它的系统.
也可以定义
-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
任何线索如何使用它?
qq_笑_17
胡子哥哥
相关分类