ファイル・フォルダを生成して VSCode エクスプローラにドンッッ
やりたいこと
コード
vscode.WorkspaceEdit
とvscode.workspace.applyEdit
を使えばできそうだと思いましたが、
ファイルできる気配がない……( ˘ω˘)ウーン
const edit = new vscode.WorkspaceEdit(); const options = { overwrite: false, ignoreIfExists: false }; edit.createFile(vscode.Uri.parse(root + "\\images"), options); edit.createFile(vscode.Uri.parse(root + "\\content.md"), options); edit.createFile(vscode.Uri.parse(root + "\\config.json"), options); vscode.workspace.applyEdit(edit).then(value => { console.log(value); console.log(vscode.workspace.workspaceFolders); });
//出力 //false //undefined
そこでfs.mkdir
等を使って生成し、vscode.executeCommand
でフォルダを開くことで解決しました。
fs.mkdir(root, (err) => { if (err !== null){ console.log(err); throw err; } else { fs.mkdir(root + '\\images', (err) => { if (err !== null){ console.log(err); throw err; } }); ... } return root; }).then(root => { vscode.commands.executeCommand('vscode.openFolder', vscode.Uri.parse(root)); });
fs.mkdir
は非同期処理でThenable
を返します。
余談
VSCode API で提供されているんだと思ったら、意外にも無かったのでだいぶ時間食ってしまった。
あとvscode.WorkspaceEdit
ってどう使うものなんじゃ……