如何使代码片段仅在 Visual Studio Code 中显示特定文件扩展名?

Are*_*323 3 scope code-snippets visual-studio-code

我已经尝试解决这个问题好几个星期了,但我最终放弃了并决定寻求帮助。

我为我的 Web 项目编写了很多代码片段(HTML、PHP、JS、VUE、Laravel Blade 等),并且创建了几个全局 .code-snippet 文件,它们出现在我在 VSCode 中打开的每个项目或文件中,这这不是一个理想的行为,我会向你解释原因。

当我打开 C++ 项目时,我不希望编辑器提示我 HTML 内容或 Bootstrap 图标,我制作了特定的 C++ 脚本(并向 C++ 语言模式添加了 .h 扩展名,否则它们只能处理带有 .cpp 扩展名的文件) ,不幸的是我不能用我之前提到的语言做同样的事情,因为它们确实是不同的语言。

在我的\AppData\Roaming\Code\User\snippets文件夹中,我可以看到有两种类型的文件,我的自定义片段具有 .code-snippets 扩展名,特定于语言的片段具有 .json 扩展名(示例cpp.json),语法是相同的。

我可以为每个文件扩展名创建一个副本,并将其与我需要的每种语言配对(custom.code-snippets例如html.json,,,等),但这对我来说看起来非常愚蠢,因为如果我想添加一个片段,我必须将其添加到每个手动归档。php.jsonblade.json

先感谢您,

Are*_*323 6

我发现的最佳解决方案是对单个片段使用“范围”,但我对此并不满意:

"Bootstrap Icons Alarm Fill": {
    "prefix": ["bsi-alarm","bsi-clock"],
    "body": "<i class='bsi bi-alarm'></i>",
    "description": "Bootstrap Icons Alarm Fill"
},
Run Code Online (Sandbox Code Playgroud)

我可以添加到每个片段:"scope":"html,php,blade,vue,javascript,xml",使其仅显示指定的文件扩展名,但我必须将其添加到每个片段(想象一下,仅在此文件中我有超过 1200 个片段,我可以轻松做到这一点,但我'我不想这样做),我想让整个文件特定于几个扩展名。