mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
JavaDoc
This commit is contained in:
parent
35f8ff40dc
commit
3713fcd080
4 changed files with 113 additions and 53 deletions
|
@ -25,10 +25,12 @@ public interface ILanguageSettingsProvidersKeeper {
|
||||||
* used to supply language settings {@link ICLanguageSettingEntry} such as include paths
|
* used to supply language settings {@link ICLanguageSettingEntry} such as include paths
|
||||||
* or preprocessor macros.
|
* or preprocessor macros.
|
||||||
*
|
*
|
||||||
* @param providers the list of providers to assign to the owner (configuration description).
|
* @param providers - the list of providers to assign to the owner (configuration description).
|
||||||
* This method clones the internal list or otherwise ensures immutability of the internal
|
* This method clones the internal list or otherwise ensures immutability of the internal
|
||||||
* list before actual addition to the project model.
|
* list before actual addition to the project model. That is to ensure that there is no
|
||||||
* That is due to TODO - very important reason but I forgot why by now.
|
* back-door access and all changes in the list done by this method which fires notifications
|
||||||
|
* to the registered listeners about the accompanied changes in settings entries, see
|
||||||
|
* {@link LanguageSettingsManager#registerLanguageSettingsChangeListener(ILanguageSettingsChangeListener)}.
|
||||||
*/
|
*/
|
||||||
public void setLanguageSettingProviders(List<ILanguageSettingsProvider> providers);
|
public void setLanguageSettingProviders(List<ILanguageSettingsProvider> providers);
|
||||||
|
|
||||||
|
|
|
@ -121,7 +121,10 @@ public class LanguageSettingsManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the provider is defined on the workspace level.
|
* Checks if the provider is a workspace level provider.
|
||||||
|
* This method is intended to check providers retrieved from a configuration.
|
||||||
|
* Raw providers from {@link #getRawProvider(ILanguageSettingsProvider)}
|
||||||
|
* are not considered as workspace providers.
|
||||||
*
|
*
|
||||||
* @param provider - provider to check.
|
* @param provider - provider to check.
|
||||||
* @return {@code true} if the given provider is workspace provider, {@code false} otherwise.
|
* @return {@code true} if the given provider is workspace provider, {@code false} otherwise.
|
||||||
|
@ -131,12 +134,16 @@ public class LanguageSettingsManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO - helper method for often used chunk of code
|
* Helper method to get to real underlying provider collecting entries as opposed to wrapper
|
||||||
* @param provider
|
* which is normally used for workspace provider.
|
||||||
* @return ILanguageSettingsProvider
|
* @see LanguageSettingsProvidersSerializer#isWorkspaceProvider(ILanguageSettingsProvider)
|
||||||
|
*
|
||||||
|
* @param provider - the provider to get raw provider for. Can be either workspace provider
|
||||||
|
* or regular one.
|
||||||
|
* @return raw underlying provider for workspace provider or provider itself if no wrapper is used.
|
||||||
*/
|
*/
|
||||||
public static ILanguageSettingsProvider getRawProvider(ILanguageSettingsProvider provider) {
|
public static ILanguageSettingsProvider getRawProvider(ILanguageSettingsProvider provider) {
|
||||||
if (LanguageSettingsManager.isWorkspaceProvider(provider)){
|
if (LanguageSettingsManager.isWorkspaceProvider(provider)) {
|
||||||
provider = LanguageSettingsProvidersSerializer.getRawWorkspaceProvider(provider.getId());
|
provider = LanguageSettingsProvidersSerializer.getRawWorkspaceProvider(provider.getId());
|
||||||
}
|
}
|
||||||
return provider;
|
return provider;
|
||||||
|
@ -158,34 +165,43 @@ public class LanguageSettingsManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* Copy language settings provider. It is different from clone() methods in that
|
||||||
* @param deepCopy TODO
|
* it does not throw {@code CloneNotSupportedException} but returns {@code null}
|
||||||
* @param id
|
* instead.
|
||||||
|
*
|
||||||
|
* @param provider - language settings provider to copy.
|
||||||
|
* @param deep - {@code true} to request deep copy including copying settings entries
|
||||||
|
* or {@code false} to return shallow copy with no settings entries.
|
||||||
*
|
*
|
||||||
* @return
|
* @return a copy of the provider or null if copying is not possible.
|
||||||
*/
|
*/
|
||||||
public static ILanguageSettingsEditableProvider getProviderCopy(ILanguageSettingsEditableProvider provider, boolean deep) {
|
public static ILanguageSettingsEditableProvider getProviderCopy(ILanguageSettingsEditableProvider provider, boolean deep) {
|
||||||
return LanguageSettingsExtensionManager.getProviderCopy(provider, deep);
|
return LanguageSettingsExtensionManager.getProviderCopy(provider, deep);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Language Settings Provider defined via
|
* Get language settings provider defined via extension point
|
||||||
* {@code org.eclipse.cdt.core.LanguageSettingsProvider} extension point.
|
* {@code org.eclipse.cdt.core.LanguageSettingsProvider}.
|
||||||
|
* A new copy of the extension provider is returned.
|
||||||
*
|
*
|
||||||
* @param id - ID of provider to find.
|
* @param id - ID of the extension provider.
|
||||||
* @param deep TODO
|
* @param deep - {@code true} to request deep copy including copying settings entries
|
||||||
* @return the copy of the provider if possible (i.e. for {@link ILanguageSettingsEditableProvider})
|
* or {@code false} to return shallow copy with no settings entries.
|
||||||
* or workspace provider if provider is not copyable.
|
* @return the copy of the extension provider if possible (i.e. for {@link ILanguageSettingsEditableProvider})
|
||||||
|
* or {@code null} if provider is not copyable.
|
||||||
*/
|
*/
|
||||||
public static ILanguageSettingsProvider getExtensionProviderCopy(String id, boolean deep) {
|
public static ILanguageSettingsProvider getExtensionProviderCopy(String id, boolean deep) {
|
||||||
return LanguageSettingsExtensionManager.getExtensionProviderCopy(id, deep);
|
return LanguageSettingsExtensionManager.getExtensionProviderCopy(id, deep);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* Test if the provider is equal to the one defined via extension point
|
||||||
* @param provider
|
* {@code org.eclipse.cdt.core.LanguageSettingsProvider}.
|
||||||
* @param deep
|
*
|
||||||
* @return
|
* @param provider - the provider to test.
|
||||||
|
* @param deep - {@code true} to check for deep equality testing also settings entries
|
||||||
|
* or {@code false} to test shallow copy with no settings entries.
|
||||||
|
* @return - {@code true} if the provider matches the extension or {@code false} otherwise.
|
||||||
*/
|
*/
|
||||||
public static boolean isEqualExtensionProvider(ILanguageSettingsProvider provider, boolean deep) {
|
public static boolean isEqualExtensionProvider(ILanguageSettingsProvider provider, boolean deep) {
|
||||||
return LanguageSettingsExtensionManager.isEqualsExtensionProvider(provider, deep);
|
return LanguageSettingsExtensionManager.isEqualsExtensionProvider(provider, deep);
|
||||||
|
|
|
@ -276,8 +276,8 @@ public class LanguageSettingsExtensionManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
ILanguageSettingsProvider provider = createProviderCarcass(className, Platform.getExtensionRegistry());
|
ILanguageSettingsProvider provider = createProviderCarcass(className, Platform.getExtensionRegistry());
|
||||||
if (provider==null) {
|
if (provider == null) {
|
||||||
IStatus status = new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, "Not able to load provider class=" + className);
|
IStatus status = new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, "Not able to load provider class=" + className); //$NON-NLS-1$
|
||||||
CCorePlugin.log(new CoreException(status));
|
CCorePlugin.log(new CoreException(status));
|
||||||
}
|
}
|
||||||
return provider;
|
return provider;
|
||||||
|
@ -291,20 +291,27 @@ public class LanguageSettingsExtensionManager {
|
||||||
ArrayList<ILanguageSettingsProvider> list = new ArrayList<ILanguageSettingsProvider>(fExtensionProviders.size());
|
ArrayList<ILanguageSettingsProvider> list = new ArrayList<ILanguageSettingsProvider>(fExtensionProviders.size());
|
||||||
for (String id : fExtensionProviders.keySet()) {
|
for (String id : fExtensionProviders.keySet()) {
|
||||||
ILanguageSettingsProvider extensionProvider = getExtensionProviderCopy(id, true);
|
ILanguageSettingsProvider extensionProvider = getExtensionProviderCopy(id, true);
|
||||||
if (extensionProvider==null)
|
if (extensionProvider == null) {
|
||||||
extensionProvider = fExtensionProviders.get(id);
|
extensionProvider = fExtensionProviders.get(id);
|
||||||
|
}
|
||||||
|
|
||||||
if (extensionProvider!=null)
|
if (extensionProvider != null) {
|
||||||
list.add(extensionProvider);
|
list.add(extensionProvider);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* Copy language settings provider. It is different from clone() methods in that
|
||||||
* @param provider
|
* it does not throw {@code CloneNotSupportedException} but returns {@code null}
|
||||||
* @param deep
|
* instead.
|
||||||
* @return
|
*
|
||||||
|
* @param provider - language settings provider to copy.
|
||||||
|
* @param deep - {@code true} to request deep copy including copying settings entries
|
||||||
|
* or {@code false} to return shallow copy with no settings entries.
|
||||||
|
*
|
||||||
|
* @return a copy of the provider or null if copying is not possible.
|
||||||
*/
|
*/
|
||||||
public static ILanguageSettingsEditableProvider getProviderCopy(ILanguageSettingsEditableProvider provider, boolean deep) {
|
public static ILanguageSettingsEditableProvider getProviderCopy(ILanguageSettingsEditableProvider provider, boolean deep) {
|
||||||
try {
|
try {
|
||||||
|
@ -320,12 +327,15 @@ public class LanguageSettingsExtensionManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Language Settings Provider defined via
|
* Get language settings provider defined via extension point
|
||||||
* {@code org.eclipse.cdt.core.LanguageSettingsProvider} extension point.
|
* {@code org.eclipse.cdt.core.LanguageSettingsProvider}.
|
||||||
|
* A new copy of the extension provider is returned.
|
||||||
*
|
*
|
||||||
* @param id - ID of provider to find.
|
* @param id - ID of the extension provider.
|
||||||
* @param deep TODO
|
* @param deep - {@code true} to request deep copy including copying settings entries
|
||||||
* @return the clone of the provider or {@code null} TODO if provider is not defined.
|
* or {@code false} to return shallow copy with no settings entries.
|
||||||
|
* @return the copy of the extension provider if possible (i.e. for {@link ILanguageSettingsEditableProvider})
|
||||||
|
* or {@code null} if provider is not copyable.
|
||||||
*/
|
*/
|
||||||
public static ILanguageSettingsProvider getExtensionProviderCopy(String id, boolean deep) {
|
public static ILanguageSettingsProvider getExtensionProviderCopy(String id, boolean deep) {
|
||||||
ILanguageSettingsProvider provider = fExtensionProviders.get(id);
|
ILanguageSettingsProvider provider = fExtensionProviders.get(id);
|
||||||
|
@ -337,10 +347,13 @@ public class LanguageSettingsExtensionManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* Test if the provider is equal to the one defined via extension point
|
||||||
* @param provider
|
* {@code org.eclipse.cdt.core.LanguageSettingsProvider}.
|
||||||
* @param deep
|
*
|
||||||
* @return
|
* @param provider - the provider to test.
|
||||||
|
* @param deep - {@code true} to check for deep equality testing also settings entries
|
||||||
|
* or {@code false} to test shallow copy with no settings entries.
|
||||||
|
* @return - {@code true} if the provider matches the extension or {@code false} otherwise.
|
||||||
*/
|
*/
|
||||||
public static boolean isEqualsExtensionProvider(ILanguageSettingsProvider provider, boolean deep) {
|
public static boolean isEqualsExtensionProvider(ILanguageSettingsProvider provider, boolean deep) {
|
||||||
String id = provider.getId();
|
String id = provider.getId();
|
||||||
|
|
|
@ -88,6 +88,9 @@ public class LanguageSettingsProvidersSerializer {
|
||||||
|
|
||||||
private static ListenerList fLanguageSettingsChangeListeners = new ListenerList(ListenerList.IDENTITY);
|
private static ListenerList fLanguageSettingsChangeListeners = new ListenerList(ListenerList.IDENTITY);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* language settings provider listener-cfgDescription association
|
||||||
|
*/
|
||||||
private static class ListenerAssociation {
|
private static class ListenerAssociation {
|
||||||
private ICListenerAgent listener;
|
private ICListenerAgent listener;
|
||||||
private ICConfigurationDescription cfgDescription;
|
private ICConfigurationDescription cfgDescription;
|
||||||
|
@ -98,6 +101,11 @@ public class LanguageSettingsProvidersSerializer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wrapper for workspace providers to ensure level of indirection. That way workspace providers
|
||||||
|
* can be changed/replaced without notifying/changing the configurations which keep the providers
|
||||||
|
* in their lists.
|
||||||
|
*/
|
||||||
private static class LanguageSettingsWorkspaceProvider implements ILanguageSettingsProvider, ICListenerAgent {
|
private static class LanguageSettingsWorkspaceProvider implements ILanguageSettingsProvider, ICListenerAgent {
|
||||||
private String providerId;
|
private String providerId;
|
||||||
private int projectCount = 0;
|
private int projectCount = 0;
|
||||||
|
@ -141,6 +149,7 @@ public class LanguageSettingsProvidersSerializer {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method toString() for debugging purposes.
|
* Method toString() for debugging purposes.
|
||||||
*/
|
*/
|
||||||
|
@ -171,7 +180,7 @@ public class LanguageSettingsProvidersSerializer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registerListener(ICConfigurationDescription cfgDescription) {
|
public void registerListener(ICConfigurationDescription cfgDescription) {
|
||||||
// keep in mind that rawProvider can change
|
// keep in mind that rawProvider can change externally
|
||||||
ILanguageSettingsProvider rawProvider = getRawProvider();
|
ILanguageSettingsProvider rawProvider = getRawProvider();
|
||||||
if (rawProvider instanceof ICListenerAgent) {
|
if (rawProvider instanceof ICListenerAgent) {
|
||||||
((ICListenerAgent) rawProvider).registerListener(null);
|
((ICListenerAgent) rawProvider).registerListener(null);
|
||||||
|
@ -180,7 +189,7 @@ public class LanguageSettingsProvidersSerializer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void unregisterListener() {
|
public void unregisterListener() {
|
||||||
// keep in mind that rawProvider can change
|
// keep in mind that rawProvider can change externally
|
||||||
ILanguageSettingsProvider rawProvider = getRawProvider();
|
ILanguageSettingsProvider rawProvider = getRawProvider();
|
||||||
if (rawProvider instanceof ICListenerAgent) {
|
if (rawProvider instanceof ICListenerAgent) {
|
||||||
((ICListenerAgent) rawProvider).unregisterListener();
|
((ICListenerAgent) rawProvider).unregisterListener();
|
||||||
|
@ -190,7 +199,6 @@ public class LanguageSettingsProvidersSerializer {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Language Settings Change Event implementation.
|
* Language Settings Change Event implementation.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
private static class LanguageSettingsChangeEvent implements ILanguageSettingsChangeEvent {
|
private static class LanguageSettingsChangeEvent implements ILanguageSettingsChangeEvent {
|
||||||
private String projectName = null;
|
private String projectName = null;
|
||||||
|
@ -287,7 +295,7 @@ public class LanguageSettingsProvidersSerializer {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set and store in workspace area user defined providers.
|
* Set and store user defined providers in workspace area.
|
||||||
*
|
*
|
||||||
* @param providers - array of user defined providers
|
* @param providers - array of user defined providers
|
||||||
* @throws CoreException in case of problems
|
* @throws CoreException in case of problems
|
||||||
|
@ -424,6 +432,7 @@ projects:
|
||||||
Element elementExtension = XmlUtil.appendElement(rootElement, ELEM_EXTENSION, new String[] {ATTR_POINT, LanguageSettingsExtensionManager.PROVIDER_EXTENSION_FULL_ID});
|
Element elementExtension = XmlUtil.appendElement(rootElement, ELEM_EXTENSION, new String[] {ATTR_POINT, LanguageSettingsExtensionManager.PROVIDER_EXTENSION_FULL_ID});
|
||||||
|
|
||||||
for (LanguageSettingsSerializableProvider provider : serializableWorkspaceProviders) {
|
for (LanguageSettingsSerializableProvider provider : serializableWorkspaceProviders) {
|
||||||
|
// TODO don't serialize if equals to extension provider
|
||||||
provider.serialize(elementExtension);
|
provider.serialize(elementExtension);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -448,14 +457,17 @@ projects:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load language settings for workspace.
|
||||||
|
*/
|
||||||
public static void loadLanguageSettingsWorkspace() throws CoreException {
|
public static void loadLanguageSettingsWorkspace() throws CoreException {
|
||||||
List <ILanguageSettingsProvider> providers = null;
|
List <ILanguageSettingsProvider> providers = null;
|
||||||
|
|
||||||
URI uriStoreWsp = getStoreInWorkspaceArea(STORAGE_WORKSPACE_LANGUAGE_SETTINGS);
|
URI uriStoreWsp = getStoreInWorkspaceArea(STORAGE_WORKSPACE_LANGUAGE_SETTINGS);
|
||||||
|
|
||||||
Document doc = null;
|
Document doc = null;
|
||||||
serializingLock.acquire();
|
|
||||||
try {
|
try {
|
||||||
|
serializingLock.acquire();
|
||||||
doc = XmlUtil.loadXml(uriStoreWsp);
|
doc = XmlUtil.loadXml(uriStoreWsp);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
CCorePlugin.log("Can't load preferences from file "+uriStoreWsp, e); //$NON-NLS-1$
|
CCorePlugin.log("Can't load preferences from file "+uriStoreWsp, e); //$NON-NLS-1$
|
||||||
|
@ -463,12 +475,12 @@ projects:
|
||||||
serializingLock.release();
|
serializingLock.release();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (doc!=null) {
|
if (doc != null) {
|
||||||
Element rootElement = doc.getDocumentElement();
|
Element rootElement = doc.getDocumentElement();
|
||||||
NodeList providerNodes = rootElement.getElementsByTagName(LanguageSettingsSerializableProvider.ELEM_PROVIDER);
|
NodeList providerNodes = rootElement.getElementsByTagName(LanguageSettingsSerializableProvider.ELEM_PROVIDER);
|
||||||
|
|
||||||
List<String> userDefinedProvidersIds = new ArrayList<String>();
|
List<String> userDefinedProvidersIds = new ArrayList<String>();
|
||||||
for (int i=0;i<providerNodes.getLength();i++) {
|
for (int i = 0; i < providerNodes.getLength(); i++) {
|
||||||
Node providerNode = providerNodes.item(i);
|
Node providerNode = providerNodes.item(i);
|
||||||
String providerId = XmlUtil.determineAttributeValue(providerNode, LanguageSettingsExtensionManager.ATTR_ID);
|
String providerId = XmlUtil.determineAttributeValue(providerNode, LanguageSettingsExtensionManager.ATTR_ID);
|
||||||
if (userDefinedProvidersIds.contains(providerId)) {
|
if (userDefinedProvidersIds.contains(providerId)) {
|
||||||
|
@ -479,10 +491,10 @@ projects:
|
||||||
userDefinedProvidersIds.add(providerId);
|
userDefinedProvidersIds.add(providerId);
|
||||||
|
|
||||||
ILanguageSettingsProvider provider = loadProvider(providerNode);
|
ILanguageSettingsProvider provider = loadProvider(providerNode);
|
||||||
if (provider!=null) {
|
if (provider != null) {
|
||||||
if (providers==null)
|
if (providers == null) {
|
||||||
providers= new ArrayList<ILanguageSettingsProvider>();
|
providers = new ArrayList<ILanguageSettingsProvider>();
|
||||||
|
}
|
||||||
if (!LanguageSettingsManager.isEqualExtensionProvider(provider, true)) {
|
if (!LanguageSettingsManager.isEqualExtensionProvider(provider, true)) {
|
||||||
providers.add(provider);
|
providers.add(provider);
|
||||||
}
|
}
|
||||||
|
@ -615,6 +627,8 @@ projects:
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Load language settings to the project description from XML.
|
||||||
|
*
|
||||||
* @noreference This method is not intended to be referenced by clients.
|
* @noreference This method is not intended to be referenced by clients.
|
||||||
* It is public solely for benefit of JUnit testing.
|
* It is public solely for benefit of JUnit testing.
|
||||||
*/
|
*/
|
||||||
|
@ -748,6 +762,10 @@ projects:
|
||||||
return provider;
|
return provider;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load language settings from workspace and project storages for the given project description.
|
||||||
|
* @param prjDescription - project description to load language settings.
|
||||||
|
*/
|
||||||
public static void loadLanguageSettings(ICProjectDescription prjDescription) {
|
public static void loadLanguageSettings(ICProjectDescription prjDescription) {
|
||||||
IProject project = prjDescription.getProject();
|
IProject project = prjDescription.getProject();
|
||||||
IFile storePrj = project.getFile(SETTINGS_FOLDER_NAME+STORAGE_PROJECT_LANGUAGE_SETTINGS);
|
IFile storePrj = project.getFile(SETTINGS_FOLDER_NAME+STORAGE_PROJECT_LANGUAGE_SETTINGS);
|
||||||
|
@ -766,8 +784,8 @@ projects:
|
||||||
|
|
||||||
URI uriStoreWsp = getStoreInWorkspaceArea(project.getName()+'.'+STORAGE_WORKSPACE_LANGUAGE_SETTINGS);
|
URI uriStoreWsp = getStoreInWorkspaceArea(project.getName()+'.'+STORAGE_WORKSPACE_LANGUAGE_SETTINGS);
|
||||||
Document docWsp = null;
|
Document docWsp = null;
|
||||||
serializingLock.acquire();
|
|
||||||
try {
|
try {
|
||||||
|
serializingLock.acquire();
|
||||||
docWsp = XmlUtil.loadXml(uriStoreWsp);
|
docWsp = XmlUtil.loadXml(uriStoreWsp);
|
||||||
} finally {
|
} finally {
|
||||||
serializingLock.release();
|
serializingLock.release();
|
||||||
|
@ -821,6 +839,14 @@ projects:
|
||||||
return provider;
|
return provider;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method to get to real underlying provider collecting entries as opposed to wrapper
|
||||||
|
* which is normally used for workspace provider.
|
||||||
|
* @see LanguageSettingsProvidersSerializer#isWorkspaceProvider(ILanguageSettingsProvider)
|
||||||
|
*
|
||||||
|
* @param id - ID of the provider.
|
||||||
|
* @return raw underlying provider.
|
||||||
|
*/
|
||||||
public static ILanguageSettingsProvider getRawWorkspaceProvider(String id) {
|
public static ILanguageSettingsProvider getRawWorkspaceProvider(String id) {
|
||||||
return rawGlobalWorkspaceProviders.get(id);
|
return rawGlobalWorkspaceProviders.get(id);
|
||||||
}
|
}
|
||||||
|
@ -839,11 +865,13 @@ projects:
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the provider is defined on the workspace level.
|
* Checks if the provider is a workspace level provider.
|
||||||
|
* This method is intended to check providers retrieved from a configuration.
|
||||||
|
* Raw providers from {@link #getRawWorkspaceProvider(String)}
|
||||||
|
* are not considered as workspace providers.
|
||||||
*
|
*
|
||||||
* @param provider - provider to check.
|
* @param provider - provider to check.
|
||||||
* @return {@code true} if the given provider is workspace provider, {@code false} otherwise.
|
* @return {@code true} if the given provider is workspace provider, {@code false} otherwise.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public static boolean isWorkspaceProvider(ILanguageSettingsProvider provider) {
|
public static boolean isWorkspaceProvider(ILanguageSettingsProvider provider) {
|
||||||
return provider instanceof LanguageSettingsWorkspaceProvider;
|
return provider instanceof LanguageSettingsWorkspaceProvider;
|
||||||
|
@ -1066,6 +1094,7 @@ projects:
|
||||||
return LanguageSettingsStorage.getPooledList(provider.getSettingEntries(cfgDescription, rc, languageId));
|
return LanguageSettingsStorage.getPooledList(provider.getSettingEntries(cfgDescription, rc, languageId));
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
String cfgId = cfgDescription!=null ? cfgDescription.getId() : null;
|
String cfgId = cfgDescription!=null ? cfgDescription.getId() : null;
|
||||||
|
@SuppressWarnings("nls")
|
||||||
String msg = "Exception in provider "+provider.getId()+": getSettingEntries("+cfgId+", "+rc+", "+languageId+")";
|
String msg = "Exception in provider "+provider.getId()+": getSettingEntries("+cfgId+", "+rc+", "+languageId+")";
|
||||||
CCorePlugin.log(msg, e);
|
CCorePlugin.log(msg, e);
|
||||||
// return empty list to prevent getting potentially non-empty list from up the resource tree
|
// return empty list to prevent getting potentially non-empty list from up the resource tree
|
||||||
|
|
Loading…
Add table
Reference in a new issue