寻求Dart与IntelliJ环境下的方法/构造函数参数排序脚本
Dart/IntelliJ 中对齐构造函数调用与定义的参数顺序
当然有现成的方案,不用从零写脚本,下面分两种场景说明:
一、用IntelliJ内置格式化功能(推荐)
IntelliJ IDEA 或 Android Studio 本身就支持按定义顺序排序命名参数,步骤如下:
- 打开设置(快捷键:Windows/Linux 按
Ctrl+Alt+S,Mac 按Cmd+,) - 导航到
Languages & Frameworks > Dart > Formatting - 在
Arguments分组下,找到Named arguments,勾选Sort named arguments,并选择Declaration order选项 - 保存设置后,选中要调整的代码块,按格式化快捷键(
Ctrl+Alt+L/Cmd+Opt+L),就能自动把构造函数/方法的命名参数按定义顺序重排。
示例效果
类定义:
class MyClass { MyClass({this.para1, this.para2}); int? para1; int? para2; }
原调用代码:
MyClass(para2: 2, para1: 1);
格式化后自动变为:
MyClass(para1: 1, para2: 2);
二、自定义脚本(特殊场景需求)
如果内置功能满足不了你的特殊规则,可以基于Dart的analyzer包写一个简单的处理脚本:
- 在项目的
pubspec.yaml中添加依赖:dev_dependencies: analyzer: ^6.0.0 - 核心逻辑思路:
- 使用
analyzer解析目标Dart文件,定位所有构造函数调用节点 - 找到对应类的构造函数定义,提取参数的声明顺序列表
- 重排调用节点中的命名参数,按照定义顺序重新生成代码
不过绝大多数场景下,内置格式化功能已经足够用,没必要折腾自定义脚本。
- 使用
内容的提问来源于stack exchange,提问作者Bobin
相关产品推荐
相关产品推荐

