如何在JetBrains IDE中批量为多个.dart文件的类插入指定扩展代码
方案1:使用JetBrains IDE内置的结构化搜索替换(SSR)功能
该方案为IDE原生功能,无需额外安装插件,完全匹配你需要的操作流程:
- 打开Android Studio顶部菜单
Edit→Find→Replace Structurally - 搜索模板填写
class $ClassName$ $Rest$,右侧文件类型指定为Dart - 替换模板填写
class $ClassName$ 你要插入的自定义内容 $Rest$ - 点击
Scope选项,可直接选择你预先选中的目标文件集合,也可指定目录、整个项目等范围 - 先点击
Find预览匹配结果,确认所有匹配的类都符合预期后,点击Replace All完成批量修改
注意:如果你的Dart类带有abstract等修饰符,可将搜索模板调整为$Modifier$ class $ClassName$ $Rest$,即可匹配带修饰符的类定义。
方案2:使用全局正则替换
如果对正则语法熟悉,可使用更简便的全局替换功能实现:
- 打开全局替换面板:快捷键
Ctrl+Shift+R(Windows/Linux)/Cmd+Shift+R(Mac) - 勾选右上角的
Regex正则匹配选项,可同时勾选Skip comments避免匹配到注释里的class关键词 - 搜索框填写正则:
class\s+(\w+)\s+ - 替换框填写:
class $1 你要插入的自定义内容 - 在
Scope区域选择目标文件集合,预览匹配结果无误后点击批量替换即可。
方案3:本地脚本批量处理
如果修改逻辑更复杂,可自行编写简单脚本批量处理文件,Python示例参考:
import os import re # 替换为你要插入的内容 insert_content = "extends BaseEntity " # 替换为你的目标文件目录 target_dir = "./lib" for root, dirs, files in os.walk(target_dir): for file in files: if file.endswith(".dart"): file_path = os.path.join(root, file) with open(file_path, 'r', encoding='utf-8') as f: content = f.read() # 正则匹配类定义并插入内容 modified_content = re.sub(r'class\s+(\w+)\s+', rf'class \1 {insert_content}', content) with open(file_path, 'w', encoding='utf-8') as f: f.write(modified_content)
注意:运行脚本前务必提前备份代码,避免误改导致内容丢失。
内容的提问来源于stack exchange,提问作者Csisanyi
相关产品推荐
相关产品推荐

