Golang go/printer.CommentedNode type example
package go/printer
A CommentedNode bundles an AST node and corresponding comments. It may be provided as argument to any of the Fprint functions.
Golang go/printer.CommentedNode type usage example
func (lp *linePrinter) printWithComments(n ast.Node) {
nfirst := lp.fset.Position(n.Pos()).Line
nlast := lp.fset.Position(n.End()).Line
for _, g := range lp.fnode.Comments {
cfirst := lp.fset.Position(g.Pos()).Line
clast := lp.fset.Position(g.End()).Line
if clast == nfirst-1 && lp.fset.Position(n.Pos()).Column == lp.fset.Position(g.Pos()).Column {
for _, c := range g.List {
lp.output.WriteString(c.Text)
lp.output.WriteByte('\n')
}
}
if cfirst >= nfirst && cfirst <= nlast && n.End() <= g.List[0].Slash {
// The printer will not include the comment if it starts past
// the node itself. Trick it into printing by overlapping the
// slash with the end of the statement.
g.List[0].Slash = n.End() - 1
}
}
node := &printer.CommentedNode{n, lp.fnode.Comments} // <-- here
lp.config.Fprint(&lp.output, lp.fset, node)
}
References :
Advertisement
Something interesting
Tutorials
+5.7k Golang : Error handling methods
+19.3k Golang : Get host name or domain name from IP address
+6.5k Golang : Calculate diameter, circumference, area, sphere surface and volume
+5.7k Get website traffic ranking with Similar Web or Alexa
+41.9k Golang : How do I convert int to uint8?
+40.5k Golang : Convert to io.ReadSeeker type
+7.8k Golang : Lock executable to a specific machine with unique hash of the machine
+30k Golang : How to declare kilobyte, megabyte, gigabyte, terabyte and so on?
+23.9k Golang : Use regular expression to validate domain name
+7.6k Golang : Convert(cast) io.Reader type to string
+29.2k Golang : missing Git command
+6.1k PageSpeed : Clear or flush cache on web server