CodeStyleSettingsToShow (@NotNull CodeStyleSettings tempSettings, LanguageCodeStyleSettingsProvider.SettingsType @NotNull [] types) { CommonCodeStyleSettings commonSettings = tempSettings.getCommonSettings(myProvider.getLanguage()); CustomCodeStyleSettings customSettings = getCustomSettings(myProvider, tempSettings); String title = CodeInsightBundle.message("configure.code.style.on.fragment.dialog.title"); SequentialModalProgressTask progressTask = new SequentialModalProgressTask(myProject, StringUtil.capitalizeWords(title, true)); progressTask.setCancelText(CodeInsightBundle.message("configure.code.style.on.fragment.dialog.cancel")); CompositeSequentialTask compositeTask = new CompositeSequentialTask(progressTask); compositeTask.setProgressText(CodeInsightBundle.message("configure.code.style.on.fragment.dialog.progress.text")); compositeTask.setProgressText2(CodeInsightBundle.message("configure.code.style.on.fragment.dialog.progress.text.under")); final Map<LanguageCodeStyleSettingsProvider.SettingsType, FilterFieldsTask> typeToTask = new HashMap<>(); for (LanguageCodeStyleSettingsProvider.SettingsType type : types) { Set<String> fields = myProvider.getSupportedFields(type); FilterFieldsTask task = new FilterFieldsTask(commonSettings, customSettings, fields); compositeTask.addTask(task); typeToTask.put(type, task); } Set<String> otherFields = myProvider.getSupportedFields(); final FilterFieldsTask otherFieldsTask = new FilterFieldsTask(commonSettings, customSettings, otherFields); if (!otherFields.isEmpty()) { compositeTask.addTask(otherFieldsTask); } progressTask.setTask(compositeTask); progressTask.setMinIterationTime(10); ProgressManager.getInstance().run(progressTask); return new CodeStyleSettingsToShow() { @Override public List<String> getSettings(LanguageCodeStyleSettingsProvider.SettingsType type) { return typeToTask.get(type).getAffectedFields(); } @Override public List<String> getOtherSetting() { return new ArrayList<>(otherFieldsTask.getAffectedFields()); } }; }