From cccafe15716ae560080e278efd9052af238208ff Mon Sep 17 00:00:00 2001 From: "Rustam.Vishnyakov" Date: Sat, 5 Mar 2011 13:45:49 +0300 Subject: [PATCH] Fixed testJSInPhp test (correct code style settings) --- .../psi/codeStyle/CodeStyleSettings.java | 9 ++++++++ .../CommonCodeStyleSettingsManager.java | 22 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettings.java b/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettings.java index 1eba143ce4ab..18bcaf6dde22 100644 --- a/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettings.java +++ b/platform/lang-api/src/com/intellij/psi/codeStyle/CodeStyleSettings.java @@ -927,4 +927,13 @@ public class CodeStyleSettings extends CommonCodeStyleSettings implements Clonea return myCommonSettingsManager.getCommonSettings(lang); } + /** + * @param langName The language name. + * @return Language-specific code style settings or shared settings if not found. + * @see CommonCodeStyleSettingsManager#getCommonSettings + */ + public CommonCodeStyleSettings getCommonSettings(String langName) { + return myCommonSettingsManager.getCommonSettings(langName); + } + } diff --git a/platform/lang-api/src/com/intellij/psi/codeStyle/CommonCodeStyleSettingsManager.java b/platform/lang-api/src/com/intellij/psi/codeStyle/CommonCodeStyleSettingsManager.java index c443d667e893..3bb3dc2d6adf 100644 --- a/platform/lang-api/src/com/intellij/psi/codeStyle/CommonCodeStyleSettingsManager.java +++ b/platform/lang-api/src/com/intellij/psi/codeStyle/CommonCodeStyleSettingsManager.java @@ -63,6 +63,28 @@ public class CommonCodeStyleSettingsManager implements JDOMExternalizable { return myParentSettings; } + /** + * Get common code style settings by language name. getCommonSettings(Language) is a preferred method but + * sometimes (for example, in plug-ins which do not depend on a specific language support) language settings can be + * obtained by name. + * + * @param langName The display name of the language whose settings must be returned. + * @return Common code style settings for the given language or parent (shared) settings if not found. + */ + @NotNull + public CommonCodeStyleSettings getCommonSettings(@NotNull String langName) { + if (myCommonSettingsMap == null) { + initCommonSettingsMap(); + initNonReadSettings(); + } + for (Language lang : myCommonSettingsMap.keySet()) { + if (langName.equals(lang.getDisplayName())) { + return myCommonSettingsMap.get(lang); + } + } + return myParentSettings; + } + private void initNonReadSettings() { final LanguageCodeStyleSettingsProvider[] providers = Extensions.getExtensions(LanguageCodeStyleSettingsProvider.EP_NAME);