【问题标题】:VSCode snippets as extensionVSCode 片段作为扩展
【发布时间】:2021-01-16 11:10:32
【问题描述】:

我在snippets/snippet.json 文件中创建了这样的代码 sn-p:

{
  "Add subscription": {
    "scope": "typescript",
    "prefix": "!subscription",
    "body": "subscription: Subscription$0;",
    "description": "Add subscription property to a class"
  }
}

我也创建了一个package.json 文件:

{
  // ...
  "contributes": {
    "languages": [
      {
        "id": "typescript",
        "aliases": ["typescript", "ts"],
        "extensions": [".ts"]
      }
    ],
    "snippets": [
      {
        "language": "typescript",
        "path": "./snippets/snippets.json"
      }
    ]
  }
}

如果我将此 sn-p JSON 放入任何项目的 .vscode/mysnippets.code-snippet 文件中,那么它工作正常。但是如果我作为扩展发布然后安装它,它就不起作用了。

有什么想法吗?

【问题讨论】:

  • 如果删除scope属性并重命名文件typescript.json会怎样
  • 没用
  • 我试图在测试扩展中复制它,但是当我使用 F5 启动/调试扩展并在调试的 VSC 中对其进行测试时,它总是有效
  • 我不明白怎么了。在调试模式下,VSC 说Congratulations, the extension is working!,但是当我期望的时候,sn-ps 没有显示……你能检查我的扩展吗?叫ddata-snippets ...我完全一无所知

标签: visual-studio-code vscode-extensions code-snippets vscode-snippets


【解决方案1】:

主要问题是扩展安装为禁用扩展。

使用调试模式,一条消息会告诉您可能的原因。

您在package.json 中有一个"main" 属性,但没有"activation" 属性。

因为这个sn-p扩展中没有index.js,所以去掉这行

"main": "index.js",

要获得更干净的包,还需要定义一个文件 .vscodeignore 文件,其中包含内容

.vscode/**
.gitignore

还有一条警告

[netdjw.ddata-sn-ps]:来自扩展“ddata-sn-ps”的一个或多个 sn-ps 很可能会混淆 sn-p-variables 和 sn-p-placeholders(有关更多信息,请参阅 https://code.visualstudio.com/docs/editor/userdefinedsnippets#_snippet-syntax详情)

您必须一次添加一个,才能查看是哪个 sn-p 导致了此警告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-21
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 2019-08-03
    相关资源
    最近更新 更多