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

How to make snippets show up only with specific file extensions in Visual Studio Code?

几周来我一直在努力解决这个问题,但我最终放弃了并决定寻求帮助..

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

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

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

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

提前谢谢你,

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

"Bootstrap Icons Alarm Fill": {
    "prefix": ["bsi-alarm","bsi-clock"],
    "body": "<i class='bsi bi-alarm'></i>",
    "description": "Bootstrap Icons Alarm Fill"
},

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