Modeling is a tools to analysis different languages by Ctags
process:
ctags
ctags
with optctags
logs by regexvisualing
(optional)language support:
```bash Modeling 0.6.1
USAGE: modeling [FLAGS] [OPTIONS]
FLAGS:
-b, --by-modules multiple modules
-d, --debug output debug information
-f, --field-only only load field in methods
-h, --help Prints help information
--inline-id-suffix if class's prop end with Id and class in list, will replace int
type to xxClass
-m, --merge merge for same method name
-V, --version Prints version information
--without-impl-suffix if class's prop start with IRepository
will become Repository
--without-parent without class inheritance
OPTIONS:
-g, --grep .*Service
[default: ]
-i, --input input dir [default: .]
-o, --output-type com.phodal.modeling
-s, --suffixes java
for .java file
```
convert to image: plantuml modeling.puml modeling.svg -tsvg
modeling --input=/youpath/ --field-only --without-parent --grep ".*Service|.*Controller|.*Repository"
with --output-type=graphviz
bash
modeling --input=/youpath --field-only -o graphviz --without-impl-suffix
cargo install modeling
modeling .
```rust use modeling::{by_dir}; use modeling::render::PlantUmlRender;
let classes = by_dir("src/"); let puml = PlantUmlRender::render(&classes); ```
output sample:
```puml @startuml
class Animal { + string name + string constructor() +move() }
class Horse extends Animal { +move() }
class Snake extends Animal { +move() }
@enduml ```
ctags analysis based on https://github.com/dalance/ptags with MIT, see in src
ctags parser rewrite from Golang's https://github.com/ruben2020/tags2uml with Apache License.
@ 2020~2021 This code is distributed under the MIT license. See LICENSE
in this directory.