Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "CDT/Obsolete/ScannerDiscovery61/API"

m (API)
m (API)
Line 10: Line 10:
 
     public List<ICLanguageSettingEntry> getSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId);
 
     public List<ICLanguageSettingEntry> getSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId);
 
  }
 
  }
 +
 
* [https://github.com/angvoz/SD80/blob/sd80.Patch1.CDT/all/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/settings/providers/LanguageSettingsBaseProvider.java LanguageSettingsBaseProvider] is a an implementation of ILanguageSettingsProvider for the new extension point [https://github.com/angvoz/SD80/blob/sd80.Patch1.CDT/all/org.eclipse.cdt.core/schema/externalSettingsProvider.exsd org.eclipse.cdt.core.LanguageSettingsProvider]. This class is intended to be extended by concrete provider implementations like GCC Build Output Parser etc.
 
* [https://github.com/angvoz/SD80/blob/sd80.Patch1.CDT/all/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/settings/providers/LanguageSettingsBaseProvider.java LanguageSettingsBaseProvider] is a an implementation of ILanguageSettingsProvider for the new extension point [https://github.com/angvoz/SD80/blob/sd80.Patch1.CDT/all/org.eclipse.cdt.core/schema/externalSettingsProvider.exsd org.eclipse.cdt.core.LanguageSettingsProvider]. This class is intended to be extended by concrete provider implementations like GCC Build Output Parser etc.
 +
 +
* [https://github.com/angvoz/SD80/blob/sd80.Patch1.CDT/all/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/ICConfigurationDescription.java ICConfigurationDescription] interface got a getter and a setter to keep a list of providers:
 +
public interface ICConfigurationDescription extends ICSettingContainer, ICSettingObject, ICSettingsStorage{
 +
 +
/**
 +
* Sets the list of language settings providers. Language settings providers are
 +
* used to supply language settings {@link ICLanguageSettingEntry} such as include paths
 +
* or preprocessor macros.
 +
*
 +
* @param providers the list of providers to assign to the configuration description.
 +
*
 +
* @since 6.0
 +
*/
 +
public void setLanguageSettingProviders(List<ILanguageSettingsProvider> providers);
 +
 +
/**
 +
* Returns the list of language settings providers. Language settings providers are
 +
* used to supply language settings {@link ICLanguageSettingEntry} such as include paths
 +
* or preprocessor macros.
 +
*
 +
* @return the list of providers to assign to the configuration description. This
 +
* returns a copy of the internal list.
 +
*
 +
* @since 6.0
 +
*/
 +
public List<ILanguageSettingsProvider> getLanguageSettingProviders();
 +
}
 +
 
* [https://github.com/angvoz/SD80/blob/sd80.Patch1.CDT/all/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/settings/providers/LanguageSettingsManager.java LanguageSettingsManager] is a utility class. It provides following API methods, mostly for the usage by UI plugin:
 
* [https://github.com/angvoz/SD80/blob/sd80.Patch1.CDT/all/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/settings/providers/LanguageSettingsManager.java LanguageSettingsManager] is a utility class. It provides following API methods, mostly for the usage by UI plugin:
 
  public class LanguageSettingsManager {
 
  public class LanguageSettingsManager {

Revision as of 14:28, 26 December 2010

Scanner Discovery project

The project is hosted currently on GitHub. Please, refer there https://github.com/angvoz/SD80/ for the most recent API and code. Use branch [sd80] for bleeding edge code and [sd80.Patch#.CDT] to take a look at clean patches intended for CDT submission.

API

  • New interface ILanguageSettingsProvider. This base interface is the cornerstone of the new Scanner Discovery functionality. It defines following:
public interface ILanguageSettingsProvider {
   public String getId();
   public String getName();
   public List<ICLanguageSettingEntry> getSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId);
}
public interface ICConfigurationDescription extends ICSettingContainer, ICSettingObject, ICSettingsStorage{
	
	/**
	 * Sets the list of language settings providers. Language settings providers are
	 * used to supply language settings {@link ICLanguageSettingEntry} such as include paths
	 * or preprocessor macros.
	 * 
	 * @param providers the list of providers to assign to the configuration description.
	 * 
	 * @since 6.0
	 */
	public void setLanguageSettingProviders(List<ILanguageSettingsProvider> providers);
	
	/**
	 * Returns the list of language settings providers. Language settings providers are
	 * used to supply language settings {@link ICLanguageSettingEntry} such as include paths
	 * or preprocessor macros.
	 * 
	 * @return the list of providers to assign to the configuration description. This
	 * returns a copy of the internal list.
	 * 
	 * @since 6.0
	 */
	public List<ILanguageSettingsProvider> getLanguageSettingProviders();
}
public class LanguageSettingsManager {
...
	/**
	 * Returns the list of setting entries of the given provider
	 * for the given configuration description, resource and language.
	 * This method reaches to the parent folder of the resource recursively
	 * in case the resource does not define the entries for the given provider.
	 *
	 * @param provider - language settings provider.
	 * @param cfgDescription - configuration description.
	 * @param rc - resource such as file or folder.
	 * @param languageId - language id.
	 *
	 * @return the list of setting entries. Never returns {@code null}
	 *     although individual providers return {@code null} if no settings defined.
	 */
	public static List<ICLanguageSettingEntry> getSettingEntriesUpResourceTree(ILanguageSettingsProvider provider, ICConfigurationDescription cfgDescription, IResource rc, String languageId) {
		return LanguageSettingsExtensionManager.getSettingEntriesUpResourceTree(provider, cfgDescription, rc, languageId);
	}

	/**
	 * Returns the list of setting entries of a certain kind (such as include paths)
	 * for the given configuration description, resource and language. This is a
	 * combined list for all providers taking into account settings of parent folder
	 * if settings for the given resource are not defined.
	 *
	 * @param cfgDescription - configuration description.
	 * @param rc - resource such as file or folder.
	 * @param languageId - language id.
	 * @param kind - kind of language settings entries, such as
	 *     {@link ICSettingEntry#INCLUDE_PATH} etc. This is a binary flag
	 *     and it is possible to specify composite kind.
	 *     Use {@link ICSettingEntry#ALL} to get all kinds.
	 *
	 * @return the list of setting entries.
	 */
	public static List<ICLanguageSettingEntry> getSettingEntriesByKind(ICConfigurationDescription cfgDescription, IResource rc, String languageId, int kind) {
		return LanguageSettingsExtensionManager.getSettingEntriesByKind(cfgDescription, rc, languageId, kind);
	}

	/**
	 * @return a list of language settings providers defined on workspace level.
	 * That includes providers defined as
	 * extensions via {@code org.eclipse.cdt.core.LanguageSettingsProvider}
	 * extension point.
	 */
	public static List<ILanguageSettingsProvider> getWorkspaceProviders() {
		return LanguageSettingsExtensionManager.getExtensionProviders();
	}
...

}

Back to the top