Skip to content

Commit e24b6f8

Browse files
Brian MadisonBrian Madison
authored andcommitted
feat: installer is now VERY clear about IDE selection being a multiselect
1 parent 2c20531 commit e24b6f8

File tree

1 file changed

+48
-16
lines changed

1 file changed

+48
-16
lines changed

tools/installer/bin/bmad.js

Lines changed: 48 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -277,23 +277,55 @@ async function promptInstallation() {
277277
}
278278

279279
// Ask for IDE configuration
280-
const { ides } = await inquirer.prompt([
281-
{
282-
type: 'checkbox',
283-
name: 'ides',
284-
message: 'Which IDE(s) are you using? (press Enter to skip IDE setup, or select any to configure):',
285-
choices: [
286-
{ name: 'Cursor', value: 'cursor' },
287-
{ name: 'Claude Code', value: 'claude-code' },
288-
{ name: 'Windsurf', value: 'windsurf' },
289-
{ name: 'Trae', value: 'trae' }, // { name: 'Trae', value: 'trae'}
290-
{ name: 'Roo Code', value: 'roo' },
291-
{ name: 'Cline', value: 'cline' },
292-
{ name: 'Gemini CLI', value: 'gemini' },
293-
{ name: 'Github Copilot', value: 'github-copilot' }
294-
]
280+
let ides = [];
281+
let ideSelectionComplete = false;
282+
283+
while (!ideSelectionComplete) {
284+
console.log(chalk.cyan('\n🛠️ IDE Configuration'));
285+
console.log(chalk.bold.yellow.bgRed(' ⚠️ IMPORTANT: This is a MULTISELECT! Use SPACEBAR to toggle each IDE! '));
286+
console.log(chalk.bold.magenta('🔸 Use arrow keys to navigate'));
287+
console.log(chalk.bold.magenta('🔸 Use SPACEBAR to select/deselect IDEs'));
288+
console.log(chalk.bold.magenta('🔸 Press ENTER when finished selecting\n'));
289+
290+
const ideResponse = await inquirer.prompt([
291+
{
292+
type: 'checkbox',
293+
name: 'ides',
294+
message: 'Which IDE(s) do you want to configure? (Select with SPACEBAR, confirm with ENTER):',
295+
choices: [
296+
{ name: 'Cursor', value: 'cursor' },
297+
{ name: 'Claude Code', value: 'claude-code' },
298+
{ name: 'Windsurf', value: 'windsurf' },
299+
{ name: 'Trae', value: 'trae' }, // { name: 'Trae', value: 'trae'}
300+
{ name: 'Roo Code', value: 'roo' },
301+
{ name: 'Cline', value: 'cline' },
302+
{ name: 'Gemini CLI', value: 'gemini' },
303+
{ name: 'Github Copilot', value: 'github-copilot' }
304+
]
305+
}
306+
]);
307+
308+
ides = ideResponse.ides;
309+
310+
// Confirm no IDE selection if none selected
311+
if (ides.length === 0) {
312+
const { confirmNoIde } = await inquirer.prompt([
313+
{
314+
type: 'confirm',
315+
name: 'confirmNoIde',
316+
message: chalk.red('⚠️ You have NOT selected any IDEs. This means NO IDE integration will be set up. Is this correct?'),
317+
default: false
318+
}
319+
]);
320+
321+
if (!confirmNoIde) {
322+
console.log(chalk.bold.red('\n🔄 Returning to IDE selection. Remember to use SPACEBAR to select IDEs!\n'));
323+
continue; // Go back to IDE selection only
324+
}
295325
}
296-
]);
326+
327+
ideSelectionComplete = true;
328+
}
297329

298330
// Use selected IDEs directly
299331
answers.ides = ides;

0 commit comments

Comments
 (0)