質問: vscode extension api を利用し、動的にサイドバーのエクスプローラの背景色変更する方法が分かりません。(extension.ts上のロジックで色変更をしたい) ちなみに、静的に変える方法は、下記手段を知っています。 同様にプログラムで実現したいです ``` "workbench.colorCustomizations": { "list.activeSelectionBackground": "#a02e9b", } ```
回答: WorkspaceConfigurationクラスの`update`メソッドを用いることで、VSCodeの設定を上書きすることができます。このクラスのオブジェクトは`workspace.getConfiguration`を用いて取得できます。 ``` // 'workbench.*'に対応するWorkspaceConfigurationオブジェクトを取得 const config = vscode.workspace.getConfiguration('workbench') // 'workbench.colorCustomizations'の値を更新 config.update('colorCustomizations', { // set 'list.activeSelectionBackground' 'list.activeSelectionBackground': '#a02e9b' }) ``` ただし、この方法では既存の値を考慮せずに`settings.json`を上書きしてしまうので、設定を保存したり、プロパティをマージしたり、いろいろ工夫する必要はあるかと思います。