vscode开发的when属性可以支持文件扩展名吗
时间: 2024-03-12 17:48:36 浏览: 17
是的,VS Code中的`when`属性可以支持文件扩展名。您可以使用`editorLangId`条件来检查当前文件的语言ID,使用`resourceFilename`条件来检查当前文件的完整路径,然后使用`endsWith`或`startsWith`等条件来检查文件扩展名。例如,以下示例检查当前文件是否具有`.js`扩展名:
```
{
"key": "myExtension.myCommand",
"command": "extension.myCommand",
"when": "editorLangId == javascript && resourceFilename =~ /\\\\.js$/"
}
```
请注意,由于正则表达式中反斜杠的转义,因此在`resourceFilename`条件中使用双反斜杠来表示单个反斜杠。
相关问题
vscode开发的when属性可以写成resourceFilename =~ .js吗
不可以。在VS Code的`when`表达式中,正则表达式需要用斜杠`/`包围起来,并且需要使用双反斜杠`\\`来转义反斜杠。因此,如果要检查文件是否以`.js`结尾,应该这样写:
```
"when": "resourceFilename =~ /\\\\.js$/"
```
这个表达式中,正则表达式`/\\.js$/`会匹配以`.js`结尾的文件名。由于反斜杠需要转义,因此需要使用四个反斜杠,即`\\\\`。
vscode扩展添加自定义 when
您可以使用 `when` 属性在特定条件下启用或禁用 VS Code 扩展。以下是如何添加自定义 `when` 条件的步骤:
1. 在 `package.json` 文件中的 `contributes` 对象下找到您想要添加条件的命令或菜单项。
2. 添加一个 `when` 属性,并指定条件。例如,以下是一个只在打开 `.js` 文件时启用的命令:
```json
{
"contributes": {
"commands": [
{
"command": "myExtension.doSomething",
"title": "Do Something",
"when": "editorLangId == 'javascript'"
}
]
}
}
```
在此示例中,`when` 属性的值是一个字符串,其中包含一个条件表达式。条件表达式使用 VS Code 内置的 `when` 命令语言,在此语言中,可以使用各种运算符和函数来定义条件。
3. 保存 `package.json` 文件并重新加载 VS Code 扩展。现在,您的命令或菜单项将仅在满足指定条件时可用。
注意:如果您使用的是 VS Code 扩展生成器,那么您可以使用 `yo` 命令行工具来创建一个自定义 `when` 条件。有关详细信息,请参阅 VS Code 扩展生成器文档。