mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-10 17:55:39 +02:00
Fix for 233910: Language Mappings preference page restore defaults
This commit is contained in:
parent
9fd60a6db8
commit
d917917c7c
1 changed files with 27 additions and 3 deletions
|
@ -14,6 +14,7 @@ import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
|
import org.eclipse.core.runtime.Preferences;
|
||||||
import org.eclipse.core.runtime.content.IContentType;
|
import org.eclipse.core.runtime.content.IContentType;
|
||||||
import org.eclipse.jface.preference.PreferencePage;
|
import org.eclipse.jface.preference.PreferencePage;
|
||||||
import org.eclipse.swt.SWT;
|
import org.eclipse.swt.SWT;
|
||||||
|
@ -24,9 +25,13 @@ import org.eclipse.ui.IWorkbench;
|
||||||
import org.eclipse.ui.IWorkbenchPreferencePage;
|
import org.eclipse.ui.IWorkbenchPreferencePage;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.CCorePlugin;
|
import org.eclipse.cdt.core.CCorePlugin;
|
||||||
|
import org.eclipse.cdt.core.CCorePreferenceConstants;
|
||||||
import org.eclipse.cdt.core.language.WorkspaceLanguageConfiguration;
|
import org.eclipse.cdt.core.language.WorkspaceLanguageConfiguration;
|
||||||
import org.eclipse.cdt.core.model.ILanguage;
|
import org.eclipse.cdt.core.model.ILanguage;
|
||||||
import org.eclipse.cdt.core.model.LanguageManager;
|
import org.eclipse.cdt.core.model.LanguageManager;
|
||||||
|
import org.eclipse.cdt.ui.CUIPlugin;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.internal.core.language.LanguageMappingStore;
|
||||||
|
|
||||||
import org.eclipse.cdt.internal.ui.preferences.PreferencesMessages;
|
import org.eclipse.cdt.internal.ui.preferences.PreferencesMessages;
|
||||||
import org.eclipse.cdt.internal.ui.util.Messages;
|
import org.eclipse.cdt.internal.ui.util.Messages;
|
||||||
|
@ -45,7 +50,7 @@ public class WorkspaceLanguageMappingPreferencePage extends PreferencePage imple
|
||||||
try {
|
try {
|
||||||
fetchMappings();
|
fetchMappings();
|
||||||
} catch (CoreException e) {
|
} catch (CoreException e) {
|
||||||
CCorePlugin.log(e);
|
CUIPlugin.log(e);
|
||||||
}
|
}
|
||||||
return fMappingWidget.createContents(parent, PreferencesMessages.WorkspaceLanguagesPreferencePage_description);
|
return fMappingWidget.createContents(parent, PreferencesMessages.WorkspaceLanguagesPreferencePage_description);
|
||||||
}
|
}
|
||||||
|
@ -84,7 +89,7 @@ public class WorkspaceLanguageMappingPreferencePage extends PreferencePage imple
|
||||||
fMappingWidget.setChanged(false);
|
fMappingWidget.setChanged(false);
|
||||||
return true;
|
return true;
|
||||||
} catch (CoreException e) {
|
} catch (CoreException e) {
|
||||||
CCorePlugin.log(e);
|
CUIPlugin.log(e);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -92,10 +97,29 @@ public class WorkspaceLanguageMappingPreferencePage extends PreferencePage imple
|
||||||
@Override
|
@Override
|
||||||
protected void performDefaults() {
|
protected void performDefaults() {
|
||||||
super.performDefaults();
|
super.performDefaults();
|
||||||
|
Preferences node = CCorePlugin.getDefault().getPluginPreferences();
|
||||||
|
node.setToDefault(CCorePreferenceConstants.WORKSPACE_LANGUAGE_MAPPINGS);
|
||||||
try {
|
try {
|
||||||
|
// remove workspace mappings
|
||||||
|
Map<String,String> currentMappings= fMappings.getWorkspaceMappings();
|
||||||
|
Set<String> keys = currentMappings.keySet();
|
||||||
|
String[] contentTypeIds = keys.toArray(new String[keys.size()]);
|
||||||
|
for (String contentTypeId : contentTypeIds) {
|
||||||
|
fMappings.removeWorkspaceMapping(contentTypeId);
|
||||||
|
}
|
||||||
|
// add default mappings
|
||||||
|
LanguageMappingStore store = new LanguageMappingStore();
|
||||||
|
WorkspaceLanguageConfiguration defaultConfig = store.decodeWorkspaceMappings();
|
||||||
|
Map<String,String> defaultMappings= defaultConfig.getWorkspaceMappings();
|
||||||
|
for (String contentTypeId : defaultMappings.keySet()) {
|
||||||
|
String language= defaultMappings.get(contentTypeId);
|
||||||
|
fMappings.addWorkspaceMapping(contentTypeId, language);
|
||||||
|
}
|
||||||
fetchMappings();
|
fetchMappings();
|
||||||
|
fMappingWidget.refreshMappings();
|
||||||
|
fMappingWidget.setChanged(false);
|
||||||
} catch (CoreException e) {
|
} catch (CoreException e) {
|
||||||
CCorePlugin.log(e);
|
CUIPlugin.log(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue