Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio code 是否可以动态添加;关键词;在VS代码语法突出显示中?_Visual Studio Code_Syntax Highlighting_Grammar_Vscode Extensions_Tmlanguage - Fatal编程技术网

Visual studio code 是否可以动态添加;关键词;在VS代码语法突出显示中?

Visual studio code 是否可以动态添加;关键词;在VS代码语法突出显示中?,visual-studio-code,syntax-highlighting,grammar,vscode-extensions,tmlanguage,Visual Studio Code,Syntax Highlighting,Grammar,Vscode Extensions,Tmlanguage,我一直在玩VS代码中的语法高亮显示,到目前为止,我已经能够使用自定义JSON TextMate语法获得相当好的结果。虽然GCC ARM汇编已经有了一个扩展,但我认为它太糟糕了,所以我用源代码作为起点来创建自己的扩展 然而,有一种情况我似乎不知道如何处理。在GCC ARM中,您可以使用.macro指令创建如下宏: .macro print format, storage .data string\@: .asciz "\f

我一直在玩VS代码中的语法高亮显示,到目前为止,我已经能够使用自定义JSON TextMate语法获得相当好的结果。虽然GCC ARM汇编已经有了一个扩展,但我认为它太糟糕了,所以我用源代码作为起点来创建自己的扩展

然而,有一种情况我似乎不知道如何处理。在GCC ARM中,您可以使用
.macro
指令创建如下宏:

                .macro print format, storage
                .data
string\@:       .asciz "\format"
                .align 2
                .text
                .ifnb \storage
                mov r1, \storage
                .endif
                ldr r0, =string\@
                bl printf
                .endm
如果您从未看过GCC ARM,那么您只需要知道第一行开始宏,其中
print
是宏的名称,
format
storage
是它的参数。然后,在宏中,您可以在任何需要的地方使用参数值和
\format
\storage
。还有
\@
,这是一个特殊的“变量”,仅在宏中有意义。它只是一个每次调用宏时递增的数字

我想做的是以某种方式编写语法高亮显示,它将动态识别宏声明中的参数名称,然后在它们出现在宏中的任何地方为它们的相应用法(从正斜杠开始)上色。这样做的问题似乎是,我需要以某种方式动态创建一个新的“关键字”列表(或任何您想要调用的文本字符串),我可以从宏上下文中的规则中引用这些关键字

这在使用TextMate语法的VS代码中可能吗?在VS代码中有可能吗?如果没有,在任何编辑器中都可以吗?如果TextMate语法无法实现,我需要做什么才能实现这一点


如果有什么我解释得不好的地方,请随时询问更多细节,我会编辑问题。

我认为TextMate语法不可能做到这一点,这更多是在语义突出显示领域(VSCode还不支持:)。我认为TextMate语法不可能做到这一点,这更多的是语义突出显示领域(VSCode还不支持:)。