fix(struct_tags): edge case with structs declared as var (#99)

* fix(struct_tags): edge case with structs declared as var

* test: test it and fix it

* fixup! test: test it and fix it

* fixup! fix(struct_tags): edge case with structs declared as var

* fixup! test: test it and fix it
This commit is contained in:
Smirnov Oleksandr 2025-03-22 13:21:15 +02:00 committed by Oleksandr Smirnov
parent a993ece59f
commit 969db908f8
No known key found for this signature in database
7 changed files with 96 additions and 6 deletions

11
spec/fixtures/tags/svar_input.go vendored Normal file
View file

@ -0,0 +1,11 @@
package main
func main() {
s := struct {
API string
Key string
}{
API: "api.com",
Key: "key",
}
}

11
spec/fixtures/tags/svar_output.go vendored Normal file
View file

@ -0,0 +1,11 @@
package main
func main() {
s := struct {
API string `xml:"api"`
Key string `xml:"key"`
}{
API: "api.com",
Key: "key",
}
}

8
spec/fixtures/tags/var_input.go vendored Normal file
View file

@ -0,0 +1,8 @@
package main
func main() {
var a struct {
TestField1 string
TestField2 string
}
}

8
spec/fixtures/tags/var_output.go vendored Normal file
View file

@ -0,0 +1,8 @@
package main
func main() {
var a struct {
TestField1 string `yaml:"test_field_1"`
TestField2 string `yaml:"test_field_2"`
}
}

View file

@ -82,4 +82,30 @@ T["struct_tags"]["should add more than one tag"] = function()
t.eq(t.readfile(tmp), fixtures.output)
end
T["struct_tags"]["should add tags on var"] = function()
local tmp = t.tmpfile()
local fixtures = t.get_fixtures "tags/var"
t.writefile(tmp, fixtures.input)
child.cmd("silent edit " .. tmp)
child.fn.setpos(".", { child.fn.bufnr(tmp), 5, 3 })
child.cmd "GoTagAdd yaml"
child.cmd "write"
t.eq(t.readfile(tmp), fixtures.output)
end
T["struct_tags"]["should add tags on short declr var"] = function()
local tmp = t.tmpfile()
local fixtures = t.get_fixtures "tags/svar"
t.writefile(tmp, fixtures.input)
child.cmd("silent edit " .. tmp)
child.fn.setpos(".", { child.fn.bufnr(tmp), 4, 3 })
child.cmd "GoTagAdd xml"
child.cmd "write"
t.eq(t.readfile(tmp), fixtures.output)
end
return T