void (@NotNull Project project, @NotNull VirtualFile fileOrDir, @NotNull LanguageLevel actualProperty) { // Todo: GwtLanguageLevelPusher changes java language level for single files without firing filePropertiesChanged // so code below doesn't work. // Uncomment it and remove older code once the problem is fixed //PushedFilePropertiesUpdater.getInstance(project).filePropertiesChanged(fileOrDir, f -> isJavaLike(f.getFileType())); VirtualFileJavaLanguageLevelListener publisher = project.getMessageBus().syncPublisher(VirtualFileJavaLanguageLevelListener.TOPIC); for (VirtualFile child : fileOrDir.getChildren()) { if (!child.isDirectory() && isJavaLike(child.getFileType())) { PushedFilePropertiesUpdater.getInstance(project).filePropertiesChanged(child); publisher.levelChanged(child, actualProperty); } } }