生成后的模板标识

Template ident after generate

我正在使用 GO text/template 生成 makefile 模板按预期生成(内容正确)但问题是它不是缩进 tabs 生成后 运行ning make 命令出现错误。

这是模板的输出:

all: app app_2

DIR = $(PWD)
.PHONY: app
app:
@echo "run module 1"

.PHONY: app_2
app_2:
@echo "run module 2”

当我 运行 make 时出现错误“makefile:7: *** 缺少分隔符。停止。” (这是第一个回显的行)

如果我用 GolandvsCode 将想法更改为 tab(在文件生成后),我能够 运行文件成功 并看到预期的输出...,知道如何让它与 go text/template 一起工作吗?

这是模板

all: {{- range .Load.Proc}} {{.Name}}{{end}}


{{- range .Load.Proc}}
.PHONY: {{.Name}}
{{.Name}}:
    @echo {{.Text}}
{{end}}

这是 makefile 问题:makefile:4: *** missing separator. Stop 但对我来说这是个问题,因为我想生成文件而不需要手动更改缩进。

在模板中使用制表符在输出中生成制表符。要修复问题中的模板,请将 @echo 之前的空格替换为制表符。

https://play.golang.org/p/c7v6eNsI2Fy

如果由于某种原因不能在模板中放置制表符,则使用 {{"\t"}} 在输出中生成制表符:

{{"\t"}}echo {{.Text}}

https://play.golang.org/p/3B-oIW-aCb4