mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Moved ILanguageSettingsChangeListener & ILanguageSettingsChangeEvent to
API package, same for serializeLanguageSettings() & serializeLanguageSettingsWorkspace()
This commit is contained in:
parent
f6151d3a72
commit
689c2a5f17
17 changed files with 243 additions and 206 deletions
|
@ -27,7 +27,6 @@ import org.eclipse.cdt.core.errorparsers.RegexErrorPattern;
|
|||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
|
||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||
import org.eclipse.cdt.internal.core.ConsoleOutputSniffer;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsProvidersSerializer;
|
||||
import org.eclipse.cdt.make.core.MakeCorePlugin;
|
||||
import org.eclipse.core.resources.IFolder;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
|
@ -140,27 +139,17 @@ public abstract class AbstractBuildCommandParser extends AbstractLanguageSetting
|
|||
Job job = new Job("Serialize CDT language settings entries") {
|
||||
@Override
|
||||
protected IStatus run(IProgressMonitor monitor) {
|
||||
// FIXME - remove thread name reassigning
|
||||
Thread thread = getThread();
|
||||
String oldName = thread.getName();
|
||||
thread.setName("CDT LSP Serializer,BOP");
|
||||
|
||||
IStatus status = null;
|
||||
IStatus status = Status.OK_STATUS;
|
||||
try {
|
||||
if (cfgDescription != null) {
|
||||
LanguageSettingsProvidersSerializer.serializeLanguageSettings(cfgDescription.getProjectDescription());
|
||||
LanguageSettingsManager.serializeLanguageSettings(cfgDescription.getProjectDescription());
|
||||
} else {
|
||||
LanguageSettingsProvidersSerializer.serializeLanguageSettingsWorkspace();
|
||||
LanguageSettingsManager.serializeLanguageSettingsWorkspace();
|
||||
}
|
||||
} catch (CoreException e) {
|
||||
status = new Status(IStatus.ERROR, MakeCorePlugin.PLUGIN_ID, IStatus.ERROR, "Error serializing language settings", e);
|
||||
MakeCorePlugin.log(status);
|
||||
}
|
||||
|
||||
if (status == null)
|
||||
status = Status.OK_STATUS;
|
||||
|
||||
thread.setName(oldName);
|
||||
return status;
|
||||
}
|
||||
@Override
|
||||
|
|
|
@ -28,6 +28,7 @@ import org.eclipse.cdt.core.IMarkerGenerator;
|
|||
import org.eclipse.cdt.core.ProblemMarkerInfo;
|
||||
import org.eclipse.cdt.core.index.IIndexManager;
|
||||
import org.eclipse.cdt.core.language.settings.providers.ICListenerAgent;
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
|
||||
import org.eclipse.cdt.core.model.CoreModel;
|
||||
import org.eclipse.cdt.core.model.ICElement;
|
||||
import org.eclipse.cdt.core.model.ICProject;
|
||||
|
@ -41,7 +42,6 @@ import org.eclipse.cdt.core.settings.model.ICProjectDescription;
|
|||
import org.eclipse.cdt.internal.core.ConsoleOutputSniffer;
|
||||
import org.eclipse.cdt.internal.core.XmlUtil;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsLogger;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsProvidersSerializer;
|
||||
import org.eclipse.cdt.make.core.MakeCorePlugin;
|
||||
import org.eclipse.cdt.make.internal.core.MakeMessages;
|
||||
import org.eclipse.cdt.make.internal.core.StreamMonitor;
|
||||
|
@ -375,9 +375,9 @@ public abstract class AbstractBuiltinSpecsDetector extends AbstractLanguageSetti
|
|||
if (isChanged) { // avoids resource and settings change notifications
|
||||
try {
|
||||
if (currentCfgDescription != null) {
|
||||
LanguageSettingsProvidersSerializer.serializeLanguageSettings(currentCfgDescription.getProjectDescription());
|
||||
LanguageSettingsManager.serializeLanguageSettings(currentCfgDescription.getProjectDescription());
|
||||
} else {
|
||||
LanguageSettingsProvidersSerializer.serializeLanguageSettingsWorkspace();
|
||||
LanguageSettingsManager.serializeLanguageSettingsWorkspace();
|
||||
}
|
||||
} catch (CoreException e) {
|
||||
IStatus s = new Status(IStatus.ERROR, MakeCorePlugin.PLUGIN_ID, IStatus.ERROR, "Error serializing language settings", e);
|
||||
|
|
|
@ -23,9 +23,6 @@ import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
|||
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
|
||||
import org.eclipse.cdt.core.testplugin.ResourceHelper;
|
||||
import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.ILanguageSettingsChangeEvent;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.ILanguageSettingsChangeListener;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsProvidersSerializer;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
|
||||
/**
|
||||
|
@ -83,7 +80,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
|
||||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
LanguageSettingsProvidersSerializer.unregisterLanguageSettingsChangeListener(mockLseListener);
|
||||
LanguageSettingsManager.unregisterLanguageSettingsChangeListener(mockLseListener);
|
||||
LanguageSettingsManager.setWorkspaceProviders(null);
|
||||
super.tearDown();
|
||||
}
|
||||
|
@ -547,7 +544,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
// register mock listener to inspect the notifications
|
||||
LanguageSettingsProvidersSerializer.registerLanguageSettingsChangeListener(mockLseListener);
|
||||
LanguageSettingsManager.registerLanguageSettingsChangeListener(mockLseListener);
|
||||
assertEquals(0, mockLseListener.getCount());
|
||||
assertEquals(null, mockLseListener.getLastEvent());
|
||||
|
||||
|
@ -601,7 +598,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
// register mock listener to inspect the notifications
|
||||
LanguageSettingsProvidersSerializer.registerLanguageSettingsChangeListener(mockLseListener);
|
||||
LanguageSettingsManager.registerLanguageSettingsChangeListener(mockLseListener);
|
||||
assertEquals(0, mockLseListener.getCount());
|
||||
assertEquals(null, mockLseListener.getLastEvent());
|
||||
|
||||
|
@ -666,7 +663,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
// register mock listener to inspect the notifications
|
||||
LanguageSettingsProvidersSerializer.registerLanguageSettingsChangeListener(mockLseListener);
|
||||
LanguageSettingsManager.registerLanguageSettingsChangeListener(mockLseListener);
|
||||
assertEquals(0, mockLseListener.getCount());
|
||||
assertEquals(null, mockLseListener.getLastEvent());
|
||||
|
||||
|
@ -692,7 +689,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(null, mockLseListener.getLastEvent());
|
||||
|
||||
// Serialize settings
|
||||
LanguageSettingsProvidersSerializer.serializeLanguageSettings(prjDescription);
|
||||
LanguageSettingsManager.serializeLanguageSettings(prjDescription);
|
||||
// inspect event
|
||||
assertEquals(1, mockLseListener.getCount());
|
||||
ILanguageSettingsChangeEvent event = mockLseListener.getLastEvent();
|
||||
|
@ -730,7 +727,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
// register mock listener to inspect the notifications
|
||||
LanguageSettingsProvidersSerializer.registerLanguageSettingsChangeListener(mockLseListener);
|
||||
LanguageSettingsManager.registerLanguageSettingsChangeListener(mockLseListener);
|
||||
assertEquals(0, mockLseListener.getCount());
|
||||
assertEquals(null, mockLseListener.getLastEvent());
|
||||
|
||||
|
@ -762,7 +759,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertNull(mockLseListener.getLastEvent());
|
||||
|
||||
// Serialize settings
|
||||
LanguageSettingsProvidersSerializer.serializeLanguageSettings(prjDescription_1);
|
||||
LanguageSettingsManager.serializeLanguageSettings(prjDescription_1);
|
||||
// inspect event
|
||||
assertEquals(1, mockLseListener.getCount());
|
||||
ILanguageSettingsChangeEvent event = mockLseListener.getLastEvent();
|
||||
|
@ -793,7 +790,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertNull(mockLseListener.getLastEvent());
|
||||
|
||||
// Serialize settings
|
||||
LanguageSettingsProvidersSerializer.serializeLanguageSettings(prjDescription_2);
|
||||
LanguageSettingsManager.serializeLanguageSettings(prjDescription_2);
|
||||
// inspect event
|
||||
assertEquals(0, mockLseListener.getCount());
|
||||
ILanguageSettingsChangeEvent event = mockLseListener.getLastEvent();
|
||||
|
@ -825,7 +822,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
// register mock listener to inspect the notifications
|
||||
LanguageSettingsProvidersSerializer.registerLanguageSettingsChangeListener(mockLseListener);
|
||||
LanguageSettingsManager.registerLanguageSettingsChangeListener(mockLseListener);
|
||||
assertEquals(0, mockLseListener.getCount());
|
||||
assertEquals(null, mockLseListener.getLastEvent());
|
||||
|
||||
|
@ -886,7 +883,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
// register mock listener to inspect the notifications
|
||||
LanguageSettingsProvidersSerializer.registerLanguageSettingsChangeListener(mockLseListener);
|
||||
LanguageSettingsManager.registerLanguageSettingsChangeListener(mockLseListener);
|
||||
assertEquals(0, mockLseListener.getCount());
|
||||
assertEquals(null, mockLseListener.getLastEvent());
|
||||
|
||||
|
@ -938,7 +935,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||
|
||||
// register mock listener to inspect the notifications
|
||||
LanguageSettingsProvidersSerializer.registerLanguageSettingsChangeListener(mockLseListener);
|
||||
LanguageSettingsManager.registerLanguageSettingsChangeListener(mockLseListener);
|
||||
|
||||
// Add empty global provider
|
||||
{
|
||||
|
@ -988,7 +985,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(null, mockLseListener.getLastEvent());
|
||||
|
||||
// Serialize settings
|
||||
LanguageSettingsProvidersSerializer.serializeLanguageSettingsWorkspace();
|
||||
LanguageSettingsManager.serializeLanguageSettingsWorkspace();
|
||||
|
||||
// get cfgDescriptionId
|
||||
ICProjectDescription prjDescription = CoreModel.getDefault().getProjectDescription(project, false);
|
||||
|
@ -1023,7 +1020,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(null, mockLseListener.getLastEvent());
|
||||
|
||||
// Serialize settings
|
||||
LanguageSettingsProvidersSerializer.serializeLanguageSettingsWorkspace();
|
||||
LanguageSettingsManager.serializeLanguageSettingsWorkspace();
|
||||
|
||||
// get cfgDescriptionId
|
||||
ICProjectDescription prjDescription = CoreModel.getDefault().getProjectDescription(project, false);
|
||||
|
|
|
@ -304,7 +304,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
assertEquals(entries.size(), actual.size());
|
||||
|
||||
// serialize language settings of workspace providers
|
||||
LanguageSettingsProvidersSerializer.serializeLanguageSettingsWorkspace();
|
||||
LanguageSettingsManager.serializeLanguageSettingsWorkspace();
|
||||
|
||||
// clear the provider
|
||||
extProvider.setSettingEntries(null, null, null, null);
|
||||
|
|
|
@ -14,7 +14,6 @@ import java.util.List;
|
|||
|
||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.ILanguageSettingsChangeEvent;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsProvidersSerializer;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
* Contributors:
|
||||
* Andrew Gvozdev - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.core.language.settings.providers;
|
||||
package org.eclipse.cdt.core.language.settings.providers;
|
||||
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
|
|
@ -8,15 +8,15 @@
|
|||
* Contributors:
|
||||
* Andrew Gvozdev - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.core.language.settings.providers;
|
||||
package org.eclipse.cdt.core.language.settings.providers;
|
||||
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
|
||||
/**
|
||||
* An interface for listeners to changes in language settings {@link ICLanguageSettingEntry}.
|
||||
*
|
||||
* @see LanguageSettingsProvidersSerializer#registerLanguageSettingsChangeListener(ILanguageSettingsChangeListener)
|
||||
* @see LanguageSettingsProvidersSerializer#unregisterLanguageSettingsChangeListener(ILanguageSettingsChangeListener)
|
||||
* @see LanguageSettingsManager#registerLanguageSettingsChangeListener(ILanguageSettingsChangeListener)
|
||||
* @see LanguageSettingsManager#unregisterLanguageSettingsChangeListener(ILanguageSettingsChangeListener)
|
||||
*/
|
||||
public interface ILanguageSettingsChangeListener {
|
||||
/**
|
|
@ -22,6 +22,7 @@ import org.eclipse.cdt.core.settings.model.ICFileDescription;
|
|||
import org.eclipse.cdt.core.settings.model.ICFolderDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSetting;
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICResourceDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICSettingEntry;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsExtensionManager;
|
||||
|
@ -35,8 +36,6 @@ import org.eclipse.core.runtime.IPath;
|
|||
/**
|
||||
* A collection of utility methods to manage language settings providers.
|
||||
* See {@link ILanguageSettingsProvider}.
|
||||
*
|
||||
* @since 6.0
|
||||
*/
|
||||
public class LanguageSettingsManager {
|
||||
/**
|
||||
|
@ -257,4 +256,41 @@ public class LanguageSettingsManager {
|
|||
return languageIds;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a listener that will be notified of changes in language settings.
|
||||
*
|
||||
* @param listener the listener to add
|
||||
*/
|
||||
public static void registerLanguageSettingsChangeListener(ILanguageSettingsChangeListener listener) {
|
||||
LanguageSettingsProvidersSerializer.registerLanguageSettingsChangeListener(listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes a language settings change listener.
|
||||
*
|
||||
* @param listener the listener to remove.
|
||||
*/
|
||||
public static void unregisterLanguageSettingsChangeListener(ILanguageSettingsChangeListener listener) {
|
||||
LanguageSettingsProvidersSerializer.unregisterLanguageSettingsChangeListener(listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* Save language settings providers of a project to persistent storage.
|
||||
*
|
||||
* @param prjDescription - project description of the project.
|
||||
* @throws CoreException if something goes wrong.
|
||||
*/
|
||||
public static void serializeLanguageSettings(ICProjectDescription prjDescription) throws CoreException {
|
||||
LanguageSettingsProvidersSerializer.serializeLanguageSettings(prjDescription);
|
||||
}
|
||||
|
||||
/**
|
||||
* Save language settings providers of the workspace (global providers) to persistent storage.
|
||||
*
|
||||
* @throws CoreException
|
||||
*/
|
||||
public static void serializeLanguageSettingsWorkspace() throws CoreException {
|
||||
LanguageSettingsProvidersSerializer.serializeLanguageSettingsWorkspace();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ public class LanguageSettingsManager_TBD {
|
|||
try {
|
||||
return ! LanguageSettingsExtensionManager.equalsExtensionProviderShallow((ILanguageSettingsEditableProvider) provider);
|
||||
} catch (Exception e) {
|
||||
CCorePlugin.log("Internal Error: cannot clone provider "+provider.getId(), e);
|
||||
CCorePlugin.log(e);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -18,7 +18,6 @@ import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
|||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
|
||||
import org.eclipse.cdt.internal.core.XmlUtil;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsProvidersSerializer;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsSerializableStorage;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
import org.w3c.dom.Element;
|
||||
|
@ -156,9 +155,8 @@ public class LanguageSettingsSerializableProvider extends LanguageSettingsBasePr
|
|||
* Sets language settings entries for the provider.
|
||||
* Note that the entries are not persisted at that point. Use this method to
|
||||
* set the entries for all resources and then to persist use
|
||||
* {@fixme FIXME - update references with API versions}
|
||||
* {@link LanguageSettingsProvidersSerializer#serializeLanguageSettings(ICProjectDescription)} or
|
||||
* {@link LanguageSettingsProvidersSerializer#serializeLanguageSettingsWorkspace()}.
|
||||
* {@link LanguageSettingsManager#serializeLanguageSettings(ICProjectDescription)} or
|
||||
* {@link LanguageSettingsManager#serializeLanguageSettingsWorkspace()}.
|
||||
* See for example {@code AbstractBuildCommandParser} and {@code AbstractBuiltinSpecsDetector}
|
||||
* in build plugins.
|
||||
*
|
||||
|
|
|
@ -66,7 +66,7 @@ public class LanguageSettingsLogger {
|
|||
@Deprecated
|
||||
public static void logScannerInfoProvider(IResource rc, Object who) {
|
||||
if (isEnabled()) {
|
||||
String msg = "rc="+rc+" <-- "+who.getClass().getSimpleName();
|
||||
String msg = "rc="+rc+" <-- "+who.getClass().getSimpleName(); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
if (rc instanceof IFile) {
|
||||
LanguageSettingsLogger.logInfo(msg);
|
||||
} else if (rc instanceof IProject) {
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
* Contributors:
|
||||
* Andrew Gvozdev - initial API and implementation
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.internal.core.language.settings.providers;
|
||||
|
||||
import java.net.URI;
|
||||
|
@ -20,6 +19,8 @@ import java.util.Map;
|
|||
|
||||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.language.settings.providers.ICListenerAgent;
|
||||
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsChangeEvent;
|
||||
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsChangeListener;
|
||||
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsEditableProvider;
|
||||
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvider;
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
|
||||
|
@ -58,8 +59,11 @@ import org.w3c.dom.Element;
|
|||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
/**
|
||||
* Helper class handling serialization and notifications for language settings entries {@link ICLanguageSettingEntry}.
|
||||
*/
|
||||
public class LanguageSettingsProvidersSerializer {
|
||||
private static final String PREFERENCE_WORSPACE_PROVIDERS_SET = "language.settings.providers.set.for.workspace";
|
||||
private static final String PREFERENCE_WORSPACE_PROVIDERS_SET = "language.settings.providers.set.for.workspace"; //$NON-NLS-1$
|
||||
private static final String STORAGE_WORKSPACE_LANGUAGE_SETTINGS = "language.settings.xml"; //$NON-NLS-1$
|
||||
private static final String SETTINGS_FOLDER_NAME = ".settings/"; //$NON-NLS-1$
|
||||
private static final String STORAGE_PROJECT_LANGUAGE_SETTINGS = "language.settings.xml"; //$NON-NLS-1$
|
||||
|
@ -372,6 +376,11 @@ projects:
|
|||
return events;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save language settings providers of the workspace (global providers) to persistent storage.
|
||||
*
|
||||
* @throws CoreException
|
||||
*/
|
||||
public static void serializeLanguageSettingsWorkspace() throws CoreException {
|
||||
LanguageSettingsLogger.logWarning("LanguageSettingsProvidersSerializer.serializeLanguageSettingsWorkspace()");
|
||||
|
||||
|
@ -530,6 +539,12 @@ projects:
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Save language settings providers of a project to persistent storage.
|
||||
*
|
||||
* @param prjDescription - project description of the project.
|
||||
* @throws CoreException if something goes wrong.
|
||||
*/
|
||||
public static void serializeLanguageSettings(ICProjectDescription prjDescription) throws CoreException {
|
||||
IProject project = prjDescription.getProject();
|
||||
LanguageSettingsLogger.logWarning("LanguageSettingsProvidersSerializer.serializeLanguageSettings() for " + project);
|
||||
|
@ -993,7 +1008,7 @@ projects:
|
|||
/**
|
||||
* Adds a listener that will be notified of changes in language settings.
|
||||
*
|
||||
* @param listener the ILanguageMappingChangeListener to add
|
||||
* @param listener the listener to add
|
||||
*/
|
||||
public static void registerLanguageSettingsChangeListener(ILanguageSettingsChangeListener listener) {
|
||||
fLanguageSettingsChangeListeners.add(listener);
|
||||
|
@ -1002,7 +1017,7 @@ projects:
|
|||
/**
|
||||
* Removes a language settings change listener.
|
||||
*
|
||||
* @param listener the ILanguageMappingChangeListener to remove.
|
||||
* @param listener the listener to remove.
|
||||
*/
|
||||
public static void unregisterLanguageSettingsChangeListener(ILanguageSettingsChangeListener listener) {
|
||||
fLanguageSettingsChangeListeners.remove(listener);
|
||||
|
|
|
@ -49,7 +49,6 @@ import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSetting
|
|||
import org.eclipse.cdt.utils.envvar.StorableEnvironment;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.QualifiedName;
|
||||
import org.eclipse.osgi.util.NLS;
|
||||
|
||||
/**
|
||||
* CConfigurationSpecSettings impelements ICSettingsStorage
|
||||
|
@ -1014,15 +1013,13 @@ public class CConfigurationSpecSettings implements ICSettingsStorage{
|
|||
for (ILanguageSettingsProvider provider : providers) {
|
||||
String id = provider.getId();
|
||||
if (provider==LanguageSettingsProvidersSerializer.getRawWorkspaceProvider(id)) {
|
||||
String msg = "Error: Attempt to add to the configuration raw global provider " + id;
|
||||
throw new IllegalArgumentException(msg);
|
||||
throw new IllegalArgumentException("Error: Attempt to add to the configuration raw global provider " + id); //$NON-NLS-1$
|
||||
}
|
||||
if (!ids.contains(id)) {
|
||||
fLanguageSettingsProviders.add(provider);
|
||||
ids.add(id);
|
||||
} else {
|
||||
String msg = NLS.bind(SettingsModelMessages.getString("CConfigurationSpecSettings.MustHaveUniqueID"), id); //$NON-NLS-1$
|
||||
throw new IllegalArgumentException(msg);
|
||||
throw new IllegalArgumentException("Language Settings Providers must have unique ID. Duplicate ID=" + id); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
fIsModified = true;
|
||||
|
|
|
@ -16,7 +16,6 @@ CConfigurationDescription.1=expected proxy of type ICFileDescription, but was
|
|||
CConfigurationDescription.2=data was not created
|
||||
CConfigurationDescription.3=expected proxy of type ICFolderDescription, but was
|
||||
CConfigurationDescriptionCache.0=description is read only
|
||||
CConfigurationSpecSettings.MustHaveUniqueID=Language Settings Providers must have unique ID. Duplicate ID={0}
|
||||
CConfigurationStatus.1=configurations settings invalid
|
||||
CProjectConverterDesciptor.0=illegal provider implementation
|
||||
CProjectConverterDesciptor.1=no provider defined
|
||||
|
|
|
@ -34,6 +34,7 @@ import javax.xml.transform.dom.DOMSource;
|
|||
import javax.xml.transform.stream.StreamResult;
|
||||
|
||||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
|
||||
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICProjectDescriptionManager;
|
||||
import org.eclipse.cdt.core.settings.model.ICSettingsStorage;
|
||||
|
@ -173,7 +174,7 @@ public class XmlProjectDescriptionStorage extends AbstractCProjectDescriptionSto
|
|||
serializingLock.acquire();
|
||||
projectModificaitonStamp = serialize(fDes.getProject(), ICProjectDescriptionStorageType.STORAGE_FILE_NAME, fElement);
|
||||
((ContributedEnvironment) CCorePlugin.getDefault().getBuildEnvironmentManager().getContributedEnvironment()).serialize(fDes);
|
||||
LanguageSettingsProvidersSerializer.serializeLanguageSettings(fDes);
|
||||
LanguageSettingsManager.serializeLanguageSettings(fDes);
|
||||
} finally {
|
||||
serializingLock.release();
|
||||
Job.getJobManager().removeJobChangeListener(notifyJobCanceller);
|
||||
|
|
|
@ -11,10 +11,10 @@
|
|||
package org.eclipse.cdt.internal.core.pdom;
|
||||
|
||||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsChangeEvent;
|
||||
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsChangeListener;
|
||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.ILanguageSettingsChangeEvent;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.ILanguageSettingsChangeListener;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IWorkspaceRoot;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
|
@ -25,10 +25,16 @@ import org.eclipse.core.resources.ResourcesPlugin;
|
|||
public class LanguageSettingsChangeListener implements ILanguageSettingsChangeListener {
|
||||
private PDOMManager fManager;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param manager - PDOM manager.
|
||||
*/
|
||||
public LanguageSettingsChangeListener(PDOMManager manager) {
|
||||
fManager = manager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleEvent(ILanguageSettingsChangeEvent event) {
|
||||
IWorkspaceRoot wspRoot = ResourcesPlugin.getWorkspace().getRoot();
|
||||
IProject project = wspRoot.getProject(event.getProjectName());
|
||||
|
|
|
@ -48,6 +48,7 @@ import org.eclipse.cdt.core.index.IIndexManager;
|
|||
import org.eclipse.cdt.core.index.IIndexerStateListener;
|
||||
import org.eclipse.cdt.core.index.IndexLocationFactory;
|
||||
import org.eclipse.cdt.core.index.IndexerSetupParticipant;
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
|
||||
import org.eclipse.cdt.core.model.CModelException;
|
||||
import org.eclipse.cdt.core.model.CoreModel;
|
||||
import org.eclipse.cdt.core.model.ICContainer;
|
||||
|
@ -68,7 +69,6 @@ import org.eclipse.cdt.internal.core.index.IndexChangeEvent;
|
|||
import org.eclipse.cdt.internal.core.index.IndexFactory;
|
||||
import org.eclipse.cdt.internal.core.index.IndexerStateEvent;
|
||||
import org.eclipse.cdt.internal.core.index.provider.IndexProviderManager;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsProvidersSerializer;
|
||||
import org.eclipse.cdt.internal.core.pdom.PDOM.IListener;
|
||||
import org.eclipse.cdt.internal.core.pdom.db.ChunkCache;
|
||||
import org.eclipse.cdt.internal.core.pdom.dom.IPDOMLinkageFactory;
|
||||
|
@ -240,7 +240,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
ResourcesPlugin.getWorkspace().addResourceChangeListener(fCModelListener, IResourceChangeEvent.POST_BUILD);
|
||||
model.addElementChangedListener(fCModelListener);
|
||||
LanguageManager.getInstance().registerLanguageChangeListener(fLanguageChangeListener);
|
||||
LanguageSettingsProvidersSerializer.registerLanguageSettingsChangeListener(fLanguageSettingsChangeListener);
|
||||
LanguageSettingsManager.registerLanguageSettingsChangeListener(fLanguageSettingsChangeListener);
|
||||
final int types= CProjectDescriptionEvent.DATA_APPLIED;
|
||||
CCorePlugin.getDefault().getProjectDescriptionManager().addCProjectDescriptionListener(fProjectDescriptionListener, types);
|
||||
|
||||
|
@ -261,7 +261,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
final CoreModel model = CoreModel.getDefault();
|
||||
model.removeElementChangedListener(fCModelListener);
|
||||
ResourcesPlugin.getWorkspace().removeResourceChangeListener(fCModelListener);
|
||||
LanguageSettingsProvidersSerializer.unregisterLanguageSettingsChangeListener(fLanguageSettingsChangeListener);
|
||||
LanguageSettingsManager.unregisterLanguageSettingsChangeListener(fLanguageSettingsChangeListener);
|
||||
LanguageManager.getInstance().unregisterLanguageChangeListener(fLanguageChangeListener);
|
||||
PDOMIndexerJob jobToCancel= null;
|
||||
synchronized (fTaskQueue) {
|
||||
|
|
Loading…
Add table
Reference in a new issue