Visual studio code 是否可以编写VS代码扩展来修改tasks.json和launch.json?

Visual studio code 是否可以编写VS代码扩展来修改tasks.json和launch.json?,visual-studio-code,vscode-extensions,Visual Studio Code,Vscode Extensions,我想创建自己的扩展,为调试器(launch.json)和一组预定义的任务(tasks.json)提供预定义的配置 现在我已经在这两个文件中配置了vs代码,但是在许多地方有很多硬代码,它们在不同的项目中会有所不同。因此,理想情况下,我希望有一个插件,例如读取一个配置文件,并将所有这些内容应用于“tasks.json”和“launch.json” 想知道vs code extensions API是否可能实现这一点。我认为您可以使用settings.json中定义的变量来实现这一点。您可以在sett

我想创建自己的扩展,为调试器(launch.json)和一组预定义的任务(tasks.json)提供预定义的配置

现在我已经在这两个文件中配置了vs代码,但是在许多地方有很多硬代码,它们在不同的项目中会有所不同。因此,理想情况下,我希望有一个插件,例如读取一个配置文件,并将所有这些内容应用于“tasks.json”和“launch.json”


想知道vs code extensions API是否可能实现这一点。

我认为您可以使用
settings.json
中定义的变量来实现这一点。您可以在
settings.json
中定义自己的自定义设置(用户或工作区设置):

然后,您可以在
tasks.json
launch.json
中引用此设置,使用字符串插值作为
“${config.foo.bar}”

我不确定这是在哪里记录的,但我在

更新:

我已经在创建了一个测试回购。当我在
tasks.json
中调用“run”任务时,我得到以下输出:

通过
launch.json
使用我的当前配置似乎无法与“gdb”配置配合使用,尽管“cppdbg”配置似乎可以正常工作:


注意,如果这很重要,我正在运行vscode v1.8.1

Visual Studio代码:1.15.1

settings.json(.vscode文件夹当前目录)

launch.json(示例)

我四处寻找,发现了它。但这已经过时了,我正试图弄明白。直到鼠标悬停在字符串上时,助手visual studio代码提示给了我信息

“${config.foo.bar}”

不起作用

“${config:foo.bar}”


确实有效。

似乎不起作用。我没有收到任何“未知引用”类型的错误,但是似乎settings.json中定义的“${config.foo.bar}”解析为空字符串。另外,VS代码在settings.json文件中给出了一个警告“未知配置设置”。我已经用一个指向github repo的链接更新了答案,该链接显示了此操作的有效性。你能运行那个吗?那个运行正常,因为在settings.json中,“config”前缀应该是ommited,我没有看到。你知道是否可以通过扩展api来预定义任务吗?嗯,不确定预定义的任务-抱歉,我之前错过了。如果我能解决这个问题,我会试着四处看看,并在这里添加评论。
{
  "editor.formatOnSave": false,  // normal settings defined by the editor and plugins
  "foo.bar": "baz" // custom setting
}
{
"foo.bar": "baz" // custom setting 
}
{
"program": "${workspaceRoot}/${config:foo.bar}.exe"
}