| 161 | : s => (s.startsWith(home) ? `~${s.slice(home.length)}` : s); |
| 162 | |
| 163 | async function getWorkspaceFolder() { |
| 164 | const folders = vscode.workspace.workspaceFolders; |
| 165 | if (!folders || folders.length < 2) { |
| 166 | return folders?.[0]; |
| 167 | } |
| 168 | |
| 169 | const picked = await vscode.window.showQuickPick( |
| 170 | folders.map(folder => ({ |
| 171 | label: folder.name, |
| 172 | description: tildify(folder.uri.fsPath), |
| 173 | folder, |
| 174 | })), |
| 175 | { |
| 176 | placeHolder: l10n.t('Select current working directory for new terminal'), |
| 177 | }, |
| 178 | ); |
| 179 | |
| 180 | return picked?.folder ?? Abort; |
| 181 | } |
| 182 | |
| 183 | class ProfileTerminalLauncher extends TerminalNodeLauncher { |
| 184 | private optionsReadyEmitter = new EventEmitter<vscode.TerminalOptions>(); |