@@ -34,6 +34,12 @@ type {{.Name}} interface {
34
34
func functionDef (fun * ast.FuncDecl , fset * token.FileSet ) string {
35
35
name := fun .Name .Name
36
36
params := make ([]string , 0 )
37
+ comments := make ([]string , 0 )
38
+ if fun .Doc != nil {
39
+ for _ , comment := range fun .Doc .List {
40
+ comments = append (comments , comment .Text )
41
+ }
42
+ }
37
43
for _ , p := range fun .Type .Params .List {
38
44
var typeNameBuf bytes.Buffer
39
45
err := printer .Fprint (& typeNameBuf , fset , p .Type )
@@ -64,13 +70,17 @@ func functionDef(fun *ast.FuncDecl, fset *token.FileSet) string {
64
70
} else if len (returns ) > 1 {
65
71
returnString = fmt .Sprintf ("(%s)" , strings .Join (returns , ", " ))
66
72
}
67
- return fmt .Sprintf ("%s (%s) %v" , name , strings .Join (params , ", " ), returnString )
73
+ commentsString := ""
74
+ if len (comments ) > 0 {
75
+ commentsString = strings .Join (comments , "\n " ) + "\n "
76
+ }
77
+ return fmt .Sprintf ("%s%s (%s) %v" , commentsString , name , strings .Join (params , ", " ), returnString )
68
78
}
69
79
70
80
func generateInterface (folder , outputFile , pkgName , structName , ifName , outputTemplate string ) {
71
81
fset := token .NewFileSet ()
72
82
73
- pkgs , err := parser .ParseDir (fset , folder , nil , parser .AllErrors )
83
+ pkgs , err := parser .ParseDir (fset , folder , nil , parser .AllErrors | parser . ParseComments )
74
84
if err != nil {
75
85
log .Fatalf ("Unable to parse %s folder" , folder )
76
86
}
0 commit comments