2010-04-10 97 views
24

IntelliJ中是否有插件或工具将删除源.java文件中的所有注释?我已阅读了ANT task可以做到这一点..正在寻找在IDE内做同样的事情。另外一个TextPad插件将工作以及..使用IntelliJ删除源文件注释?

+2

为什么不只是运行Ant任务的IntelliJ和收工? – duffymo 2010-04-10 13:07:39

+0

Duffymo,这太有道理了;-) – 2010-04-10 14:02:40

+0

好吧,它确实有道理,我很想找到一个IntelliJ插件,我可以轻松地使用任何旧文件打开我想清除的意见。 – 2010-04-11 16:07:41

回答

67

您可以使用“替换”(或“路径替换”如果你想删除多个文件注释)在正则表达式模式,然后在使用这个正则表达式“要查找的文本”字段:

(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/|[ \t]*//.*) 

并将其替换为空字符串。然后按“全部”将此替换应用于整个文件或所有选定的文件。这将删除文件中的所有块注释和行注释。如果只想阻止评论被删除,请使用此正则表达式来代替:

(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/) 

如果你想只删除行注释,你可以用这个表达式:

([ \t]*//.*) 

不过,我要提醒这只能工作99.99倍。你可能在你的文件中定义就像一个字符串变量:

String myStr = "/** I am not a comment */"; 

此正则表达式将会把这个给:

String myStr = ""; 

:d

希望这有助于。

+0

好主意..但是RegEx似乎不适合我.. – 2010-04-11 00:03:57

+0

第一个?我只是在IDEA 9.0.1中检查过它,它对我有用。 – Behrang 2010-04-11 15:08:34

+0

嗯..我试图在这个http://pastebin.com/u0fQub8j文件..似乎并没有工作。有任何想法吗?我在IntelliJ 8. – 2010-04-11 16:11:35

0

我的解决办法是:

find . -name *.java -type f -exec sh -c "perl -0pe 's#/\*(.|\n)*?\*/##g; s|//.*?\n|\n|g' '{}' > temp.java; cat temp.java > {} ; rm temp.java;" \; 
+1

请缩进和风格化你的代码:) – 2014-08-21 07:05:46

2

迟到了,但有"Structural Search and Replace Dialogs"选项,可以被用来搜索不同类型的意见,并取代它们

去编辑=>查找=>从结构替换...

  • 输入下面一个 “搜索模板:”

单线

// $CommentContent$ 

多线

/* 
    $CommentContent$ 
*/ 

的Javadoc

/** 
    $CommentContent$ 
*/ 
  • 离开“更换模板:”空白

  • 选择合适范围

  • 点击 '查找',然后 '全部替换'

  • 你S HOULD认为没有更多的评论

注:,这可能弄乱格式,所以你将不得不重新格式化受影响的代码

+0

对我而言最佳答案 – otaviodecampos 2017-07-26 17:59:50