VS Code如何按文件扩展名设置默认构建任务?
解决VS Code「Tasks: Run Build Task」无需选择任务直接构建的问题
你之前将isDefault设为**/*.c的写法是旧版本VS Code的兼容用法,现在新版本已不再支持这种配置方式,需要通过以下正确配置实现针对特定文件类型的默认构建任务:
正确配置示例
修改你的任务配置,将isDefault设为布尔值true,同时添加when条件来匹配C文件:
{ "label": "Compile C", "type": "shell", "command": "gcc", "args": ["-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}"], "presentation": { "echo": true, "reveal": "always", "revealProblems": "onProblem", "focus": false, "panel": "dedicated", "showReuseMessage": false, "clear": false, "close": false }, "problemMatcher": ["$gcc"], "group": { "kind": "build", "isDefault": true }, "when": "resourceExtname == '.c'" }
关键说明
isDefault字段现在必须是布尔值true或false,不再支持glob路径作为值when字段用于指定任务生效的条件,resourceExtname == '.c'表示仅当当前激活文件是.c后缀时,该任务才会成为默认构建任务- 若你有其他类型文件的构建任务,只需为每个任务添加对应的
when条件(比如resourceExtname == '.cpp')并将isDefault设为true,VS Code会自动根据当前打开的文件匹配对应的默认任务
另外注意配置中的路径转义:原配置里的${fileDirname}\${fileBasenameNoExtension}需要改成${fileDirname}\\${fileBasenameNoExtension},避免Windows系统下的路径解析错误。
内容的提问来源于stack exchange,提问作者quiett
相关产品推荐
相关产品推荐

