35 lines
1.5 KiB
Markdown
35 lines
1.5 KiB
Markdown
# Docreflect
|
|
|
|
Library and command to help accessing go doc comments during runtime.
|
|
|
|
Go doc comments are not accessible during runtime vi reflection. To make them avaiable during runtime, we need to capture them
|
|
during build time. The docreflect command, or the docreflect/generate library package, fetches the go doc comments of the specified
|
|
declarations, and generates Go code that registers the docs for every declaration. Code that includes the generated initialization
|
|
code, will have the docs accessible via the top level docreflect package methods.
|
|
|
|
**Declarations:**
|
|
|
|
- the declarations must be absolute Go paths
|
|
- when passing in the import path of a package, all the top level symbols of the package, plus the struct fields and methods of the
|
|
top level types will be included
|
|
- the package documentation can be fetched using `docreflect.Docs("absolute/import/path/of/package")`
|
|
- when passing in the import path of only the selected symbols, the rest of the package level symbols will be ignroed
|
|
|
|
**Gotchas:**
|
|
- type aliases and type definitions based on named types are not resolved
|
|
- package imports are not resolved, necessary packages need to included in the generate arguments
|
|
|
|
Library documentation: https://godocs.io/code.squareroundforest.org/arpio/docreflect
|
|
|
|
To insall the docreflect command, run:
|
|
|
|
```
|
|
make install
|
|
```
|
|
|
|
Usage of the docreflect command:
|
|
|
|
```
|
|
docreflect generate --package-name mypackage coderepos.org/jdoe/mypackage coderepos.org/jdoe/otherpackage > docreflect.go
|
|
```
|