12

I know that Golang supports documentation of functions via single-line comments starting with the name of the function (spelled "func"). However, there's a nauseating side effect: having multiple single line comments will not produce a GoDoc with newline characters separating each line of text

Here's a pic to illustrate:

enter image description here

Here's the func, and its documentation:

//GetFunctionName gets function name
// Parameters:
// - `i` : Function
// **NOTE** this func fails if `i` is a variable set to a func
// (they're called "anonymous functions" in JavaScript)
func GetFunctionName(i interface{}) string {
    return runtime.FuncForPC(reflect.ValueOf(i).Pointer()).Name()
}

How does one insert newlines in the generated documentation? (If this were Javadoc, I would be like <br> and all would be good)

icza
  • 389,944
  • 63
  • 907
  • 827
Mike Warren
  • 3,796
  • 5
  • 47
  • 99

1 Answers1

22

Insert an empty comment line, and it will be a new paragraph, meaning it will start on a new line:

// GetFunctionName gets function name
//
// Parameters:
//   - `i` : Function
//
// **NOTE** this func fails if `i` is a variable set to a func
// (they're called "anonymous functions" in JavaScript)
func GetFunctionName(i interface{}) string {
    return runtime.FuncForPC(reflect.ValueOf(i).Pointer()).Name()
}

Recommended blog post: Godoc: documenting Go code

Relevant section:

There are a few formatting rules that Godoc uses when converting comments to HTML:

  • Subsequent lines of text are considered part of the same paragraph; you must leave a blank line to separate paragraphs.
  • Pre-formatted text must be indented relative to the surrounding comment text (see gob's doc.go for an example).
  • URLs will be converted to HTML links; no special markup is necessary.
Afriza N. Arief
  • 7,696
  • 5
  • 47
  • 74
icza
  • 389,944
  • 63
  • 907
  • 827