# Plug-in Compiler Preferences

Syntactic errors in plugin.xml, fragment.xml and MANIFEST.MF are all flagged as errors by the plug-in manifest compiler. As for semantic problems in the plug-in manifests, the severity for each problem category can be set to Error, Warning or Ignore.

## Workspace vs. Project Settings

The plug-in compiler preferences are set at a workspace level on the Window > Preferences... > Plug-in Development > Compilers preference page and take effect on all plug-in projects in the workspace.

It is also possible to override the workspace-scope settings by having compiler settings at the plug-in project level. To do so, select Properties from the context menu of a plug-in project. In the Properties dialog, project-level manifest compiler settings can be customized on the Plug-in Development > Plug-in Manifest Compiler preference page.

## Semantic Problems

PDE validates plugin.xml, fragment.xml, MANIFEST.MF and build.properties files to flag a variety of potential problems that may prevent the plug-in from running properly.

Note that some problems such as a missing plug-in ID, plug-in version, or plug-in name render a plug-in invalid. Therefore, these problems are flagged with a non-negotiable error marker and are not available for configuration on this preference page.

The following is a brief explanation for some of the non-obvious potential problems that are flagged by PDE:

- Unresolved Dependencies:
  An unresolved dependency is a dependency on a plug-in (in the Require-Bundle MANIFEST.MF header) or on a package (in the Import-Package MANIFEST.MF header) where the plug-in or package in question does not exist.
- Incompatible Environment:
  A plug-in or fragment has an incompatible environment if it has an Eclipse-PlatformFilter MANIFEST.MF header whose value is not compatible with the current Target Environment settings as they appear on the Plug-in Development > Target Platform > Environment preference page.
- Unresolved Extension Points:
  An unresolved extension point is an extension point that does not exist or whose contributing plug-in is unchecked on the Plug-in Development > Target Platform preference page. Extensions contributing to such an extension point are flagged.