initializeIdeIntegration method
Future<void>
initializeIdeIntegration({
- required void onIdeDetected(),
- IdeType? ideToInstallExtension,
- required void onShowIdeOnboarding(),
- required void onInstallationComplete(),
Initializes IDE detection and extension installation.
Implementation
Future<void> initializeIdeIntegration({
required void Function(DetectedIDEInfo?) onIdeDetected,
IdeType? ideToInstallExtension,
required void Function() onShowIdeOnboarding,
required void Function(IDEExtensionInstallationStatus?)
onInstallationComplete,
}) async {
// Don't await so we don't block startup
unawaited(findAvailableIDE().then(onIdeDetected));
final ideType = ideToInstallExtension;
if (ideType != null && isVSCodeIde(ideType)) {
unawaited(
isIDEExtensionInstalled(ideType).then((isAlreadyInstalled) {
maybeInstallIDEExtension(ideType).then((status) {
onInstallationComplete(status);
if (status?.installed == true) {
findAvailableIDE().then(onIdeDetected);
}
});
}),
);
}
}