Closed archiewx closed 5 years ago
我用的dark 主题,另外几个同理。
能把你这个代码复制一份吗? 我对照代码, 再看你提交的主题修改才好看懂 你的修改改变了哪些内容。
FutureBuilder<List<SaleOrderEntity>>(
future: _fetchList(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasData) {
return ListView(
padding: EdgeInsets.zero,
physics: AlwaysScrollableScrollPhysics(),
children: _fitWidgets(snapshot.data),
);
}
return CupertinoActivityIndicator();
},
),
这段代码。
双箭头位置
我看懂您是把"keyword.operator.bitwise" 从#56B7C3变成#CF68E1。 但其实在这段代码里, 这二个颜色都不该是 >> 本应的颜色, 代码中的意思是二个闭合的尖括号(颜色本应和{} [] ()一致), 但VSCode把尖括号起始 << 识别成了二个 小于号, 把后半段 >> 识别成了位运算符号。
小于号 和 位运算符号 颜色为什么不同? 因为 小于号 涉及比较, 比较的结果肯定是一个布尔值, 所以给 小于号 的颜色与 false true相同; 而 位运算符号 与 + - * / 都是数字间的运算, 所以给它们归为一类颜色。
这个问题是VSCode本身字符识别算法的问题, 所以不能接受您这次修改建议。
不过您可以在VSCode设置里添加下列代码, 使其在您自己的电脑上, 看着颜色相同。
"editor.tokenColorCustomizations":{
"textMateRules": [
{
"scope":"keyword.operator.bitwise.dart",
"settings": {
"foreground": "#CF68E1",
}
}
]
},
这个例子是本应是个 或|| 符号, 被VSCode识别成2个 位运算符号|, 从使用率来说, 肯定是 或|| 的使用率比位运算多。 如果按VSCode现有的算法, 将错就错把 dart文件里的位运算符号改成紫色, 那下面这张情况区分度又会下降(简单写的例子, 不一定恰切)
所以该不该将错就错, 我也挺纠结, 也许哪天心情偏向改变一点, 就把这条改了。
OK。没事。的确是vscode 识别错误,不过两个箭头分开写不太舒服。合并到一起vscode 瞎识别的。好的。我在自己本地修改使用。
加一个空格就可以识别了。但是vscode 这里格式化就消失了。就提交pr,其实很多知名主题都是这样做的,例如md, one-dart之类的都是这样处理的。
二进制运算符,或者是 <xx<>>符号应该独立出来,我们编码里面称为位运算符和普通的>, < 区分开的
这里死别有问题,如果这样:
正常了。但是格式化程序不允许这样,所以进行了修复。