Skip to content

Commit 7f32b9b

Browse files
committed
feat: schema定义注释支持
1 parent 61ac8b5 commit 7f32b9b

File tree

6 files changed

+99
-28
lines changed

6 files changed

+99
-28
lines changed

schema/field/field.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@ func (t *textBuilder) Analyzer(analyzer string) *textBuilder {
1717
return t
1818
}
1919

20+
func (t *textBuilder) Comment(c string) *textBuilder {
21+
t.desc.Comment = c
22+
return t
23+
}
24+
2025
// SearchAnalyzer 搜索分词器
2126
// Deprecated: 该方法已经弃用,在es7.x版本中不在设置search_analyzer
2227
func (t *textBuilder) SearchAnalyzer(sa string) *textBuilder {
@@ -51,6 +56,11 @@ func (d *dateBuilder) Format(format string) *dateBuilder {
5156
return d
5257
}
5358

59+
func (d *dateBuilder) Comment(c string) *dateBuilder {
60+
d.desc.Comment = c
61+
return d
62+
}
63+
5464
type boolBuilder struct {
5565
desc *field.Descriptor
5666
}
@@ -59,6 +69,11 @@ func (b *boolBuilder) Descriptor() *field.Descriptor {
5969
return b.desc
6070
}
6171

72+
func (b *boolBuilder) Comment(c string) *boolBuilder {
73+
b.desc.Comment = c
74+
return b
75+
}
76+
6277
func Text(name string) *textBuilder {
6378
builder := &textBuilder{desc: &field.Descriptor{
6479
Info: &field.TypeInfo{Type: field.TypeString},
@@ -71,6 +86,11 @@ func (k *keywordBuilder) Descriptor() *field.Descriptor {
7186
return k.desc
7287
}
7388

89+
func (k *keywordBuilder) Comment(c string) *keywordBuilder {
90+
k.desc.Comment = c
91+
return k
92+
}
93+
7494
func Keyword(name string) *keywordBuilder {
7595
return &keywordBuilder{desc: &field.Descriptor{
7696
Info: &field.TypeInfo{Type: field.Type(TypeKeyword)},
@@ -100,6 +120,11 @@ func (j *jsonBuilder) Descriptor() *field.Descriptor {
100120
return j.desc
101121
}
102122

123+
func (j *jsonBuilder) Comment(c string) *jsonBuilder {
124+
j.desc.Comment = c
125+
return j
126+
}
127+
103128
func Strings(name string) *jsonBuilder {
104129
return &jsonBuilder{desc: field.JSON(name, []string{}).Descriptor()}
105130
}

schema/field/numeric.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ func (t *int8Builder) Descriptor() *field.Descriptor {
1010
return t.desc
1111
}
1212

13+
func (t *int8Builder) Comment(c string) *int8Builder {
14+
t.desc.Comment = c
15+
return t
16+
}
17+
1318
type int16Builder struct {
1419
desc *field.Descriptor
1520
}
@@ -18,6 +23,11 @@ func (t *int16Builder) Descriptor() *field.Descriptor {
1823
return t.desc
1924
}
2025

26+
func (t *int16Builder) Comment(c string) *int16Builder {
27+
t.desc.Comment = c
28+
return t
29+
}
30+
2131
type int32Builder struct {
2232
desc *field.Descriptor
2333
}
@@ -26,6 +36,11 @@ func (t *int32Builder) Descriptor() *field.Descriptor {
2636
return t.desc
2737
}
2838

39+
func (t *int32Builder) Comment(c string) *int32Builder {
40+
t.desc.Comment = c
41+
return t
42+
}
43+
2944
type int64Builder struct {
3045
desc *field.Descriptor
3146
}
@@ -34,6 +49,11 @@ func (t *int64Builder) Descriptor() *field.Descriptor {
3449
return t.desc
3550
}
3651

52+
func (t *int64Builder) Comment(c string) *int64Builder {
53+
t.desc.Comment = c
54+
return t
55+
}
56+
3757
type floatBuilder struct {
3858
desc *field.Descriptor
3959
}
@@ -42,6 +62,11 @@ func (t *floatBuilder) Descriptor() *field.Descriptor {
4262
return t.desc
4363
}
4464

65+
func (t *floatBuilder) Comment(c string) *floatBuilder {
66+
t.desc.Comment = c
67+
return t
68+
}
69+
4570
type doubleBuilder struct {
4671
desc *field.Descriptor
4772
}
@@ -50,6 +75,11 @@ func (t *doubleBuilder) Descriptor() *field.Descriptor {
5075
return t.desc
5176
}
5277

78+
func (t *doubleBuilder) Comment(c string) *doubleBuilder {
79+
t.desc.Comment = c
80+
return t
81+
}
82+
5383
type halfFloatBuilder struct {
5484
desc *field.Descriptor
5585
}
@@ -58,6 +88,11 @@ func (t *halfFloatBuilder) Descriptor() *field.Descriptor {
5888
return t.desc
5989
}
6090

91+
func (t *halfFloatBuilder) Comment(c string) *halfFloatBuilder {
92+
t.desc.Comment = c
93+
return t
94+
}
95+
6196
type scaledFloatBuilder struct {
6297
desc *field.Descriptor
6398
}
@@ -66,6 +101,11 @@ func (t *scaledFloatBuilder) Descriptor() *field.Descriptor {
66101
return t.desc
67102
}
68103

104+
func (t *scaledFloatBuilder) Comment(c string) *scaledFloatBuilder {
105+
t.desc.Comment = c
106+
return t
107+
}
108+
69109
func Byte(name string) *int8Builder {
70110
return &int8Builder{desc: &field.Descriptor{
71111
Info: &field.TypeInfo{Type: field.Type(TypeInt8)},

schema/gen/gen.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ var tpl, err = template.New("").Funcs(template.FuncMap{
3434
"ToLower": strings.ToLower,
3535
"RendProperty": RendProperty,
3636
"Imports": Imports,
37+
"RendComment": RendComment,
3738
}).ParseFS(templateFile, "template/*.tmpl")
3839

3940
func ToUnderscore(camelCase string) string {
@@ -67,6 +68,10 @@ func HtmlUnescapeString(s string) template.HTML {
6768
return template.HTML(s)
6869
}
6970

71+
func RendComment(fd *load.Field) template.HTML {
72+
return template.HTML(fmt.Sprintf("// %s %s", pascal(fd.Name), fd.Comment))
73+
}
74+
7075
func RendProperty(fd *load.Field) []template.HTML {
7176
switch fd.Info.Type {
7277
case entfield.TypeString:

schema/gen/template/struct.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
)
99

1010
type {{.Schema.Name}} struct {
11-
{{range .Schema.Fields}}
11+
{{range .Schema.Fields}}{{RendComment .}}
1212
{{ToCamelCase .Name}} {{Type .}} `json:"{{.Name}},omitempty"`
1313
{{end}}
1414
}

test/schema/user.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,20 @@ type UserData struct {
1313

1414
func (UserData) Fields() []ent.Field {
1515
return []ent.Field{
16-
esfield.Text("id").Analyzer("ik_max_word").SearchAnalyzer("ik_max_word"),
17-
esfield.Keyword("keyword_kkkk"),
18-
esfield.Byte("byte_bbbb"),
19-
esfield.Short("short_ssss"),
20-
esfield.Int("int_iiii"),
21-
esfield.Long("long_llll"),
22-
esfield.Float("float_ffff"),
23-
esfield.Double("double_ddddd"),
24-
esfield.Bool("bool_bbbb"),
25-
esfield.Date("date_dddd").Format("yyyy-MM-dd HH:mm:ss"),
26-
esfield.Strings("stings_sssss"),
27-
esfield.Ints("ints_iiiiii"),
28-
esfield.Int64s("int64s_iiiiii"),
29-
esfield.Floats("floats_llllll"),
16+
esfield.Text("id").Analyzer("ik_max_word").Comment("这是一个ID"),
17+
esfield.Keyword("keyword_kkkk").Comment("这是一个keyword"),
18+
esfield.Byte("byte_bbbb").Comment("这是一个byte"),
19+
esfield.Short("short_ssss").Comment("这是一个short"),
20+
esfield.Int("int_iiii").Comment("这是一个int"),
21+
esfield.Long("long_llll").Comment("这是一个long"),
22+
esfield.Float("float_ffff").Comment("这是一个Float"),
23+
esfield.Double("double_ddddd").Comment("这是一个double"),
24+
esfield.Bool("bool_bbbb").Comment("这是一个bool"),
25+
esfield.Date("date_dddd").Format("yyyy-MM-dd HH:mm:ss").Comment("这是一个date"),
26+
esfield.Strings("stings_sssss").Comment("这是一个strings"),
27+
esfield.Ints("ints_iiiiii").Comment("这是一个ints"),
28+
esfield.Int64s("int64s_iiiiii").Comment("这是一个int64s"),
29+
esfield.Floats("floats_llllll").Comment("这是一个floats"),
3030
}
3131
}
3232

test/userdata.go

Lines changed: 14 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)