やりたいこと
コード
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ってどう使うものなんじゃ……