![]() |
1
8
实际上,在Sublime中,语法定义通常是指基于外部条件的特定类型的文件:文件的扩展名、文件的第一行(例如bash shebang)或专门重写自动检测的用户。 一种语法允许另一种语法临时“控制”语法高亮显示是可能的,但这需要由基本语法定义的作者有意识地执行。系统需要知道什么时候应该输入一个新的语法,什么时候应该回到上一个语法,以及(最重要的)在这两者之间实际使用什么语法。
例如,Sublime附带了一个适用于
所以在你的情况下,你想做的在技术上是可能的,但可以说,它不能“开箱即用”;您需要一个HTML语法,它知道如何专门处理这种类型的脚本标记。包控件上可能已经存在这样的语法。这也是一个修改,你可以让自己,如果你这么想。这个答案的其余部分将告诉您如何做到这一点(底部还有一个指向已修改文件的链接)。
基本的想法是我们要创造一个
这些说明还假设您使用的是最新稳定的Sublime版本,目前是3176。新的构建通常会带来新的语法,因此,如果您现在运行的是旧版本(如果您来自神秘的未来,则运行新版本),则基本指令保持不变,但文件的内容可能不同。正如我们将看到的,我们的更改是基于复制现有的功能。 1打开HTML语法进行编辑
如果尚未安装,请安装
PackageResourceViewer
打包,然后使用命令
在幕后,这是创建一个名为
2告诉语法如何识别着色器标记
在打开的语法文件的顶部附近是一组
在下面,我们将创建自己的变量,该变量包含正则表达式以匹配
这可能需要扩展,也可能不需要扩展(我不熟悉WebGL如何使用这个标记)。如果可能的内容有多个变体,则可以像上面的JavaScript示例那样进行扩展,以包含额外内容。 三。包括嵌入GLSL语法的上下文
在文件的下面(在build3176中,在进行上述更改之后,大约在第315行左右)是一个名为
前几行包括语法逻辑,用于突出显示
在这里,我们将创建我们自己的部分来悬挂
正如我们所看到的,这与上面的内容几乎相同,但是使用了不同的范围(下面将详细介绍)。
|
![]() |
2
1
不是直接的回答,而是另一种解决办法。
然后在JavaScript中可以像这样包含它
然后你可以用 rollup 如果要支持旧浏览器,请将所有文件合并为一个。 这是什么 three.js 做。
|
![]() |
3
0
与我的懒惰相比,答案有点太复杂了: 更改:
但所有其他脚本标记都会运行。语法高亮显示适用于glsl。Sublime认为它是javascript,但似乎在颜色方面做得很好。我主要需要的颜色只是为了调试和测试,所以我可以用这种方式生活,只是添加
|
|
user3186555 · WebGL颜色约定-我使用哪种以及为什么? 7 年前 |
![]() |
Elias · 在webgl中生成文本纹理:Alpha不透明 7 年前 |
![]() |
x2dragunov2x · 每帧绘制一个持久三角形[重复] 7 年前 |
![]() |
Elias · webgl 2d将两个透明纹理叠加在一起 7 年前 |