Flutterプロジェクトでフォルダ構成をアーキテクチャベースで作るために、1つのドメインを作る際は該当ドメインフォルダの下にapplication、data、domain、presentationフォルダを作ることにしました。
しかし毎回これをやるのは面倒なので、スクリプトがあればいいなと思いました。調べてみると、VS Codeにはtasksという機能が提供されています。
これを使って、希望するドメイン名を入力するとlib/src/features配下にドメイン名のフォルダとapplication、data、domain、presentationフォルダが作られるようにしました。
コマンドパレット(⇧ + ⌘ + p)を開いてtasksと入力すると、いくつかのオプションが表示されます。

今回やるべきことは、.vscode/tasks.jsonファイルがない場合にこのファイルを作成することです。
ファイルを直接作るよりもコマンドパレットを使う方が楽なので、こちらで進めます。
taskを作るので、ここでTasks: Configure Taskを選択してください。
するとまた何かを選択するよう表示されます。そこで何でも選択してください。Flutter系のプロジェクトなのでFlutter関連のコマンドが出ますが、shellベースのtaskを作るので削除する予定です。

何でも選択するとtasks.jsonに何か入力された状態で作成されているはずです。
入力を受け取った後、入力値がドメインフォルダ名として作成されるようにするため、以下のように記述しました。
{
"version": "2.0.0",
"tasks": [
{
"label": "Create directories By domain",
"type": "shell",
"command": "mkdir -p ${workspaceFolder}/lib/src/features/${input:echoPrompt}/application ${workspaceFolder}/lib/src/features/${input:echoPrompt}/data ${workspaceFolder}/lib/src/features/${input:echoPrompt}/domain ${workspaceFolder}/lib/src/features/${input:echoPrompt}/presentation",
"args": [],
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "new"
},
"problemMatcher": []
}
],
"inputs": [
{
"id": "echoPrompt",
"description": "Please enter a value",
"default": "calendar",
"type": "promptString"
}
]
}作成したtaskを実行するには、再びコマンドパレット(⇧ + ⌘ + p)を開いてください。

今回はTasks:Run Taskを選択します。するとtasks[0].labelの値である"Create directories By domain"がリストに表示されるはずです。

tasks.jsonでinputs[0].defaultのデフォルト値を"calendar"にしているため、すでにデフォルト値が入力された状態で表示されます。

希望するドメイン名を入力してEnterを押すと、以下のような結果が作成されるはずです!

これで使い方がわかったので、必要な様々なtaskを作ってより快適な開発ができそうです。
It all depends on how we look at things, and not how they are in themselves.
— Carl Jung