【问题标题】:How to make snippets show up only with specific file extensions in Visual Studio Code?如何使片段仅显示在 Visual Studio Code 中的特定文件扩展名?
【发布时间】:2021-04-03 22:51:53
【问题描述】:

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

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

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

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

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

提前谢谢你,

【问题讨论】:

  • 添加功能请求以添加文件全局scope 属性,该属性适用于文件中定义的所有sn-ps,除非在sn-p 中被否决/定义。

标签: visual-studio-code scope code-snippets


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-16
    • 2018-07-01
    • 1970-01-01
    • 2022-09-23
    • 2019-03-12
    • 2012-05-23
    • 2018-11-07
    • 2021-08-23
    相关资源
    最近更新 更多