dart - 如何为矩阵制作Dartfmt “friendly”?

标签 dart formatting

对于应该看起来像这样的矩阵:

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/

相关文章:

flutter - 使用 RefreshIndicator 时,无法将参数类型 'Future<List<User>>' 分配给 onRefresh 中的参数类型 'Future<void> Function()'

dart - Dart中的身份功能?

python - 如何在 Python 中格式化 txt 文件

go - fmt 格式说明符仅打印具有非零值的字段

dart - 填充子容器背景颜色时容器阴影消失

flutter - 什么是 D/AudioManager(12346) : getStreamVolume isRestricted mode = 0 in flutter?

flutter - 直到滚动到底部,屏幕才能实时更新

java - java.util.Formattable 上的示例是否不正确?

javascript - 如何使用正则表达式用 replaceAll 格式化 JavaScript 字符串

c# - 如果数字小于 10,则添加 0