If you pick the Generic board type that Alexey (@hiddenpilot) created, it already has a load of menus.
I'm not sure that adding another 3 menus would suit most people
They don't need to pick anything, the default (top option?) can be the currently hardcoded behaviour.
and I'm not sure how complicated the boards.txt would be to implement all these menus.
You need 3 extra lines and a blob of settings (copy/paste/modify) for each board you want to have the settings.
Perhaps there is some better way of writing the boards.txt to handle all these menus, but at the moment it looks like a lot of authoring needs to be done for each menu.
E.g. It doesn't look, like you can simply set one variable per menu.
I can have all boards support the SPI/Serial/Wire options in 15 minutes. Copy/paste/modify. Not a lot of work.
However there may be some way to change platform.txt or possibly do something with #if s in the code to allow boards.txt to be simpler.
The menu options add certain defines to the gcc/g++ commandlines. The necessary code to support the "Wire" options looks like
HardWire Wire(1, 0);
HardWire Wire(2, 0);
TwoWire Wire(PB6, PB7, SOFT_FAST);
Also, there are bugs in the way boards.txt is handled by the IDE. If you look at Alexey's. Generic board type, you will see its called Nano. This is because the only way he could get it to work was to give it a name of an existing core Arduino device.
As the IDE team are still working on 1.6 I think we should urgently see if we can get this fixed and also see if somehow we can improve the menu handling in boards.txt
I know of a better way to make it work, don't use underscores. Works perfectly. Naming boards after Arduino ones also works but might cause preferences.txt issues.
It may be worth sending a PM to @hidden pilot to get his opionion and experiemces on making big modifications to boards.txt
No need, I already have it working locally. Guess I'll keep my changes to myself then :(
I think we need to follow the 80 20 rule, I.e not over complicate the process for the 80 of people who just want to use a standard Maple mini etc
The default behaviour (i.e. don't touch the menu options) will still be the same.
Those who have complex requirements should have the skill to change what they need.
Maybe they should start their own GitHub repo? :)