Modeling is a tools to analysis different languages by Ctags
process:
ctags
with optctags
logsvisualing
language support:
```bash Modeling 0.5.0
USAGE: modeling [FLAGS] [OPTIONS]
FLAGS:
-b, --by-modules multiple modules
-f, --field-only only load field in methods
-h, --help Prints help information
-m, --merge merge for same method name
-r, --remove-impl-suffix if class's field start with IRepository
will become Repository
-V, --version Prints version information
-w, --without-parent without class inheritance
OPTIONS:
-g, --grep 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.