在 IntelliJ 全局搜索中从搜索结果中排除评论?

Rya*_*n D 4 search comments intellij-idea find

我发现语法错误“它是”作为一个大项目的一页上的所有格。我试图在页面上搜索它的任何其他用法以纠正它,但我得到的结果包含数百条评论。我只想过滤项目中面向用户的重要部分。有没有办法从全局搜索的结果中排除评论?

djv*_*jvg 5

在最近的版本中,至少在 PyCharm 2018(类似于 IntelliJ)中,有一个过滤器选项“除了评论”,如下所示:

带有过滤器选项的“在路径中查找”对话框的屏幕截图

(单击小过滤器图标以显示下拉列表。)

注意:选定的过滤器选项在会话期间仍然存在,除非您打开下拉菜单,否则活动过滤器选项不会立即显现。为防止意外限制后续搜索,之后切换回“任何地方”可能是个好主意。

另一种方法是在搜索对话框中启用“正则表达式”(或“正则表达式”)复选框,然后使用某种负面环视来排除注释。

在一种情况下,我需要# this is a comment从搜索中排除带有单行注释(例如)的行,而不是带有内联注释的行(例如a=b+1 # this is an inline comment)。以下是诀窍,搜索something(对于 Python 注释,以 开头#):

^((?!#).)*something.*$

请注意,我不是正则表达式专家,所以这个正则表达式模式可能会有很大的改进,但它说明了这个想法。你可以在regex101上玩这个。当然,任何改进模式的评论都是最受欢迎的。

请注意,这种方法是否可以扩展到多行注释。(如""" several lines here """)。


kuk*_*ido 0

如果不真正查看代码,很难提出建议,但由于这似乎是一次性的事情,我会在注释中使用全局搜索来临时用一些#temporary-token#替换“it's”,然后在任何地方使用全局搜索,你应该剩下的一切。然后回滚评论的临时令牌。使用 VCS 应该很容易尝试。只是一个想法。

在此输入图像描述

正如您所看到的,使用“仅评论”选项时,只能找到一个#token。

在此输入图像描述