code style performance optimization: do not enumerate all languages if display name == id

GitOrigin-RevId: de0177b37433e090883e40299d74ae9eccdee79a
This commit is contained in:
Alexey Kudravtsev
2025-07-14 17:26:26 +00:00
committed by intellij-monorepo-bot
parent 91ce83f05d
commit 0fed93ab4c
@@ -84,18 +84,31 @@ final class CommonCodeStyleSettingsManager {
* @return Common code style settings for the given language or a new instance with default values if not found.
*/
public @NotNull CommonCodeStyleSettings getCommonSettings(@NotNull String langName) {
Map<String, CommonCodeStyleSettings> map = getCommonSettingsMap();
for (Language language : Language.getRegisteredLanguages()) {
if (langName.equals(language.getDisplayName())) {
CommonCodeStyleSettings settings = map.get(language.getID());
if (settings != null) {
return settings;
}
Language language = findLanguageByDisplayName(langName);
if (language != null) {
Map<String, CommonCodeStyleSettings> map = getCommonSettingsMap();
CommonCodeStyleSettings settings = map.get(language.getID());
if (settings != null) {
return settings;
}
}
return new CommonCodeStyleSettings(Language.ANY);
}
private static Language findLanguageByDisplayName(@NotNull String langName) {
Language l = Language.findLanguageByID(langName); // optimization
if (l == null || !l.getDisplayName().equals(langName)) {
for (Language language : Language.getRegisteredLanguages()) {
if (langName.equals(language.getDisplayName())) {
l = language;
break;
}
}
}
return l;
}
private void initNonReadSettings() {
for (final LanguageCodeStyleProvider provider : CodeStyleSettingsService.getInstance().getLanguageCodeStyleProviders()) {
@@ -114,6 +127,7 @@ final class CommonCodeStyleSettingsManager {
registerCommonSettings(langId, initialSettings);
}
@NotNull
private Map<String, CommonCodeStyleSettings> initCommonSettingsMap() {
Map<String, CommonCodeStyleSettings> map = new LinkedHashMap<>();
myCommonSettingsMap = map;