对于应该看起来像这样的矩阵:
const ColorFilter sepia = ColorFilter.matrix(<double>[
0.393, 0.769, 0.189, 0, 0,
0.349, 0.686, 0.168, 0, 0,
0.272, 0.534, 0.131, 0, 0,
0, 0, 0, 1, 0,
]);
但是dartfmt将其更改为如下形式:
const ColorFilter sepia = ColorFilter.matrix(<double>[
0.393,
0.769,
0.189,
0,
0,
0.349,
0.686,
0.168,
0,
0,
0.272,
0.534,
0.131,
0,
0,
0,
0,
0,
1,
0,
]);
这很难读。因此,如何保持原始格式,以便可以更“友好地”看到Matrix。或者至少如何使Dartfmt不重新格式化任何列表?
最佳答案
dartfmt基于dart_style的FAQ中描述了这种情况:
https://github.com/dart-lang/dart_style/wiki/FAQ#why-does-the-formatter-mess-up-my-collection-literals
简而言之,您只需要在矩阵定义中的某处添加注释,例如:
const ColorFilter sepia = ColorFilter.matrix(<double>[
0.393, 0.769, 0.189, 0, 0, //
0.349, 0.686, 0.168, 0, 0,
0.272, 0.534, 0.131, 0, 0,
0, 0, 0, 1, 0,
]);
然后dartfmt将不会尝试在矩阵中设置换行符的格式。但是,它将仍然修复不需要的空间,因此它将使您的示例成为:
const ColorFilter sepia = ColorFilter.matrix(<double>[
0.393, 0.769, 0.189, 0, 0, //
0.349, 0.686, 0.168, 0, 0,
0.272, 0.534, 0.131, 0, 0,
0, 0, 0, 1, 0,
]);
可以通过将0更改为0.000来解决:
const ColorFilter sepia = ColorFilter.matrix(<double>[
0.393, 0.769, 0.189, 0, 0, //
0.349, 0.686, 0.168, 0, 0,
0.272, 0.534, 0.131, 0, 0,
0.000, 0.000, 0.000, 1, 0,
]);
关于dart - 如何为矩阵制作Dartfmt “friendly”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62081162/