)
const (
- punchedCardWidth = 80 // These things just won't leave us alone.
- indentedWidth = punchedCardWidth - len(indent)
+ punchedCardWidth = 80
indent = " "
)
buf pkgBuffer
}
+func (p *Package) ToText(w io.Writer, text, prefix, codePrefix string) {
+ d := p.doc.Parser().Parse(text)
+ pr := p.doc.Printer()
+ pr.TextPrefix = prefix
+ pr.TextCodePrefix = codePrefix
+ w.Write(pr.Text(d))
+}
+
// pkgBuffer is a wrapper for bytes.Buffer that prints a package clause the
// first time Write is called.
type pkgBuffer struct {
}
if comment != "" && !showSrc {
pkg.newlines(1)
- doc.ToText(&pkg.buf, comment, indent, indent+indent, indentedWidth)
+ pkg.ToText(&pkg.buf, comment, indent, indent+indent)
pkg.newlines(2) // Blank line after comment to separate from next item.
} else {
pkg.newlines(1)
// allDoc prints all the docs for the package.
func (pkg *Package) allDoc() {
pkg.Printf("") // Trigger the package clause; we know the package exists.
- doc.ToText(&pkg.buf, pkg.doc.Doc, "", indent, indentedWidth)
+ pkg.ToText(&pkg.buf, pkg.doc.Doc, "", indent)
pkg.newlines(1)
printed := make(map[*ast.GenDecl]bool)
func (pkg *Package) packageDoc() {
pkg.Printf("") // Trigger the package clause; we know the package exists.
if !short {
- doc.ToText(&pkg.buf, pkg.doc.Doc, "", indent, indentedWidth)
+ pkg.ToText(&pkg.buf, pkg.doc.Doc, "", indent)
pkg.newlines(1)
}
if field.Doc != nil {
// To present indented blocks in comments correctly, process the comment as
// a unit before adding the leading // to each line.
- docBuf := bytes.Buffer{}
- doc.ToText(&docBuf, field.Doc.Text(), "", indent, indentedWidth)
- scanner := bufio.NewScanner(&docBuf)
+ docBuf := new(bytes.Buffer)
+ pkg.ToText(docBuf, field.Doc.Text(), "", indent)
+ scanner := bufio.NewScanner(docBuf)
for scanner.Scan() {
fmt.Fprintf(&pkg.buf, "%s// %s\n", indent, scanner.Bytes())
}