Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] how to programmatically change the language settings providers?

Hi All:

 

I am trying to programmatically change the language settings providers of the IProject, Could someone help me find what’s issue of my code? My code can set new language settings providers and store language.settings.xml file on disk during I debug the code and step one by one. but if I change some other settings on Windows -> Preferences, the file language.settings.xml just disappear and language settings providers change to null by default.

 

                IProject prj = getCurrentSelectedProject();

                ICProjectDescriptionManager manager = CoreModel.getDefault().getProjectDescriptionManager();

                ICProjectDescription prjDescriptionWritable = manager.getProjectDescription(prj, true);

                ICConfigurationDescription cfgDescriptionWritable = prjDescriptionWritable.getActiveConfiguration();

 

 

                ((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).getDefaultLanguageSettingsProvidersIds();

                ((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).getLanguageSettingProviders();

 

                String[] providersId = new String[4];

                providersId[0] = "id0";

                providersId[1] = "id1";

                providersId[2] = "id2";

                providersId[3] = "id3";

                ((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).setDefaultLanguageSettingsProvidersIds(providersId);               

                List<ILanguageSettingsProvider> providers = LanguageSettingsManager.createLanguageSettingsProviders(providersId);

                ((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).setLanguageSettingProviders(providers);

               

                

                ((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).getDefaultLanguageSettingsProvidersIds();

                ((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).getLanguageSettingProviders();

                try {

                           manager.setProjectDescription(prj, prjDescriptionWritable);

                    } catch (CoreException e) {

                                 // TODO Auto-generated catch block

                                 e.printStackTrace();

                    }    


Back to the top