fisheva / Eva-Theme

A comfortable and semantic theme.
https://marketplace.visualstudio.com/items?itemName=fisheva.eva-theme
MIT License
452 stars 38 forks source link

html里无效或不推荐的代码颜色有误 #52

Closed Ramonsyte closed 3 years ago

Ramonsyte commented 3 years ago

因为我是初学,在讲到CSS之前, 老师的html案例用了过时的bgcolor,border等代码, 我检查主题代码发现本应用灰色和下划线表示的代码, 被另一些规则覆盖了, 下面有几张截图, 我删掉规则内的代码以后就显示正常了 (个人喜欢红色+下划线所以修改了一下)

有些看不懂的地方,如果改错了请不要笑我(雾

Screenshot

这是覆盖的规则

image image

这是被覆盖掉的样式 image

fisheva commented 3 years ago

初学就深入到主题内部文件,好厉害! 能否提供些你说的颜色有误的原代码,和截图(标注上你认为颜色不对的地方)这样我好验证,谢谢!

Ramonsyte commented 3 years ago

初学就深入到主题内部文件,好厉害! 能否提供些你说的颜色有误的原代码,和截图(标注上你认为颜色不对的地方)这样我好验证,谢谢!

谢谢,其实很多我也不懂 这里我用还没修改过的Eva-Light-Italic为例 Html里主要是这段代码的颜色没有被应用 { "name": "Deprecated;不赞成的", "scope": "invalid.deprecated", "settings": { "fontStyle": "", "foreground": "#8E8E90" } }, image

不被赞成使用的属性应该用灰色表示, 但实际呈现的效果是青色( 下图table标签里的属性都不被赞成使用) image

我搜索deprecated, 发现有两段规则里包含了invalid.deprecated , 并且应用的就是青色, 如下 { "name": "support.function", "scope": "meta.function-call,support.function.construct.output,invalid.deprecated.gradient.function.css,invalid.deprecated.function.css, meta.function-call.python support.function.builtin.python, support.function.go, entity.name.function.macro.rust, meta.attribute.rust", "settings": { "fontStyle": "italic", "foreground": "#00BEC4" } },

{ "name": "Attributes", "scope": "entity.other.attribute-name,invalid.deprecated.entity.other.attribute-name", "settings": { "fontStyle": "italic", "foreground": "#00BEC4" } },

于是我删掉 "name": "Attributes"代码 里的 invalid.deprecated, 部分不被赞成使用的属性就以正常颜色显示了( 灰色显示的属性), image

但这种修改方式不彻底, 后面仍有不少属性颜色是青色, 应该还有其他代码在生效, 并且如 frame 这类被废弃的元素, 结束标签的颜色也以正常标签的红色显示. image

fisheva commented 3 years ago

我懂你意思了,这是个颜色的 信息密度 问题。

Eva Theme 追求的效果是给用户形成各种 颜色→属性 的信息映射:如在HTML里,红棕色是 标签名,水蓝色是 标签属性名,绿色是 标签属性值。这样用户不用细看,就知道各字符表示什么。如果颜色不对,可能是哪里写错了? 118344994-44c43b00-b564-11eb-8c76-4f5b6a0b9dda

而如果这样显示的话,用户视线扫到这里的时,注意力就得多停留一会,得到的信息是什么呢? 1,border和 align 在 = 号前面, 说明是 标签属性名; 2,颜色是灰色,而不是水蓝色,说明是不被赞成使用的属性名。

多一步反应过程就多一点注意力消耗。所以 “invalid: 不被赞成使用的属性名” 这层含义,我觉得更好的方式是由VSCode或别的插件给出标记,比如给字符底部加上灰色波浪线。

Ramonsyte commented 3 years ago

我懂你意思了,这是个颜色的 信息密度 问题。

Eva Theme 追求的效果是给用户形成各种 颜色→属性 的信息映射:如在HTML里,红棕色是 标签名,水蓝色是 标签属性名,绿色是 标签属性值。这样用户不用细看,就知道各字符表示什么。如果颜色不对,可能是哪里写错了? 118344994-44c43b00-b564-11eb-8c76-4f5b6a0b9dda

而如果这样显示的话,用户视线扫到这里的时,注意力就得多停留一会,得到的信息是什么呢? 1,border和 align 在 = 号前面, 说明是 标签属性名; 2,颜色是灰色,而不是水蓝色,说明是不被赞成使用的属性名。

多一步反应过程就多一点注意力消耗。所以 “invalid: 不被赞成使用的属性名” 这层含义,我觉得更好的方式是由VSCode或别的插件给出标记,比如给字符底部加上灰色波浪线。

明白了, 区分开 "不被赞成使用的属性" 这类功能的确只是对初学者有点帮助, 以后熟练了也不会去依赖. 多谢解答