type FoldingRangeInfo … // FoldingRange gets all of the folding range for f. func FoldingRange(ctx context.Context, snapshot *cache.Snapshot, fh file.Handle, lineFoldingOnly bool) (ranges []*FoldingRangeInfo, err error) { … } // foldingRangeFunc calculates the line folding range for ast.Node n func foldingRangeFunc(pgf *parsego.File, n ast.Node, lineFoldingOnly bool) *FoldingRangeInfo { … } // getLineFoldingRange returns the folding range for nodes with parentheses/braces/brackets // that potentially can take up multiple lines. func getLineFoldingRange(pgf *parsego.File, open, close token.Pos, lineFoldingOnly bool) (token.Pos, token.Pos) { … } // commentsFoldingRange returns the folding ranges for all comment blocks in file. // The folding range starts at the end of the first line of the comment block, and ends at the end of the // comment block and has kind protocol.Comment. func commentsFoldingRange(pgf *parsego.File) (comments []*FoldingRangeInfo) { … }