当前位置:  开发笔记 > 编程语言 > 正文

是否可以在设计用于go generate的模板上使用gofmt?

如何解决《是否可以在设计用于gogenerate的模板上使用gofmt?》经验,为你挑选了1个好方法。

我正在使用go:generate来处理自动生成一些数据库模型的过程,希望通过来运行我的go模板gofmt,但是它会使所有额外的{{ ... }}动态部分窒息。

我是否缺少明显的东西?我希望这是一个用例的gofmt人已经解决,给双方gofmtgo generate是去工具链的突出部分。

显然,它可以在go fmt之后运行,go generate但是格式化不佳的模板(占99%的代码)会让人感到肮脏。



1> Cerise Limón..:

大多数生成工具将模板执行到* bytes.Buffer,使用format.Source格式化缓冲区字节,然后将结果写入输出文件。

给定模板t和输出writer w,代码如下所示:

var buf bytes.Buffer
if err := t.Execute(&buf, data); err != nil {
    // handle error
}
p, err := format.Source(buf.Bytes())
if err != nil {
    // handle error
}
w.Write(p)

Gofmting模板不能确保将输出Gofmted。鉴于使用go / format包对输出进行gofmt操作非常容易,因此创建用于gofmt模板的工具几乎没有价值。

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有