fisheva / Eva-Theme

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

期望增加更多textMate token 高亮配色的支持 #117

Closed BigMadDonkey closed 4 months ago

BigMadDonkey commented 4 months ago

Eva Dark的配色真的很舒服,不过经常遇到某些token的scope没有适配默认配色的情况。 例如 glsl:

image

这种,类型都没有设置默认的高亮。我觉得是不是可以给storage.xxx的scope提供一些默认的配色支持(或者再多一点通用的scope的配色支持)?

fisheva commented 4 months ago

请问这是什么编程语言,文件类型是什么?最好提供一段代码。这个文档说明了已支持的编程语言

BigMadDonkey commented 4 months ago

语言为GLSL,代码文件后缀.frag 我贴一段吧:

precision mediump float;

// uniform vec2 iResolution;
// uniform float iTime;
// uniform vec4 iMouse;

float plot(vec2 st, float pct) {
        return 1.0 - smoothstep(0.0, 0.02, abs(st.y - pct));
}

void main() {
    vec2 st = gl_FragCoord.xy / iResolution.xy;
    vec3 color = vec3(0.0, 1.0, 0.0);

    vec2 center = vec2(0.5);
    vec2 pos = st - center;

    float r = length(pos) * 3.0;
    float a = atan(pos.x, pos.y);
    a += iTime; 
    a *= 4.0;

    float f = cos(a);

    color += vec3(smoothstep(f, f + 0.1, r));

    gl_FragColor = vec4(color, 1.0);
}

语法解析我是用了WebGL GLSL Editor的插件 https://github.com/racz16/WebGL-GLSL-Editor

其实我是感觉主题配色按照语言一个个做支持有点坐牢,是不是VSCode的Color Theme有一些比较默认的token scope,我觉得对那些通用的scope设置统一配色是不是就好了?比如这个storage.type的scope 我看其他主题一般都有自己的配色覆盖

fisheva commented 4 months ago

同一作用的关键字,VSCode的token scope不同语言就是会有些许差异。这个语言的教程不像其它语言那么好搜,您能提供一个GLSL语言基础语法教学的教程链接吗?

BigMadDonkey commented 4 months ago

https://learnopengl.com/Getting-started/Shaders 请参考这个吧

fisheva commented 4 months ago

安装WebGL GLSL Editor插件,再把上面教程里的大部分示例代码粘到.frag文件里看了下,发现能新增的着色优化只有一句storage.type.glsl,请重启VSCode更新Eva Theme查看。

可以看出这个语法解析器还有很多待优化的地方,比如

如果您希望这些字符的显示得到改善,得给WebGL GLSL Editor插件提issue。我日常没有用到GLSL,未来如果您发现语法解析升级完善了,可以再提issue让我同步对该语言的支持。

BigMadDonkey commented 4 months ago

🤦您该不会是把 C++代码当成GLSL了吧 GLSL语法很简单 没有什么class 也没有访问修饰符 (也没有字符串) "#" 我看是归类到meta.preprocessor了

image

注释的话 就是类C的 “//”注释

我的问题,那个网站确实容易引起误解,有的代码块是C++有的是GLSL。不过GLSL的语法本身真的没啥好说的,如果您以后还有想法可以再参考这个 https://thebookofshaders.com/ 这里涉及到的代码保证都是GLSL的

fisheva commented 4 months ago

见笑了,我会的编程语言很少(:з」∠)

如果是对#号注释的解析,会是这样 image scope规则里有meta.preprocessor.glsl的字符可能不只注释。我先把这条加上设为注释色吧,影响到非注释的地方您再报给我,您再重启更新下。