Modeling is a tools to analysis different languages by Ctags
process:
- analysis
ctags
- generate to opt
- call
ctags
with opt - analysis
ctags
logs by regex
- generate results
- visual result with
visualing
(optional)
language support:
- Java
- C#
- Cpp
- TypeScript
- Golang
- Rust
- ... others by ctags
- modeling, generate model from source code.
- concepting, generate concepts from source code.
- visualing, visualization the uml.
Modeling 0.6.2 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 <grep> by grep regex rules: for example: `.*Service` [default: ] -i, --input <input> input dir [default: .] -o, --output-type <output-type> support: puml, mermaid, graphviz with json [default: puml] -p, --packages <packages>... filter by packages, like: `com.phodal.modeling` -s, --suffixes <suffixes>... filter by suffixes, like: `java` for .java file --without-suffix <without-suffix> remove specify suffix by text, for example `DemoDto` with be `Demo` [default: ]
modeling --input=/youpath/ --field-only --without-parent --grep ".*Service|.*Controller|.*Repository"
with --output-type=graphviz
modeling --input=/youpath --field-only -o graphviz --without-impl-suffix
convert to image: plantuml modeling.puml modeling.svg -tsvg
PS: need to set --output-type graphviz
, in order to generate output.json
file
modeling -i youpath -o graphviz visualing
cargo install modeling modeling .
use modeling::{by_dir}; use modeling::render::PlantUmlRender; let classes = by_dir("src/"); let puml = PlantUmlRender::render(&classes);
output sample:
@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.