16 个版本 (5 个重大更新)
0.6.2 | 2022年3月15日 |
---|---|
0.6.1 | 2022年2月2日 |
0.6.0 | 2022年1月17日 |
0.5.0 | 2022年1月15日 |
0.1.7 | 2021年5月7日 |
在 文本处理 中排名 #1224
每月下载量 45
115KB
3K SLoC
建模
建模是一个通过Ctags分析不同语言的工具
处理
- 分析
ctags
- 生成到opt
- 使用opt调用
ctags
- 使用正则表达式分析
ctags
日志
- 生成结果
- 使用
visualing
可视化结果(可选)
语言支持
- Java
- C#
- C++
- TypeScript
- Golang
- Rust
- ... 其他通过ctags
用法
- 建模,从源代码生成模型。
- 概念化,从源代码生成概念。
- 可视化,UML的可视化。
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 <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
示例:puml到图片
转换为图片:plantuml modeling.puml modeling.svg -tsvg
示例:使用MVC的grep
modeling --input=/youpath/ --field-only --without-parent --grep ".*Service|.*Controller|.*Repository"
示例:与Graphviz和可视化一起使用
使用 --output-type=graphviz
modeling --input=/youpath --field-only -o graphviz --without-impl-suffix
库
cargo install modeling
modeling .
库
use modeling::{by_dir};
use modeling::render::PlantUmlRender;
let classes = by_dir("src/");
let puml = PlantUmlRender::render(&classes);
输出示例
@startuml
class Animal {
+ string name
+ string constructor()
+move()
}
class Horse extends Animal {
+move()
}
class Snake extends Animal {
+move()
}
@enduml
许可证
基于 https://github.com/dalance/ptags 的 ctags 分析,使用 MIT 许可,见 src
从 Golang 的 https://github.com/ruben2020/tags2uml 重新编写 ctags 解析器,使用 Apache 许可证。
@ 2020~2021 本代码根据 MIT 许可证分发。请参阅此目录中的 LICENSE
。
依赖项
~40–56MB
~1M SLoC