VSCode中为Java程序添加Javadoc的正则缩进修正方案
解决VSCode正则生成JavaDoc模板的缩进对齐问题
我在VSCode中用正则给Java代码加Javadoc模板,原查找正则为(^[\s]*.*\{|^[\s]*.*@.*$),替换内容是/***/$1。虽然能匹配目标行,但生成的/***/模板没和下方代码对齐,需要调整正则实现精准缩进。
输入代码
public class Main { class innerClass { int a; int b; @Override private int goo() { } } String a; public static void main (String[] args) { // blablabla } @Override public int foo(int a) { } }
当前输出(缩进错误)
/***/ public class Main { /***/ class innerClass { int a; int b; /***/ @Override private int goo() { } } String a; /***/ public static void main (String[] args) { // blablabla } /***/ @Override public int foo(int a) { } }
期望输出(缩进对齐)
/***/ public class Main { /***/ class innerClass { int a; int b; /***/ @Override private int goo() { } } String a; /***/ public static void main (String[] args) { // blablabla } /***/ @Override public int foo(int a) { } }
解决方案
修改后的正则配置
- 查找正则:
^(\s*)(.*\{|.*@.*$) - 替换内容:
$1/***/\n$1$2
原理说明
- 把原正则拆分为两个捕获组:
^(\s*)专门捕获目标行开头的所有空白缩进,(.*\{|.*@.*$)捕获需要添加模板的目标行内容(类定义、方法定义、注解行)。 - 替换时先输出
$1/***/,让/***/继承目标行的缩进;再换行输出原目标行的完整内容$1$2,保留原代码的结构和缩进。
内容的提问来源于stack exchange,提问作者kesarling
相关产品推荐
相关产品推荐

