1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-01 05:15:43 +02:00

Using cfgDescription.getLanguageSettingForFile() in

MBSLanguageSettingsProvider
This commit is contained in:
Andrew Gvozdev 2011-09-12 10:25:12 -04:00
parent 5587687e1e
commit 28fec5efe6

View file

@ -24,6 +24,7 @@ import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
import org.eclipse.cdt.core.settings.model.ICResourceDescription; import org.eclipse.cdt.core.settings.model.ICResourceDescription;
import org.eclipse.cdt.core.settings.model.ICSettingBase; import org.eclipse.cdt.core.settings.model.ICSettingBase;
import org.eclipse.cdt.core.settings.model.ILanguageSettingsEditableProvider; import org.eclipse.cdt.core.settings.model.ILanguageSettingsEditableProvider;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IPath;
@ -33,24 +34,37 @@ public class MBSLanguageSettingsProvider extends AbstractExecutableExtensionBase
public List<ICLanguageSettingEntry> getSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId) { public List<ICLanguageSettingEntry> getSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId) {
IPath projectPath = rc.getProjectRelativePath(); IPath projectPath = rc.getProjectRelativePath();
ICResourceDescription rcDescription = cfgDescription.getResourceDescription(projectPath, false); ICLanguageSetting[] languageSettings = null;
if (rc instanceof IFile) {
ICLanguageSetting ls = cfgDescription.getLanguageSettingForFile(projectPath, true);
if (ls != null) {
languageSettings = new ICLanguageSetting[] {ls};
}
} else {
ICResourceDescription rcDescription = cfgDescription.getResourceDescription(projectPath, false);
languageSettings = getLanguageSettings(rcDescription);
}
List<ICLanguageSettingEntry> list = new ArrayList<ICLanguageSettingEntry>(); List<ICLanguageSettingEntry> list = new ArrayList<ICLanguageSettingEntry>();
for (ICLanguageSetting languageSetting : getLanguageSettings(rcDescription)) {
if (languageSetting!=null) { if (languageSettings != null) {
String id = languageSetting.getLanguageId(); for (ICLanguageSetting langSetting : languageSettings) {
if (id!=null && id.equals(languageId)) { if (langSetting!=null) {
int kindsBits = languageSetting.getSupportedEntryKinds(); String id = langSetting.getLanguageId();
for (int kind=1;kind<=kindsBits;kind<<=1) { if (id!=null && id.equals(languageId)) {
if ((kindsBits & kind) != 0) { int kindsBits = langSetting.getSupportedEntryKinds();
list.addAll(languageSetting.getSettingEntriesList(kind)); for (int kind=1;kind<=kindsBits;kind<<=1) {
if ((kindsBits & kind) != 0) {
list.addAll(langSetting.getSettingEntriesList(kind));
}
} }
} else {
// System.err.println("languageSetting id=null: name=" + languageSetting.getName());
} }
} else { } else {
// System.err.println("languageSetting id=null: name=" + languageSetting.getName()); System.err.println("languageSetting=null: rc=" + rc);
} }
} else {
System.err.println("languageSetting=null: rcDescription=" + rcDescription.getName());
} }
} }
return list; return list;