如何提升 IntelliJ IDEA 中的搜索效率?看看这2个IDEA隐藏的天花板技巧

引言

今天来分享2个很多idea老手都不知道的小技巧,旨在提升在 IntelliJ IDEA 系列 IDE 中的开发效率。🚀
该技巧可轻松扩展到任何语言的项目中,也同样适用于goland,pycharm。

picture.image

看看你是否对下面的截图有同感!🙊

picture.image

如果你在 Flutter 项目(尤其是大型项目 ☕️)中使用 IntelliJ IDEA 进行开发,并且项目中包含来自不同包的生成文件,如果有比较大的重复的内容,那么一般的搜索技巧很可能就会失效。

你可能已经经历过,使用“在文件中查找”功能时,在非生成文件中滚动查找类、变量或其他内容时的痛苦。

而IDEA也想到了这个问题,所以推出了一个file mask技巧:通过特定模式来筛选、匹配或隐藏数据的技术。其核心思想是“用规则过滤目标”,常见于文件搜索、网络配置、图像处理等场景。


如何创建高效的文件掩码?⚡️

好消息是,有一个解决方案!技巧在于简单地编辑文件掩码,如下所示:

从默认的:

*.dart

picture.image

改为:

!.g.dart,!.freezed.dart,*.dart

picture.image 这里涉及到了几个常用的通配符,

picture.image 你可以清楚地看到差异,匹配结果从 28 个减少到 19 个。
你会发现这更舒适,因为这意味着在这种情况下,你的下拉窗口中移除了超过 9 个结果。
这意味着更少的滚动!!!😍

picture.image

它是如何工作的?🧐

掩码: !*.g.dart,!*.freezed.dart,*.dart

操作符

  • , 表示匹配正则表达式之间的分隔符。
  • ! 表示否定(排除)。

表达式解析

  1. 匹配 1!*.g.dart
    不匹配以 .g.dart 结尾的文件。
  2. 匹配 2!*.freezed.dart
    不匹配以 .freezed.dart 结尾的文件。
  3. 匹配 3*.dart
    默认匹配所有 Dart 文件。

因此,IDE 将仅在 Dart 文件中匹配表达式,并跳过 Freezed 或 Riverpod 生成的文件的匹配。

通过扩展,你可以轻松地添加或删除任何文件匹配,只需将其添加到掩码中即可:
,!*.new_file_mask_i_want_to_skip.ext,*.new_file_i_want_to_match.ext

file mask的缺点是无法排除一整个路径下的文件,这种情况就可以使用scopes功能。

JetBrains 作用域(Scope)是一组文件的集合,用于在特定操作(如代码搜索、重构、导航等)中临时包含或排除这些文件。通过创建作用域,您可以定制搜索范围,使其仅聚焦于项目的特定部分,从而过滤掉无关的匹配项和干扰信息。

配置自己的scopes

picture.image

比如你用python Django开发的时候,很多时候只想搜索model的位置,就可以向这样配置一个自己的scope

file:*/models.py||file:*/models/*.py

接着就可以在搜索的实现选择scopes了

picture.image

0
0
0
0
评论
未登录
暂无评论