2017-01-13 90 views
1

我想創建自己的擴展,它將爲調試器(launch.json)和一組預定義的任務(tasks.json)提供預定義的配置。是否可以編寫修改tasks.json和launch.json的VS代碼擴展?

現在我已經在這兩個文件中配置了代碼,但是很多地方會有很多硬編碼,這些硬編碼會因不同的項目而異。所以理想情況下,我想有一個插件,例如讀取一個配置文件並將所有這些內容應用於「tasks.json」和「launch.json」。

想知道這是甚至可能與代碼擴展API。

回答

1

我想你可以用settings.json中定義的變量來做到這一點。您可以在settings.json(用戶或工作區設置)定義自己的自定義設置:

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

然後,您可以用串插基準此設置裏面tasks.jsonlaunch.json作爲"${config.foo.bar}"

我不知道在哪裏,這是記錄在案,但我發現在https://github.com/Microsoft/vscode/pull/11291

這個參考更新:

我在https://github.com/boyvinall/vscode-c-dbg創建了一個測試回購。當我調用內tasks.json「運行」的任務,我得到下面的輸出:

enter image description here

通過launch.json我目前的配置中使用似乎並沒有與「廣發行」配置工作,雖然「cppdbg 「配置似乎就ok工作:

enter image description here

NB,在情況下,它是很重要的,我跑vscode V1.8.1

+0

似乎沒有工作。我沒有收到任何「未知引用」類錯誤,但是像settings.json中定義的「$ {config.foo.bar}」解析爲空字符串。另外,VS代碼在settings.json文件中發出警告「未知配置設置」。 – mar3kk

+0

我已經更新了一個鏈接到一個github回購,顯示這個工作的答案。你能夠運行那個嗎? – boyvinall

+0

這是一個工作,這是因爲在settings.json的「配置」前綴應該ommited,我錯過了。你知道是否有可能通過擴展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}」

確實工作。