diff --git a/controller.go b/controller.go index 510e16b8..da8e8504 100644 --- a/controller.go +++ b/controller.go @@ -55,6 +55,12 @@ type ControllerComments struct { MethodParams []*param.MethodParam } +type ControllerCommentsSlice []ControllerComments + +func (p ControllerCommentsSlice) Len() int { return len(p) } +func (p ControllerCommentsSlice) Less(i, j int) bool { return p[i].Router < p[j].Router } +func (p ControllerCommentsSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } + // Controller defines some basic http request handler operations, such as // http context, template and view, session and xsrf. type Controller struct { diff --git a/parser.go b/parser.go index fda83cb7..f787fd5c 100644 --- a/parser.go +++ b/parser.go @@ -275,6 +275,7 @@ func genRouterCode(pkgRealpath string) { sort.Strings(sortKey) for _, k := range sortKey { cList := genInfoList[k] + sort.Sort(ControllerCommentsSlice(cList)) for _, c := range cList { allmethod := "nil" if len(c.AllowHTTPMethods) > 0 {