internal/core/export: extract docs from root
Change-Id: I0ddab86790c0447dbd8fab7e21dd37dd4e09c7b9
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/9442
Reviewed-by: CUE cueckoo <cueckoo@gmail.com>
Reviewed-by: Paul Jolly <paul@myitcv.org.uk>
diff --git a/internal/core/export/extract.go b/internal/core/export/extract.go
index 792563c..47cefaa 100644
--- a/internal/core/export/extract.go
+++ b/internal/core/export/extract.go
@@ -42,15 +42,22 @@
docs = append(docs, extractDocs(v, v.Conjuncts)...)
continue
}
- f, ok := x.Source().(*ast.Field)
- if !ok || hasShorthandValue(f) {
- continue
- }
- fields = append(fields, f)
- for _, cg := range f.Comments() {
- if !containsDoc(docs, cg) && cg.Doc {
- docs = append(docs, cg)
+ switch f := x.Source().(type) {
+ case *ast.Field:
+ if hasShorthandValue(f) {
+ continue
+ }
+ fields = append(fields, f)
+ for _, cg := range f.Comments() {
+ if !containsDoc(docs, cg) && cg.Doc {
+ docs = append(docs, cg)
+ }
+ }
+
+ case *ast.File:
+ if c := internal.FileComment(f); c != nil {
+ docs = append(docs, c)
}
}
}
diff --git a/internal/core/export/testdata/docs.txtar b/internal/core/export/testdata/docs.txtar
index 814b9f7..ae569e1 100644
--- a/internal/core/export/testdata/docs.txtar
+++ b/internal/core/export/testdata/docs.txtar
@@ -47,6 +47,8 @@
-- out.txt --
-- out/doc --
[]
+- foobar defines at least foo.
+
[Foo]
- A Foo fooses stuff.