mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
code style performance optimization: do not enumerate all languages if display name == id
GitOrigin-RevId: de0177b37433e090883e40299d74ae9eccdee79a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
91ce83f05d
commit
0fed93ab4c
+21
-7
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user