vscode快速渲染uml
目的
为什么要用VSCOde 生成 uml 类图。用idea不香吗?idea生成一个类的uml类图还是很不错的。但是当时生成整个项目或则某个包下的uml就不方便了。也有可能是我不知道方便的办法。
安装插件
具体安装方式百度 vscode plantuml
bash 过滤出类
windows 下可以用git 自带的bash 。或则用wsl
find . -name '*.java' | xargs cat | \
awk -vRS='{' 'match($0,/public\s+((class|interface).+(extends|implements).+$)/,a){print a[1] "#" }' | \
awk -vRS="" '{gsub("\n"," ");print}'| awk -vRS="" '{gsub("#","\n");print}'> a.puml
bash命令解释
find . -name '*.java' | xargs cat
用find 命令找出所有java 文件的路径用cat 命令合并
awk -vRS='{' 'match($0,/public\s+((class|interface).+(extends|implements).+$)/,a){print a[1] "#" }'
设置把awk的行分割符RS改为{ ,再用正则public\s+((class|interface).+(extends|implements).+$ 匹配类名或接口名。 输出第一个捕获组和一个# ,# 用于后面分割。
awk -vRS="" '{gsub("\n"," ");print}'| awk -vRS="" '{gsub("#","\n");print}'> a.puml
第一个awk 把换行删去。把文件合并成一行。第二个awk 再把# 换成换行符\n
修改puml 文件
以halo 开源项目为例 用vscode 的正则去掉所有泛型后 你会得到一个这样的文件 头部加上@startuml halo 尾部加上 @enduml
按快捷键alt+d 预览。 如果报错多半是因为语法错误。 可以参考官网教程
ctrl+shift+p 输出为svg.
效果
|