mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Separate ActionScript code style settings preview (related to IDEA-56387)
This commit is contained in:
+43
-1
@@ -46,6 +46,26 @@ public abstract class LanguageCodeStyleSettingsProvider {
|
||||
public void customizeSettings(@NotNull CodeStyleSettingsCustomizable consumer, @NotNull SettingsType settingsType) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Override this method if file extension to be used with samples is different from the one returned by associated file type.
|
||||
*
|
||||
* @return The file extension for samples (null by default).
|
||||
*/
|
||||
@Nullable
|
||||
public String getFileExt() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override this method if language name shown in preview tab must be different from the name returned by Language class itself.
|
||||
*
|
||||
* @return The language name to show in preview tab (null by default).
|
||||
*/
|
||||
@Nullable
|
||||
public String getLanguageName() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an instance of <code>CommonCodeStyleSettings</code> and sets initial default values for those
|
||||
* settings which differ from the original.
|
||||
@@ -90,7 +110,9 @@ public abstract class LanguageCodeStyleSettingsProvider {
|
||||
@Nullable
|
||||
public static Language getLanguage(String langName) {
|
||||
for (LanguageCodeStyleSettingsProvider provider : Extensions.getExtensions(EP_NAME)) {
|
||||
if (langName.equals(provider.getLanguage().getDisplayName())) {
|
||||
String name = provider.getLanguageName();
|
||||
if (name == null) name = provider.getLanguage().getDisplayName();
|
||||
if (langName.equals(name)) {
|
||||
return provider.getLanguage();
|
||||
}
|
||||
}
|
||||
@@ -106,5 +128,25 @@ public abstract class LanguageCodeStyleSettingsProvider {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static String getFileExt(Language lang) {
|
||||
for (LanguageCodeStyleSettingsProvider provider : Extensions.getExtensions(EP_NAME)) {
|
||||
if (provider.getLanguage().equals(lang)) {
|
||||
return provider.getFileExt();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static String getLanguageName(Language lang) {
|
||||
for (LanguageCodeStyleSettingsProvider provider : Extensions.getExtensions(EP_NAME)) {
|
||||
if (provider.getLanguage().equals(lang)) {
|
||||
return provider.getLanguageName();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -258,10 +258,14 @@ public abstract class CodeStyleAbstractPanel implements Disposable {
|
||||
|
||||
protected void prepareForReformat(PsiFile psiFile) {
|
||||
}
|
||||
|
||||
protected String getFileExt() {
|
||||
return getFileTypeExtension(getFileType());
|
||||
}
|
||||
|
||||
protected PsiFile createFileFromText(Project project, String text) {
|
||||
return PsiFileFactory.getInstance(project).createFileFromText(
|
||||
"a." + getFileTypeExtension(getFileType()), getFileType(), text, LocalTimeCounter.currentTime(), true
|
||||
"a." + getFileExt(), getFileType(), text, LocalTimeCounter.currentTime(), true
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+15
-2
@@ -120,6 +120,13 @@ public abstract class MultilanguageCodeStyleAbstractPanel extends CodeStyleAbstr
|
||||
return LanguageCodeStyleSettingsProvider.getRightMargin(myLanguage, getSettingsType());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getFileExt() {
|
||||
String fileExt = LanguageCodeStyleSettingsProvider.getFileExt(myLanguage);
|
||||
if (fileExt != null) return fileExt;
|
||||
return super.getFileExt();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected FileType getFileType() {
|
||||
@@ -190,7 +197,7 @@ public abstract class MultilanguageCodeStyleAbstractPanel extends CodeStyleAbstr
|
||||
Language[] langs = LanguageCodeStyleSettingsProvider.getLanguagesWithCodeStyleSettings();
|
||||
if (langs.length == 0) return;
|
||||
for (Language lang : langs) {
|
||||
tabbedPane.addTab(lang.getDisplayName(), createDummy());
|
||||
tabbedPane.addTab(getTabName(lang), createDummy());
|
||||
}
|
||||
tabbedPane.setComponentAt(0, getEditor().getComponent());
|
||||
myLangSelectionIndex = 0;
|
||||
@@ -229,7 +236,7 @@ public abstract class MultilanguageCodeStyleAbstractPanel extends CodeStyleAbstr
|
||||
|
||||
private void selectCurrentLanguageTab() {
|
||||
for(int i = 0; i < tabbedPane.getTabCount(); i ++) {
|
||||
if (myLanguage.getDisplayName().equals(tabbedPane.getTitleAt(i))) {
|
||||
if (getTabName(myLanguage).equals(tabbedPane.getTitleAt(i))) {
|
||||
tabbedPane.setSelectedIndex(i);
|
||||
return;
|
||||
}
|
||||
@@ -252,4 +259,10 @@ public abstract class MultilanguageCodeStyleAbstractPanel extends CodeStyleAbstr
|
||||
private static JComponent createDummy() {
|
||||
return new JLabel("");
|
||||
}
|
||||
|
||||
private static String getTabName(Language language) {
|
||||
String tabName = LanguageCodeStyleSettingsProvider.getLanguageName(language);
|
||||
if (tabName == null) tabName = language.getDisplayName();
|
||||
return tabName;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user