void () { var app = ApplicationManager.getApplication(); if (!(app.isCommandLine() || app.isHeadlessEnvironment() || app.isUnitTestMode())) { ProcessIOExecutorService.INSTANCE.execute(() -> { try { var launcherName = ApplicationNamesInfo.getInstance().getScriptName(); var scriptName = switch (launcherName) { case "phpstorm" -> "pstorm"; case "pycharm" -> "charm"; case "rubymine" -> "mine"; default -> launcherName; }; var scriptFile = PathEnvironmentVariableUtil.findInPath(scriptName); if (scriptFile != null) { var content = Files.readString(scriptFile.toPath()); if (content.contains(MARKER1) && content.contains(MARKER2) && !app.isDisposed()) { var title = ApplicationBundle.message("cli.launcher.obsolete.title"); var message = ApplicationBundle.message("cli.launcher.obsolete.message", scriptFile); new Notification("IDE and Plugin Updates", title, message, NotificationType.INFORMATION) .addAction(NotificationAction.createSimple(ApplicationBundle.message("cli.launcher.obsolete.action"), () -> showInstructions(null))) .notify(null); } } } catch (Exception e) { Logger.getInstance(ObsoleteScriptLookupTask.class).info(e); } }); } }