2017-01-13 3 views
1

Я хотел бы создать собственное расширение, которое обеспечило бы предопределенную конфигурацию для отладчика (launch.json) и предопределенный набор задач (tasks.json).Можно ли написать расширение VS Code, которое изменяет tasks.json и launch.json?

Прямо сейчас у меня есть код, сконфигурированный в этих двух файлах, но во многих местах есть много жестких кодов, которые могут различаться в разных проектах. Поэтому в идеале я хотел бы иметь плагин, который, например, читает один файл конфигурации и применяет все это к «tasks.json» и «launch.json».

Удивительно, что это возможно даже при использовании API расширений vs.

ответ

1

Я думаю, вы можете сделать это с переменными, определенными в settings.json. Вы можете определить свои собственные пользовательские настройки в settings.json (либо пользователем или рабочей области настроек):

{ 
    "editor.formatOnSave": false, // normal settings defined by the editor and plugins 
    "foo.bar": "baz" // custom setting 
} 

Вы можете ссылаться на эту установку внутри tasks.json или launch.json используя интерполяцию строки в качестве "${config.foo.bar}".

Я не уверен, где это документально, но я нашел ссылку на это в https://github.com/Microsoft/vscode/pull/11291

Update:

Я создал тестовый репозиторий на https://github.com/boyvinall/vscode-c-dbg. Когда я призываю «запустить» задачу в tasks.json, я получаю следующий результат:

enter image description here

Используя через launch.json с моей текущей конфигурации не похоже на работу с конфигурацией «GDB», хотя «cppdbg "конфигурация, похоже, работает нормально:

enter image description here

NB, в случае, если это важно, я бегу vscode V1.8.1

+0

Кажется, что не работает.Я не получаю какую-либо ошибку «неизвестной ссылки», но, похоже, «$ {config.foo.bar}», определенную в settings.json, разрешает пустую строку. Также код VS дает предупреждение «неизвестный параметр конфигурации» в файле settings.json. – mar3kk

+0

Я обновил ответ ссылкой на репозиторий github, который показывает эту работу. Можете ли вы запустить этот? – boyvinall

+0

Это работает, потому что в settings.json префикс «config» должен быть пропущен, я пропустил это. Знаете ли вы, можно ли расширять api для предопределения задач? – mar3kk

0

Visual Studio C ода: 1.15.1

settings.json (папка .vscode текущий реж)

{ 
"foo.bar": "baz" // custom setting 
} 

launch.json (пример)

{ 
"program": "${workspaceRoot}/${config:foo.bar}.exe" 
} 

Я осматривал его нашел. Но это была дата и пыталась понять это. До тех пор, пока подсказка кода вспомогательной визуальной студии не предоставила мне информацию, когда мышь наводила курсор на строку.

"$ {config.foo.bar}"

не работает.

"$ {конфигурации: foo.bar}"

работает.