Skip to content
forked from t-yuki/godoc2puml

godoc to PlantUML format converter for golang

License

Notifications You must be signed in to change notification settings

athaa/godoc2puml

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

godoc2puml

This project is a fork from original unmaintained project https://github.com/t-yuki/godoc2puml.

The fork has been necessary because of the original project depends on depency which does not exist anymore (updated from "golang.org/x/tools/oracle" to "github.com/visualfc/gotools/oracle/oracle"). It additionnally update the relation type to not force the orientation of the relation and let the "IA" chose the best way (usage of --> instead of ->).

godoc2puml converts godoc formatted documentation into plantuml format.

Installation

Just type the following to install the program:

$ go get -u github.com/athaa/godoc2puml

If you want to draw a diagram as a image file, it depends on java and graphviz. you must install them:

$ sudo yum install java graphviz
$ # or, etc...
$ sudo apt-get install openjdk-7-jre-headless graphviz

It also depends on plantuml. Well, it is already attached so you do not need to install separately.

Usage

godoc2puml generates a diagram for packages. You can also specify output format if you installed the above.

$ godoc2puml net/http > net.http.puml
$ java -jar plantuml.jar -pipe -tpng < net.http.puml > net.http.png

$ # NOT IMPLEMENTED YET # godoc2puml -t=png net/http > net.http.png

Other options:

Usage of godoc2puml:
  -dont-ignore string
        white-list for ignore. default/empty value means packages of arg
  -field string
        set package names in comma-separated strings that use field relationship instead of association
  -h    show this help
  -ignore string
        name filter to ignore. default value removes fmt.String and private declarations except specified packages (default "(fmt\\.Stringer|\\w+\\.[a-z][\\w]*)$")
  -lolipop string
        set package names in comma-separated strings that use lolipop-style interface relationship instead of implementation
  -scope string
        set analysis scope (main) package. if it is omitted, scope is tests in the same directory
  -t string
        output format
        puml:  write PlantUML format (default "text")

Examples

The below is output example of "image" package. For more examples, see #1

image

Known Problems

Many, but...

  • enum pattern is not recognized
  • noisy
  • elementType of map is not recognized as an association
  • interface extensions is recognized only when explicit extensions, not implicit extension
  • cant parse array- or nested-pointer- embed structs
  • cant detect constructors
  • ...

References

Authors

About

godoc to PlantUML format converter for golang

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%