{{$info := .}}{{$filtered := .IsFiltered}}{{/*

---------------------------------------

*/}}{{if $filtered}}{{range .PAst}}{{range .Decls}}{{node $info .}}

{{end}}{{end}}{{else}}{{with .PAst}}{{range $filename, $ast := .}}{{$filename}}:
{{node $ $ast}}{{end}}{{end}}{{end}}{{/*

---------------------------------------

*/}}{{if and $filtered (not (or .PDoc .PAst))}}No match found.
{{end}}{{with .PDoc}}{{if $.IsMain}}COMMAND DOCUMENTATION

{{comment_text .Doc "    " "\t"}}
{{else}}{{if not $filtered}}PACKAGE DOCUMENTATION

package {{.Name}}
    import "{{.ImportPath}}"

{{comment_text .Doc "    " "\t"}}
{{example_text $ "" "    "}}{{end}}{{/*

---------------------------------------

*/}}{{with .Consts}}{{if not $filtered}}CONSTANTS

{{end}}{{range .}}{{node $ .Decl}}
{{comment_text .Doc "    " "\t"}}
{{end}}{{end}}{{/*

---------------------------------------

*/}}{{with .Vars}}{{if not $filtered}}VARIABLES

{{end}}{{range .}}{{node $ .Decl}}
{{comment_text .Doc "    " "\t"}}
{{end}}{{end}}{{/*

---------------------------------------

*/}}{{with .Funcs}}{{if not $filtered}}FUNCTIONS

{{end}}{{range .}}{{node $ .Decl}}
{{comment_text .Doc "    " "\t"}}
{{example_text $ .Name "    "}}{{end}}{{end}}{{/*

---------------------------------------

*/}}{{with .Types}}{{if not $filtered}}TYPES

{{end}}{{range .}}{{$tname := .Name}}{{node $ .Decl}}
{{comment_text .Doc "    " "\t"}}
{{/*

---------------------------------------

*/}}{{if .Consts}}{{range .Consts}}{{node $ .Decl}}
{{comment_text .Doc "    " "\t"}}
{{end}}{{end}}{{/*

---------------------------------------

*/}}{{if .Vars}}{{range .Vars}}{{node $ .Decl}}
{{comment_text .Doc "    " "\t"}}
{{range $name := .Names}}{{example_text $ $name "    "}}{{end}}{{end}}{{end}}{{/*

---------------------------------------

*/}}{{if .Funcs}}{{range .Funcs}}{{node $ .Decl}}
{{comment_text .Doc "    " "\t"}}
{{example_text $ .Name "    "}}{{end}}{{end}}{{/*

---------------------------------------

*/}}{{if .Methods}}{{range .Methods}}{{node $ .Decl}}
{{comment_text .Doc "    " "\t"}}
{{$name := printf "%s_%s" $tname .Name}}{{example_text $ $name "    "}}{{end}}{{end}}{{/*

---------------------------------------

*/}}{{end}}{{end}}{{/*

---------------------------------------

*/}}{{if and $filtered (not (or .Consts (or .Vars (or .Funcs .Types))))}}No match found.
{{end}}{{/*

---------------------------------------

*/}}{{end}}{{/*

---------------------------------------

*/}}{{with $.Notes}}
{{range $marker, $content := .}}
{{$marker}}S

{{range $content}}{{comment_text .Body "   " "\t"}}
{{end}}{{end}}{{end}}{{end}}{{/*

---------------------------------------

*/}}{{if not $filtered}}{{with .Dirs}}SUBDIRECTORIES
{{if $.DirFlat}}{{range .List}}{{if .HasPkg}}
	{{.Path}}{{end}}{{end}}
{{else}}{{range .List}}
	{{repeat `. ` .Depth}}{{.Name}}{{end}}
{{end}}{{end}}{{/*

---------------------------------------

*/}}{{end}}{{/*
Make sure there is no newline at the end of this file.
perl -i -pe 'chomp if eof' package.txt
*/}}
