変数置換構文
launch.json や tasks.json では ${variableName} という構文で変数置換を行うことができます。どの言語でコーディングするときでも使えるので一読しておくと後で役に立ちそう。
役に立ちそうな状況や対象
- OSが混在するチーム開発
- 不特定多数が利用するプロジェクトテンプレート
- ReactNativeやUnity、Flutterなどのクロスプラットフォーム開発
定義済み変数置換
| 変数 | 中身 |
|---|---|
| ${workspaceFolder} | VS Codeで開かれたフォルダのパス |
| ${workspaceFolderBasename} | VS Codeで開いたフォルダの名前、スラッシュ(/)なし |
| ${file} | 現在開かれているファイル |
| ${relativeFile} | workspaceFolderを基準にした現在開いているファイル |
| ${relativeFileDirname} | workspaceFolderを基準にした現在開いているファイル |
| ${fileBasename} | 現在開かれているファイルのベース名 |
| ${fileBasenameNoExtension} | ファイルを拡張子なしで現在開かれているファイルのベース名 |
| ${fileDirname} | 現在開かれているファイルのディレクトリ名 |
| ${fileExtname} | 現在開いているファイルの拡張子 |
| ${cwd} | タスクランナー起動時のカレント作業ディレクトリ |
| ${lineNumber} | VSCodeの編集画面で現在選択されている行番号 |
| ${selectedText} | VSCodeの編集画面で現在選択されているテキスト |
| ${execPath} | 実行中のVS Code実行可能ファイル「code.exe」のアドレス |
| ${defaultBuildTask} | デフォルトのビルドタスクの名前 |
定義済み変数置換の実例
ルートワークスペースとして、「/home/your-username/your-project」を開き、「/home/your-username/your-project/folder/file.ext」を編集していると仮定します。
すると変数は以下のようになるでしょう。
| 変数 | 中身 |
|---|---|
| ${workspaceFolder} | /home/your-username/your-project |
| ${workspaceFolderBasename} | your-project |
| ${file} | /home/your-username/your-project/folder/file.ext |
| ${relativeFile} | folder/file.ext |
| ${relativeFileDirname} | folder |
| ${fileBasename} | file.ext |
| ${fileBasenameNoExtension} | file |
| ${fileDirname} | /home/your-username/your-project/folder |
| ${fileExtname} | .ext |
| ${lineNumber} | VSCodeの編集画面で現在選択されている行番号 |
| ${selectedText} | VSCodeの編集画面で現在選択されているテキスト |
| ${execPath} | 実行中のVS Code実行可能ファイル「code.exe」のアドレス |
変数の中身の確認方法
例えば${fileDirname}の中身を見たい場合、
${workspaceFolder}/.vscode/tasks.jsonの中身を下記の状態にして、
タスク「check variable」の実行を行ってください。
ショートカットキーは、
- Winの場合
-
Ctrl+Shift+P→Tasks: Run Task
-
- Macの場合
-
Command+Shift+P→Tasks: Run Task
-
./.vscode/tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "check variable",
"type": "shell",
"command": "echo",
"args" : ["${fileDirname}"]
}
]
}
引用元
関連
Excelsior!