Set<String> () { LanguageCodeStyleSettingsProvider provider = LanguageCodeStyleSettingsProvider.forLanguage(myLanguage); if (provider == null) return Collections.emptySet(); Set<String> indentOptions = new HashSet<>(provider.getSupportedFields(LanguageCodeStyleSettingsProvider.SettingsType.INDENT_SETTINGS)); if (indentOptions.isEmpty()) { IndentOptionsEditor editor = provider.getIndentOptionsEditor(); if (editor != null) { indentOptions.add("TAB_SIZE"); indentOptions.add("USE_TAB_CHARACTER"); indentOptions.add("INDENT_SIZE"); if (editor instanceof SmartIndentOptionsEditorBase) { indentOptions.add("CONTINUATION_INDENT_SIZE"); indentOptions.add("SMART_TABS"); indentOptions.add("KEEP_INDENTS_ON_EMPTY_LINES"); } } } return indentOptions; }