org.eclipse.wst.jsdt.core

## Class JavaScriptCore

- java.lang.Object
- - Plugin
  - - org.eclipse.wst.jsdt.core.JavaScriptCore

    public final class JavaScriptCore
    extends Plugin

The plug-in runtime class for the JavaScript model plug-in containing the core (UI-free) support for JavaScript projects.

Like all plug-in runtime classes (subclasses of `Plugin`), this class is automatically instantiated by the platform when the plug-in gets activated. Clients must not attempt to instantiate plug-in runtime classes directly.

The single instance of this class can be accessed from any plug-in declaring the JavaScript model plug-in as a prerequisite via `JavaScriptCore.getJavaCore()`. The JavaScript model plug-in will be activated automatically if not already active.

Provisional API: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.

### Field Summary

Fields
`static java.lang.String` `ABORT` Possible configurable option value.
`protected static java.lang.String` `ATT_HANDLE_ID` Name of the handle id attribute in a JavaScript marker.
`static java.lang.String` `BUILDER_ID` The identifier for the JavaScript validator (value `"org.eclipse.wst.jsdt.core.javascriptValidator"`).
`static java.lang.String` `CLEAN` Possible configurable option value.
`static java.lang.String` `CLEAR_ALL` Possible configurable option value.
`static java.lang.String` `CODEASSIST_ARGUMENT_PREFIXES` Possible configurable option ID.
`static java.lang.String` `CODEASSIST_ARGUMENT_SUFFIXES` Possible configurable option ID.
`static java.lang.String` `CODEASSIST_CAMEL_CASE_MATCH` Possible configurable option ID.
`static java.lang.String` `CODEASSIST_DEPRECATION_CHECK` Possible configurable option ID.
`static java.lang.String` `CODEASSIST_DISCOURAGED_REFERENCE_CHECK` Possible configurable option ID.
`static java.lang.String` `CODEASSIST_FIELD_PREFIXES` Possible configurable option ID.
`static java.lang.String` `CODEASSIST_FIELD_SUFFIXES` Possible configurable option ID.
`static java.lang.String` `CODEASSIST_FORBIDDEN_REFERENCE_CHECK` Possible configurable option ID.
`static java.lang.String` `CODEASSIST_IMPLICIT_QUALIFICATION` Possible configurable option ID.
`static java.lang.String` `CODEASSIST_LOCAL_PREFIXES` Possible configurable option ID.
`static java.lang.String` `CODEASSIST_LOCAL_SUFFIXES` Possible configurable option ID.
`static java.lang.String` `CODEASSIST_STATIC_FIELD_PREFIXES` Possible configurable option ID.
`static java.lang.String` `CODEASSIST_STATIC_FIELD_SUFFIXES` Possible configurable option ID.
`static java.lang.String` `CODEASSIST_SUGGEST_STATIC_IMPORTS` Possible configurable option ID.
`static java.lang.String` `CODEASSIST_VISIBILITY_CHECK` Possible configurable option ID.
`static java.lang.String` `COMPACT` Possible configurable option value.
`static java.lang.String` `COMPILER_CODEGEN_INLINE_JSR_BYTECODE` Possible configurable option ID.
`static java.lang.String` `COMPILER_CODEGEN_TARGET_PLATFORM` Possible configurable option ID.
`static java.lang.String` `COMPILER_CODEGEN_UNUSED_LOCAL` Possible configurable option ID.
`static java.lang.String` `COMPILER_COMPLIANCE` Possible configurable option ID.
`static java.lang.String` `COMPILER_DOC_COMMENT_SUPPORT` Possible configurable option ID.
`static java.lang.String` `COMPILER_LINE_NUMBER_ATTR` Possible configurable option ID.
`static java.lang.String` `COMPILER_LOCAL_VARIABLE_ATTR` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_ASSERT_IDENTIFIER` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_BOOLEAN_METHOD_THROWING_EXCEPTION` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_DEPRECATION` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_DEPRECATION_WHEN_OVERRIDING_DEPRECATED_METHOD` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_DISCOURAGED_REFERENCE` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_DUPLICATE_LOCAL_VARIABLES` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_EMPTY_STATEMENT` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_FALLTHROUGH_CASE` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_FATAL_OPTIONAL_ERROR` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_FIELD_HIDING` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_FINAL_PARAMETER_BOUND` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_FINALLY_BLOCK_NOT_COMPLETING` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_FORBIDDEN_REFERENCE` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_HIDDEN_CATCH_BLOCK` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_INDIRECT_STATIC_ACCESS` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_INVALID_IMPORT` Deprecated. - discontinued since turning off would violate language specs
`static java.lang.String` `COMPILER_PB_INVALID_JAVADOC` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_INVALID_JAVADOC_TAGS` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_INVALID_JAVADOC_TAGS__DEPRECATED_REF` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_INVALID_JAVADOC_TAGS__NOT_VISIBLE_REF` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_INVALID_JAVADOC_TAGS_VISIBILITY` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_LOCAL_VARIABLE_HIDING` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_MAX_PER_UNIT` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_MISSING_DEPRECATED_ANNOTATION` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_MISSING_JAVADOC_COMMENTS` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_MISSING_JAVADOC_COMMENTS_OVERRIDING` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_MISSING_JAVADOC_TAGS` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_MISSING_JAVADOC_TAGS_OVERRIDING` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_MISSING_JAVADOC_TAGS_VISIBILITY` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_MISSING_OVERRIDE_ANNOTATION` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_NO_EFFECT_ASSIGNMENT` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_NON_NLS_STRING_LITERAL` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_NULL_REFERENCE` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_OVERRIDING_METHOD_WITHOUT_SUPER_INVOCATION` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_PARAMETER_ASSIGNMENT` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_POSSIBLE_ACCIDENTAL_BOOLEAN_ASSIGNMENT` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_POTENTIAL_NULL_REFERENCE` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_RAW_TYPE_REFERENCE` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_REDUNDANT_NULL_CHECK` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_SPECIAL_PARAMETER_HIDING_FIELD` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_STATIC_ACCESS_RECEIVER` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_SUPPRESS_WARNINGS` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_TYPE_PARAMETER_HIDING` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNCHECKED_TYPE_OPERATION` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNDEFINED_FIELD` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNDOCUMENTED_EMPTY_BLOCK` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNHANDLED_WARNING_TOKEN` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNINITIALIZED_GLOBAL_VARIABLE` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNINITIALIZED_LOCAL_VARIABLE` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNNECESSARY_ELSE` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNNECESSARY_TYPE_CHECK` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNQUALIFIED_FIELD_ACCESS` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNREACHABLE_CODE` Deprecated. - discontinued since turning off would violate language specs
`static java.lang.String` `COMPILER_PB_UNSAFE_TYPE_OPERATION` Deprecated. - got renamed into `COMPILER_PB_UNCHECKED_TYPE_OPERATION`
`static java.lang.String` `COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_WHEN_OVERRIDING` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNUSED_IMPORT` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNUSED_LABEL` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNUSED_LOCAL` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNUSED_PARAMETER` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNUSED_PARAMETER_INCLUDE_DOC_COMMENT_REFERENCE` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_UNUSED_PRIVATE_MEMBER` Possible configurable option ID.
`static java.lang.String` `COMPILER_PB_VARARGS_ARGUMENT_NEED_CAST` Possible configurable option ID.
`static java.lang.String` `COMPILER_SEMANTIC_VALIDATION` Possible configurable option ID.
`static java.lang.String` `COMPILER_SOURCE` Possible configurable option ID.
`static java.lang.String` `COMPILER_SOURCE_FILE_ATTR` Possible configurable option ID.
`static java.lang.String` `COMPILER_SOURCE_TYPE` Possible configurable option ID.
`static java.lang.String` `COMPILER_STRICT_ON_KEYWORD_USAGE` Possible configurable option ID.
`static java.lang.String` `COMPILER_TASK_CASE_SENSITIVE` Possible configurable option ID.
`static java.lang.String` `COMPILER_TASK_PRIORITIES` Possible configurable option ID.
`static java.lang.String` `COMPILER_TASK_PRIORITY_HIGH` Possible configurable option value for COMPILER_TASK_PRIORITIES.
`static java.lang.String` `COMPILER_TASK_PRIORITY_LOW` Possible configurable option value for COMPILER_TASK_PRIORITIES.
`static java.lang.String` `COMPILER_TASK_PRIORITY_NORMAL` Possible configurable option value for COMPILER_TASK_PRIORITIES.
`static java.lang.String` `COMPILER_TASK_TAGS` Possible configurable option ID.
`static java.lang.String` `COMPUTE` Possible configurable option value.
`static java.lang.String` `CORE_CIRCULAR_CLASSPATH` Possible configurable option ID.
`static java.lang.String` `CORE_DEFAULT_CLASSPATH_EXCLUSION_PATTERNS` Possible configurable option ID.
`static java.lang.String` `CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS` Possible configurable option ID.
`static java.lang.String` `CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS` Possible configurable option ID.
`static java.lang.String` `CORE_ENCODING` Possible configurable option ID.
`static java.lang.String` `CORE_INCOMPATIBLE_JDK_LEVEL` Possible configurable option ID.
`static java.lang.String` `CORE_INCOMPLETE_CLASSPATH` Possible configurable option ID.
`static java.lang.String` `CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER` Possible configurable option ID.
`static java.lang.String` `CORE_JAVA_BUILD_DUPLICATE_RESOURCE` Possible configurable option ID.
`static java.lang.String` `CORE_JAVA_BUILD_INVALID_CLASSPATH` Possible configurable option ID.
`static java.lang.String` `CORE_JAVA_BUILD_ORDER` Possible configurable option ID.
`static java.lang.String` `CORE_JAVA_BUILD_RECREATE_MODIFIED_CLASS_FILES_IN_OUTPUT_FOLDER` Possible configurable option ID.
`static java.lang.String` `CORE_JAVA_BUILD_RESOURCE_COPY_FILTER` Possible configurable option ID.
`static java.lang.String` `DEFAULT` Possible configurable option value.
`static java.lang.String` `DEFAULT_EXCLUSION_PATTERNS` Possible configurable option value.
`static java.lang.String` `DEFAULT_TASK_PRIORITIES` Default task priority
`static java.lang.String` `DEFAULT_TASK_PRIORITY` Deprecated. Use `DEFAULT_TASK_PRIORITIES` instead
`static java.lang.String` `DEFAULT_TASK_TAG` Deprecated. Use `DEFAULT_TASK_TAGS` instead
`static java.lang.String` `DEFAULT_TASK_TAGS` Default task tag
`static java.lang.String` `DISABLED` Possible configurable option value.
`static java.lang.String` `DO_NOT_GENERATE` Possible configurable option value.
`static java.lang.String` `DO_NOT_INSERT` Possible configurable option value.
`static java.lang.String` `ENABLED` Possible configurable option value.
`static java.lang.String` `ERROR` Possible configurable option value.
`static java.lang.String` `GENERATE` Possible configurable option value.
`static java.lang.String` `IGNORE` Possible configurable option value.
`static java.lang.String` `INSERT` Possible configurable option value.
`static boolean` `IS_ECMASCRIPT4`
`static java.lang.String` `JAVA_SOURCE_CONTENT_TYPE` Value of the content-type for JavaScript source files.
`static java.lang.String` `LOOSE_VAR_DECL`
`static java.lang.String` `MODEL_ID` The identifier for the JavaScript model (value `"org.eclipse.wst.jsdt.core.jsmodel"`).
`static java.lang.String` `NATURE_ID` The identifier for the JavaScript nature (value `"org.eclipse.wst.jsdt.core.jsnature"`).
`static java.lang.String` `NEVER` Possible configurable option value.
`static java.lang.String` `NORMAL` Possible configurable option value.
`static java.lang.String` `OPTIMIZE_OUT` Possible configurable option value.
`static java.lang.String` `OPTIONAL_SEMICOLON`
`static java.lang.String` `PLUGIN_ID` The plug-in identifier of the JavaScript core support (value `"org.eclipse.wst.jsdt.core"`).
`static java.lang.String` `PRESERVE` Possible configurable option value.
`static java.lang.String` `PRESERVE_ONE` Possible configurable option value.
`static java.lang.String` `PRIVATE` Possible configurable option value.
`static java.lang.String` `PROTECTED` Possible configurable option value.
`static java.lang.String` `PUBLIC` Possible configurable option value.
`static java.lang.String` `READ_ONLY_SOURCE_PROPERTY`
`static java.lang.String` `SOURCE_TYPE_MODULE` Possible configurable option value.
`static java.lang.String` `SOURCE_TYPE_SCRIPT` Possible configurable option value.
`static java.lang.String` `SPACE` Possible configurable option value.
`static java.lang.String` `TAB` Possible configurable option value.
`static java.lang.String` `TIMEOUT_FOR_PARAMETER_NAME_FROM_ATTACHED_JAVADOC` Possible configurable option ID.
`static java.lang.String` `UNRESOLVED_FIELD_REFERENCE`
`static java.lang.String` `UNRESOLVED_METHOD_REFERENCE`
`static java.lang.String` `UNRESOLVED_TYPE_REFERENCE`
`static java.lang.String` `USER_LIBRARY_CONTAINER_ID` Name of the User Library Container id.
`static java.lang.String` `VERSION_0_0` Possible configurable option value.
`static java.lang.String` `VERSION_1_1` Possible configurable option value.
`static java.lang.String` `VERSION_1_2` Possible configurable option value.
`static java.lang.String` `VERSION_1_3` Possible configurable option value.
`static java.lang.String` `VERSION_1_4` Possible configurable option value.
`static java.lang.String` `VERSION_1_5` Possible configurable option value.
`static java.lang.String` `VERSION_1_6` Possible configurable option value.
`static java.lang.String` `VERSION_1_7` Possible configurable option value.
`static java.lang.String` `WARNING` Possible configurable option value.

### Constructor Summary

Constructors
Constructor and Description
`JavaScriptCore()` Creates the JavaScript core plug-in.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
`static void` `addElementChangedListener(IElementChangedListener listener)` Adds the given listener for changes to JavaScript elements.
`static void` `addElementChangedListener(IElementChangedListener listener, int eventMask)` Adds the given listener for changes to JavaScript elements.
`static void` `addJavaScriptElementMarkerAttributes(java.util.Map attributes, IJavaScriptElement element)` Configures the given marker attribute map for the given JavaScript element.
`static void` `addPreProcessingResourceChangedListener(IResourceChangeListener listener, int eventMask)` Adds the given listener for resource change events of the given types to the JavaScript core.
`void` `configureJavaScriptElementMarker(IMarker marker, IJavaScriptElement element)` Configures the given marker for the given JavaScript element.
`static IJavaScriptElement` `create(IFile file)` Returns the JavaScript element corresponding to the given file, or `null` if unable to associate the given file with a JavaScript element.
`static IJavaScriptElement` `create(IFolder folder)` Returns the source folder (package fragment or package fragment root) corresponding to the given folder, or `null` if unable to associate the given folder with a JavaScript element.
`static IJavaScriptProject` `create(IProject project)` Returns the JavaScript project corresponding to the given project.
`static IJavaScriptElement` `create(IResource resource)` Returns the JavaScript element corresponding to the given resource, or `null` if unable to associate the given resource with a JavaScript element.
`static IJavaScriptElement` `create(IResource resource, IJavaScriptProject project)` Returns the JavaScript element corresponding to the given file, its project being the given project.
`static IJavaScriptModel` `create(IWorkspaceRoot root)` Returns the JavaScript model.
`static IJavaScriptElement` `create(java.lang.String handleIdentifier)` Returns the JavaScript model element corresponding to the given handle identifier generated by `IJavaScriptElement.getHandleIdentifier()`, or `null` if unable to create the associated element.
`static IJavaScriptElement` `create(java.lang.String handleIdentifier, WorkingCopyOwner owner)` Returns the JavaScript model element corresponding to the given handle identifier generated by `IJavaScriptElement.getHandleIdentifier()`, or `null` if unable to create the associated element.
`static IClassFile` `createClassFileFrom(IFile file)`
`static IJavaScriptUnit` `createCompilationUnitFrom(IFile file)` Creates and returns a javaScript unit element for the given source file (i.e. a file with one of the `JavaScript-like extensions`).
`static IPackageFragmentRoot` `createJarPackageFragmentRootFrom(IFile file)`
`IPath[]` `getDefaultClasspathExclusionPatterns()` Returns default inclusion patterns return IPath[] array of IPath elements to exclude
`static java.util.Hashtable` `getDefaultOptions()` Returns a table of all known configurable options with their default values.
`static java.lang.String` `getEncoding()` Returns the workspace root default charset encoding.
`static IResource[]` `getGeneratedResources(IRegion region, boolean includesNonJavaResources)` Returns an array that contains the resources generated by the JavaScript builder when building the javaScript units contained in the given region.
`static IPath` `getIncludepathVariable(java.lang.String variableName)` Returns the path held in the given includepath variable.
`static java.lang.String` `getIncludepathVariableDeprecationMessage(java.lang.String variableName)` Returns deprecation message of a given includepath variable.
`static java.lang.String[]` `getIncludepathVariableNames()` Returns the names of all known includepath variables.
`static JavaScriptCore` `getJavaScriptCore()` Returns the single instance of the JavaScript core plug-in runtime class.
`static java.lang.String[]` `getJavaScriptLikeExtensions()` Returns the list of known JavaScript-like extensions.
`static IJsGlobalScopeContainer` `getJsGlobalScopeContainer(IPath containerPath, IJavaScriptProject project)` Answers the project specific value for a given includepath container.
`static JsGlobalScopeContainerInitializer` `getJsGlobalScopeContainerInitializer(java.lang.String containerID)` Helper method finding the includepath container initializer registered for a given includepath container ID or `null` if none was found while iterating over the contributions to extension point to the extension point "org.eclipse.wst.jsdt.core.JsGlobalScopeContainerInitializer".
`static JsGlobalScopeVariableInitializer` `getJsGlobalScopeVariableInitializer(java.lang.String variable)` Helper method finding the includepath variable initializer registered for a given includepath variable name or `null` if none was found while iterating over the contributions to extension point to the extension point "org.eclipse.wst.jsdt.core.JsGlobalScopeVariableInitializer".
`static java.lang.String` `getOption(java.lang.String optionName)` Helper method for returning one option value only.
`static java.util.Hashtable` `getOptions()` Returns the table of the current options.
`static Plugin` `getPlugin()` Returns the single instance of the JavaScript core plug-in runtime class.
`static IIncludePathEntry` `getResolvedIncludepathEntry(IIncludePathEntry entry)` This is a helper method, which returns the resolved includepath entry denoted by a given entry (if it is a variable entry).
`static IPath` `getResolvedVariablePath(IPath variablePath)` Resolve a variable path (helper method).
`static java.lang.String` `getSystemPath()`
`static java.lang.String[]` `getUserLibraryNames()` Returns the names of all defined user libraries.
`static IJavaScriptUnit[]` `getWorkingCopies(WorkingCopyOwner owner)` Returns the working copies that have the given owner.
`static void` `initializeAfterLoad(IProgressMonitor monitor)` Initializes JavaScriptCore internal structures to allow subsequent operations (such as the ones that need a resolved classpath) to run full speed.
`static boolean` `isIncludepathVariableReadOnly(java.lang.String variableName)` Returns whether a given includepath variable is read-only or not.
`static boolean` `isJavaScriptLikeFileName(java.lang.String fileName)` Returns whether the given file name's extension is a JavaScript-like extension.
`static boolean` `isReadOnly(IResource resource)`
`static boolean` `isReferencedBy(IJavaScriptElement element, IMarker marker)` Returns whether the given marker references the given JavaScript element.
`static boolean` `isReferencedBy(IJavaScriptElement element, IMarkerDelta markerDelta)` Returns whether the given marker delta references the given JavaScript element.
`static IAccessRule` `newAccessRule(IPath filePattern, int kind)` Creates and returns a new access rule with the given file pattern and kind.
`static IIncludePathEntry` `newContainerEntry(IPath containerPath)` Creates and returns a new includepath entry of kind `CPE_CONTAINER` for the given path.
`static IIncludePathEntry` `newContainerEntry(IPath containerPath, boolean isExported)` Creates and returns a new includepath entry of kind `CPE_CONTAINER` for the given path.
`static IIncludePathEntry` `newContainerEntry(IPath containerPath, IAccessRule[] accessRules, IIncludePathAttribute[] extraAttributes, boolean isExported)` Creates and returns a new includepath entry of kind `CPE_CONTAINER` for the given path.
`static IIncludePathAttribute` `newIncludepathAttribute(java.lang.String name, java.lang.String value)` Creates and returns a new includepath attribute with the given name and the given value.
`static IIncludePathEntry` `newLibraryEntry(IPath path, IPath sourceAttachmentPath, IPath sourceAttachmentRootPath)` Creates and returns a new non-exported includepath entry of kind `CPE_LIBRARY` for the JAR or folder identified by the given absolute path.
`static IIncludePathEntry` `newLibraryEntry(IPath path, IPath sourceAttachmentPath, IPath sourceAttachmentRootPath, boolean isExported)` Creates and returns a new includepath entry of kind `CPE_LIBRARY` for the JAR or folder identified by the given absolute path.
`static IIncludePathEntry` `newLibraryEntry(IPath path, IPath sourceAttachmentPath, IPath sourceAttachmentRootPath, IAccessRule[] accessRules, IIncludePathAttribute[] extraAttributes, boolean isExported)` Creates and returns a new includepath entry of kind `CPE_LIBRARY` for the JAR or folder identified by the given absolute path.
`static IIncludePathEntry` `newLibraryEntry(IPath path, IPath sourceAttachmentPath, IPath sourceAttachmentRootPath, IAccessRule[] accessRules, IIncludePathAttribute[] extraAttributes, IPath[] exclusionPatterns, boolean isExported)` Creates and returns a new includepath entry of kind `CPE_LIBRARY` for the JAR or folder identified by the given absolute path.
`static IIncludePathEntry` `newProjectEntry(IPath path)` Creates and returns a new non-exported includepath entry of kind `CPE_PROJECT` for the project identified by the given absolute path.
`static IIncludePathEntry` `newProjectEntry(IPath path, boolean isExported)` Creates and returns a new includepath entry of kind `CPE_PROJECT` for the project identified by the given absolute path.
`static IIncludePathEntry` `newProjectEntry(IPath path, IAccessRule[] accessRules, boolean combineAccessRules, IIncludePathAttribute[] extraAttributes, boolean isExported)` Creates and returns a new includepath entry of kind `CPE_PROJECT` for the project identified by the given absolute path.
`static IRegion` `newRegion()` Returns a new empty region.
`static IIncludePathEntry` `newSourceEntry(IPath path)` Creates and returns a new includepath entry of kind `CPE_SOURCE` for all files in the project's source folder identified by the given absolute workspace-relative path.
`static IIncludePathEntry` `newSourceEntry(IPath path, IPath[] exclusionPatterns)` Creates and returns a new includepath entry of kind `CPE_SOURCE` for the project's source folder identified by the given absolute workspace-relative path but excluding all source files with paths matching any of the given patterns.

`static IIncludePathEntry`

`newSourceEntry(IPath path, IPath[] exclusionPatterns, IPath specificOutputLocation)`
Creates and returns a new includepath entry of kind `CPE_SOURCE` for the project's source folder identified by the given absolute workspace-relative path but excluding all source files with paths matching any of the given patterns, and associated with a specific output location (that is, ".class" files are not going to the project default output location).

`static IIncludePathEntry`

`newSourceEntry(IPath path, IPath[] inclusionPatterns, IPath[] exclusionPatterns, IPath specificOutputLocation)`
Creates and returns a new includepath entry of kind `CPE_SOURCE` for the project's source folder identified by the given absolute workspace-relative path but excluding all source files with paths matching any of the given patterns, and associated with a specific output location (that is, ".class" files are not going to the project default output location).

`static IIncludePathEntry`

`newSourceEntry(IPath path, IPath[] inclusionPatterns, IPath[] exclusionPatterns, IPath specificOutputLocation, IIncludePathAttribute[] extraAttributes)`
Creates and returns a new includepath entry of kind `CPE_SOURCE` for the project's source folder identified by the given absolute workspace-relative path using the given inclusion and exclusion patterns to determine which source files are included, and the given output path to control the output location of generated files.

`static ITypeHierarchy` `newTypeHierarchy(IRegion region, WorkingCopyOwner owner, IProgressMonitor monitor)` Creates and returns a type hierarchy for all types in the given region, considering subtypes within that region and considering types in the working copies with the given owner.
`static IIncludePathEntry` `newVariableEntry(IPath variablePath, IPath variableSourceAttachmentPath, IPath sourceAttachmentRootPath)` Creates and returns a new non-exported includepath entry of kind `CPE_VARIABLE` for the given path.
`static IIncludePathEntry` `newVariableEntry(IPath variablePath, IPath variableSourceAttachmentPath, IPath variableSourceAttachmentRootPath, boolean isExported)` Creates and returns a new includepath entry of kind `CPE_VARIABLE` for the given path.
`static IIncludePathEntry` `newVariableEntry(IPath variablePath, IPath variableSourceAttachmentPath, IPath variableSourceAttachmentRootPath, IAccessRule[] accessRules, IIncludePathAttribute[] extraAttributes, boolean isExported)` Creates and returns a new includepath entry of kind `CPE_VARIABLE` for the given path.
`static void` `removeElementChangedListener(IElementChangedListener listener)` Removes the given element changed listener.
`static void` `removeIncludepathVariable(java.lang.String variableName, IProgressMonitor monitor)` Removed the given includepath variable.
`static java.lang.String` `removeJavaScriptLikeExtension(java.lang.String fileName)` Removes the file extension from the given file name, if it has a JavaScript-like file extension.
`static void` `removePreProcessingResourceChangedListener(IResourceChangeListener listener)` Removes the given pre-processing resource changed listener.
`static void` `run(IWorkspaceRunnable action, IProgressMonitor monitor)` Runs the given action as an atomic JavaScript model operation.
`static void` `run(IWorkspaceRunnable action, ISchedulingRule rule, IProgressMonitor monitor)` Runs the given action as an atomic JavaScript model operation.
`static void` `setComplianceOptions(java.lang.String compliance, java.util.Map options)` Sets the default's validator options inside the given options map according to the given compliance.
`static void` `setIncludepathVariable(java.lang.String variableName, IPath path)` Deprecated. Use `setIncludepathVariable(String, IPath, IProgressMonitor)` instead
`static void` `setIncludepathVariable(java.lang.String variableName, IPath path, IProgressMonitor monitor)` Sets the value of the given includepath variable.
`static void` `setIncludepathVariables(java.lang.String[] variableNames, IPath[] paths, IProgressMonitor monitor)` Sets the values of all the given includepath variables at once.
`static void` `setJsGlobalScopeContainer(IPath containerPath, IJavaScriptProject[] affectedProjects, IJsGlobalScopeContainer[] respectiveContainers, IProgressMonitor monitor)` Bind a container reference path to some actual containers (`IJsGlobalScopeContainer`).
`static void` `setOptions(java.util.Hashtable newOptions)` Sets the current table of options.
`void` `start(BundleContext context)`
`void` `stop(BundleContext context)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### IS_ECMASCRIPT4

    public static final boolean IS_ECMASCRIPT4

See Also:
  Constant Field Values

#### PLUGIN_ID

    public static final java.lang.String PLUGIN_ID

The plug-in identifier of the JavaScript core support (value `"org.eclipse.wst.jsdt.core"`).

See Also:
  Constant Field Values

#### BUILDER_ID

    public static final java.lang.String BUILDER_ID

The identifier for the JavaScript validator (value `"org.eclipse.wst.jsdt.core.javascriptValidator"`).

See Also:
  Constant Field Values

#### MODEL_ID

    public static final java.lang.String MODEL_ID

The identifier for the JavaScript model (value `"org.eclipse.wst.jsdt.core.jsmodel"`).

See Also:
  Constant Field Values

#### NATURE_ID

    public static final java.lang.String NATURE_ID

The identifier for the JavaScript nature (value `"org.eclipse.wst.jsdt.core.jsnature"`). The presence of this nature on a project indicates that it is JavaScript-capable.

See Also:
  `org.eclipse.core.resources.IProject#hasNature(java.lang.String)`, Constant Field Values

#### ATT_HANDLE_ID

    protected static final java.lang.String ATT_HANDLE_ID

Name of the handle id attribute in a JavaScript marker.

See Also:
  Constant Field Values

#### USER_LIBRARY_CONTAINER_ID

    public static final java.lang.String USER_LIBRARY_CONTAINER_ID

Name of the User Library Container id.

See Also:
  Constant Field Values

#### COMPILER_LOCAL_VARIABLE_ATTR

    public static final java.lang.String COMPILER_LOCAL_VARIABLE_ATTR

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_LINE_NUMBER_ATTR

    public static final java.lang.String COMPILER_LINE_NUMBER_ATTR

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_SOURCE_FILE_ATTR

    public static final java.lang.String COMPILER_SOURCE_FILE_ATTR

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_CODEGEN_UNUSED_LOCAL

    public static final java.lang.String COMPILER_CODEGEN_UNUSED_LOCAL

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_CODEGEN_TARGET_PLATFORM

    public static final java.lang.String COMPILER_CODEGEN_TARGET_PLATFORM

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_CODEGEN_INLINE_JSR_BYTECODE

    public static final java.lang.String COMPILER_CODEGEN_INLINE_JSR_BYTECODE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_DOC_COMMENT_SUPPORT

    public static final java.lang.String COMPILER_DOC_COMMENT_SUPPORT

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNREACHABLE_CODE

    public static final java.lang.String COMPILER_PB_UNREACHABLE_CODE

Deprecated. - discontinued since turning off would violate language specs
Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_INVALID_IMPORT

    public static final java.lang.String COMPILER_PB_INVALID_IMPORT

Deprecated. - discontinued since turning off would violate language specs
Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNDEFINED_FIELD

    public static final java.lang.String COMPILER_PB_UNDEFINED_FIELD

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME

    public static final java.lang.String COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_DEPRECATION

    public static final java.lang.String COMPILER_PB_DEPRECATION

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE

    public static final java.lang.String COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_DEPRECATION_WHEN_OVERRIDING_DEPRECATED_METHOD

    public static final java.lang.String COMPILER_PB_DEPRECATION_WHEN_OVERRIDING_DEPRECATED_METHOD

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_HIDDEN_CATCH_BLOCK

    public static final java.lang.String COMPILER_PB_HIDDEN_CATCH_BLOCK

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNUSED_LOCAL

    public static final java.lang.String COMPILER_PB_UNUSED_LOCAL

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNUSED_PARAMETER

    public static final java.lang.String COMPILER_PB_UNUSED_PARAMETER

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT

    public static final java.lang.String COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE

    public static final java.lang.String COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNUSED_PARAMETER_INCLUDE_DOC_COMMENT_REFERENCE

    public static final java.lang.String COMPILER_PB_UNUSED_PARAMETER_INCLUDE_DOC_COMMENT_REFERENCE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNUSED_IMPORT

    public static final java.lang.String COMPILER_PB_UNUSED_IMPORT

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_NON_NLS_STRING_LITERAL

    public static final java.lang.String COMPILER_PB_NON_NLS_STRING_LITERAL

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_ASSERT_IDENTIFIER

    public static final java.lang.String COMPILER_PB_ASSERT_IDENTIFIER

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_STATIC_ACCESS_RECEIVER

    public static final java.lang.String COMPILER_PB_STATIC_ACCESS_RECEIVER

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_INDIRECT_STATIC_ACCESS

    public static final java.lang.String COMPILER_PB_INDIRECT_STATIC_ACCESS

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_NO_EFFECT_ASSIGNMENT

    public static final java.lang.String COMPILER_PB_NO_EFFECT_ASSIGNMENT

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNUSED_PRIVATE_MEMBER

    public static final java.lang.String COMPILER_PB_UNUSED_PRIVATE_MEMBER

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_LOCAL_VARIABLE_HIDING

    public static final java.lang.String COMPILER_PB_LOCAL_VARIABLE_HIDING

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_SPECIAL_PARAMETER_HIDING_FIELD

    public static final java.lang.String COMPILER_PB_SPECIAL_PARAMETER_HIDING_FIELD

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_FIELD_HIDING

    public static final java.lang.String COMPILER_PB_FIELD_HIDING

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_TYPE_PARAMETER_HIDING

    public static final java.lang.String COMPILER_PB_TYPE_PARAMETER_HIDING

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_POSSIBLE_ACCIDENTAL_BOOLEAN_ASSIGNMENT

    public static final java.lang.String COMPILER_PB_POSSIBLE_ACCIDENTAL_BOOLEAN_ASSIGNMENT

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_FALLTHROUGH_CASE

    public static final java.lang.String COMPILER_PB_FALLTHROUGH_CASE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_EMPTY_STATEMENT

    public static final java.lang.String COMPILER_PB_EMPTY_STATEMENT

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_BOOLEAN_METHOD_THROWING_EXCEPTION

    public static final java.lang.String COMPILER_PB_BOOLEAN_METHOD_THROWING_EXCEPTION

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNNECESSARY_TYPE_CHECK

    public static final java.lang.String COMPILER_PB_UNNECESSARY_TYPE_CHECK

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNNECESSARY_ELSE

    public static final java.lang.String COMPILER_PB_UNNECESSARY_ELSE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNDOCUMENTED_EMPTY_BLOCK

    public static final java.lang.String COMPILER_PB_UNDOCUMENTED_EMPTY_BLOCK

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_FINALLY_BLOCK_NOT_COMPLETING

    public static final java.lang.String COMPILER_PB_FINALLY_BLOCK_NOT_COMPLETING

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION

    public static final java.lang.String COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_WHEN_OVERRIDING

    public static final java.lang.String COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_WHEN_OVERRIDING

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNQUALIFIED_FIELD_ACCESS

    public static final java.lang.String COMPILER_PB_UNQUALIFIED_FIELD_ACCESS

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNSAFE_TYPE_OPERATION

    public static final java.lang.String COMPILER_PB_UNSAFE_TYPE_OPERATION

Deprecated. - got renamed into `COMPILER_PB_UNCHECKED_TYPE_OPERATION`
Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNCHECKED_TYPE_OPERATION

    public static final java.lang.String COMPILER_PB_UNCHECKED_TYPE_OPERATION

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_RAW_TYPE_REFERENCE

    public static final java.lang.String COMPILER_PB_RAW_TYPE_REFERENCE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_FINAL_PARAMETER_BOUND

    public static final java.lang.String COMPILER_PB_FINAL_PARAMETER_BOUND

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_VARARGS_ARGUMENT_NEED_CAST

    public static final java.lang.String COMPILER_PB_VARARGS_ARGUMENT_NEED_CAST

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_MISSING_OVERRIDE_ANNOTATION

    public static final java.lang.String COMPILER_PB_MISSING_OVERRIDE_ANNOTATION

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_MISSING_DEPRECATED_ANNOTATION

    public static final java.lang.String COMPILER_PB_MISSING_DEPRECATED_ANNOTATION

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNUSED_LABEL

    public static final java.lang.String COMPILER_PB_UNUSED_LABEL

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_INVALID_JAVADOC

    public static final java.lang.String COMPILER_PB_INVALID_JAVADOC

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_INVALID_JAVADOC_TAGS

    public static final java.lang.String COMPILER_PB_INVALID_JAVADOC_TAGS

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_INVALID_JAVADOC_TAGS__DEPRECATED_REF

    public static final java.lang.String COMPILER_PB_INVALID_JAVADOC_TAGS__DEPRECATED_REF

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_INVALID_JAVADOC_TAGS__NOT_VISIBLE_REF

    public static final java.lang.String COMPILER_PB_INVALID_JAVADOC_TAGS__NOT_VISIBLE_REF

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_INVALID_JAVADOC_TAGS_VISIBILITY

    public static final java.lang.String COMPILER_PB_INVALID_JAVADOC_TAGS_VISIBILITY

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_MISSING_JAVADOC_TAGS

    public static final java.lang.String COMPILER_PB_MISSING_JAVADOC_TAGS

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_MISSING_JAVADOC_TAGS_VISIBILITY

    public static final java.lang.String COMPILER_PB_MISSING_JAVADOC_TAGS_VISIBILITY

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_MISSING_JAVADOC_TAGS_OVERRIDING

    public static final java.lang.String COMPILER_PB_MISSING_JAVADOC_TAGS_OVERRIDING

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_MISSING_JAVADOC_COMMENTS

    public static final java.lang.String COMPILER_PB_MISSING_JAVADOC_COMMENTS

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY

    public static final java.lang.String COMPILER_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_MISSING_JAVADOC_COMMENTS_OVERRIDING

    public static final java.lang.String COMPILER_PB_MISSING_JAVADOC_COMMENTS_OVERRIDING

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_MAX_PER_UNIT

    public static final java.lang.String COMPILER_PB_MAX_PER_UNIT

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_FATAL_OPTIONAL_ERROR

    public static final java.lang.String COMPILER_PB_FATAL_OPTIONAL_ERROR

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_PARAMETER_ASSIGNMENT

    public static final java.lang.String COMPILER_PB_PARAMETER_ASSIGNMENT

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_SEMANTIC_VALIDATION

    public static final java.lang.String COMPILER_SEMANTIC_VALIDATION

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_STRICT_ON_KEYWORD_USAGE

    public static final java.lang.String COMPILER_STRICT_ON_KEYWORD_USAGE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_SOURCE

    public static final java.lang.String COMPILER_SOURCE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_COMPLIANCE

    public static final java.lang.String COMPILER_COMPLIANCE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_SOURCE_TYPE

    public static final java.lang.String COMPILER_SOURCE_TYPE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_TASK_PRIORITIES

    public static final java.lang.String COMPILER_TASK_PRIORITIES

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_TASK_PRIORITY_HIGH

    public static final java.lang.String COMPILER_TASK_PRIORITY_HIGH

Possible configurable option value for COMPILER_TASK_PRIORITIES.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_TASK_PRIORITY_LOW

    public static final java.lang.String COMPILER_TASK_PRIORITY_LOW

Possible configurable option value for COMPILER_TASK_PRIORITIES.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_TASK_PRIORITY_NORMAL

    public static final java.lang.String COMPILER_TASK_PRIORITY_NORMAL

Possible configurable option value for COMPILER_TASK_PRIORITIES.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_TASK_TAGS

    public static final java.lang.String COMPILER_TASK_TAGS

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_TASK_CASE_SENSITIVE

    public static final java.lang.String COMPILER_TASK_CASE_SENSITIVE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_FORBIDDEN_REFERENCE

    public static final java.lang.String COMPILER_PB_FORBIDDEN_REFERENCE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_DISCOURAGED_REFERENCE

    public static final java.lang.String COMPILER_PB_DISCOURAGED_REFERENCE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### UNRESOLVED_TYPE_REFERENCE

    public static final java.lang.String UNRESOLVED_TYPE_REFERENCE

See Also:
  Constant Field Values

#### UNRESOLVED_FIELD_REFERENCE

    public static final java.lang.String UNRESOLVED_FIELD_REFERENCE

See Also:
  Constant Field Values

#### UNRESOLVED_METHOD_REFERENCE

    public static final java.lang.String UNRESOLVED_METHOD_REFERENCE

See Also:
  Constant Field Values

#### LOOSE_VAR_DECL

    public static final java.lang.String LOOSE_VAR_DECL

See Also:
  Constant Field Values

#### OPTIONAL_SEMICOLON

    public static final java.lang.String OPTIONAL_SEMICOLON

See Also:
  Constant Field Values

#### COMPILER_PB_SUPPRESS_WARNINGS

    public static final java.lang.String COMPILER_PB_SUPPRESS_WARNINGS

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNHANDLED_WARNING_TOKEN

    public static final java.lang.String COMPILER_PB_UNHANDLED_WARNING_TOKEN

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_NULL_REFERENCE

    public static final java.lang.String COMPILER_PB_NULL_REFERENCE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_POTENTIAL_NULL_REFERENCE

    public static final java.lang.String COMPILER_PB_POTENTIAL_NULL_REFERENCE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_DUPLICATE_LOCAL_VARIABLES

    public static final java.lang.String COMPILER_PB_DUPLICATE_LOCAL_VARIABLES

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_REDUNDANT_NULL_CHECK

    public static final java.lang.String COMPILER_PB_REDUNDANT_NULL_CHECK

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNINITIALIZED_LOCAL_VARIABLE

    public static final java.lang.String COMPILER_PB_UNINITIALIZED_LOCAL_VARIABLE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_UNINITIALIZED_GLOBAL_VARIABLE

    public static final java.lang.String COMPILER_PB_UNINITIALIZED_GLOBAL_VARIABLE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPILER_PB_OVERRIDING_METHOD_WITHOUT_SUPER_INVOCATION

    public static final java.lang.String COMPILER_PB_OVERRIDING_METHOD_WITHOUT_SUPER_INVOCATION

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CORE_JAVA_BUILD_ORDER

    public static final java.lang.String CORE_JAVA_BUILD_ORDER

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CORE_JAVA_BUILD_RESOURCE_COPY_FILTER

    public static final java.lang.String CORE_JAVA_BUILD_RESOURCE_COPY_FILTER

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CORE_JAVA_BUILD_DUPLICATE_RESOURCE

    public static final java.lang.String CORE_JAVA_BUILD_DUPLICATE_RESOURCE

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER

    public static final java.lang.String CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CORE_JAVA_BUILD_RECREATE_MODIFIED_CLASS_FILES_IN_OUTPUT_FOLDER

    public static final java.lang.String CORE_JAVA_BUILD_RECREATE_MODIFIED_CLASS_FILES_IN_OUTPUT_FOLDER

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CORE_INCOMPLETE_CLASSPATH

    public static final java.lang.String CORE_INCOMPLETE_CLASSPATH

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CORE_CIRCULAR_CLASSPATH

    public static final java.lang.String CORE_CIRCULAR_CLASSPATH

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CORE_INCOMPATIBLE_JDK_LEVEL

    public static final java.lang.String CORE_INCOMPATIBLE_JDK_LEVEL

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CORE_JAVA_BUILD_INVALID_CLASSPATH

    public static final java.lang.String CORE_JAVA_BUILD_INVALID_CLASSPATH

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CORE_ENCODING

    public static final java.lang.String CORE_ENCODING

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CORE_DEFAULT_CLASSPATH_EXCLUSION_PATTERNS

    public static final java.lang.String CORE_DEFAULT_CLASSPATH_EXCLUSION_PATTERNS

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS

    public static final java.lang.String CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS

    public static final java.lang.String CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### DEFAULT_TASK_TAG

    public static final java.lang.String DEFAULT_TASK_TAG

Deprecated. Use `DEFAULT_TASK_TAGS` instead
Default task tag

See Also:
  Constant Field Values

#### DEFAULT_TASK_PRIORITY

    public static final java.lang.String DEFAULT_TASK_PRIORITY

Deprecated. Use `DEFAULT_TASK_PRIORITIES` instead
Default task priority

See Also:
  Constant Field Values

#### DEFAULT_TASK_TAGS

    public static final java.lang.String DEFAULT_TASK_TAGS

Default task tag

See Also:
  Constant Field Values

#### DEFAULT_TASK_PRIORITIES

    public static final java.lang.String DEFAULT_TASK_PRIORITIES

Default task priority

See Also:
  Constant Field Values

#### CODEASSIST_VISIBILITY_CHECK

    public static final java.lang.String CODEASSIST_VISIBILITY_CHECK

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CODEASSIST_DEPRECATION_CHECK

    public static final java.lang.String CODEASSIST_DEPRECATION_CHECK

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CODEASSIST_CAMEL_CASE_MATCH

    public static final java.lang.String CODEASSIST_CAMEL_CASE_MATCH

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CODEASSIST_IMPLICIT_QUALIFICATION

    public static final java.lang.String CODEASSIST_IMPLICIT_QUALIFICATION

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CODEASSIST_FIELD_PREFIXES

    public static final java.lang.String CODEASSIST_FIELD_PREFIXES

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CODEASSIST_STATIC_FIELD_PREFIXES

    public static final java.lang.String CODEASSIST_STATIC_FIELD_PREFIXES

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CODEASSIST_LOCAL_PREFIXES

    public static final java.lang.String CODEASSIST_LOCAL_PREFIXES

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CODEASSIST_ARGUMENT_PREFIXES

    public static final java.lang.String CODEASSIST_ARGUMENT_PREFIXES

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CODEASSIST_FIELD_SUFFIXES

    public static final java.lang.String CODEASSIST_FIELD_SUFFIXES

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CODEASSIST_STATIC_FIELD_SUFFIXES

    public static final java.lang.String CODEASSIST_STATIC_FIELD_SUFFIXES

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CODEASSIST_LOCAL_SUFFIXES

    public static final java.lang.String CODEASSIST_LOCAL_SUFFIXES

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CODEASSIST_ARGUMENT_SUFFIXES

    public static final java.lang.String CODEASSIST_ARGUMENT_SUFFIXES

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CODEASSIST_FORBIDDEN_REFERENCE_CHECK

    public static final java.lang.String CODEASSIST_FORBIDDEN_REFERENCE_CHECK

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CODEASSIST_DISCOURAGED_REFERENCE_CHECK

    public static final java.lang.String CODEASSIST_DISCOURAGED_REFERENCE_CHECK

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CODEASSIST_SUGGEST_STATIC_IMPORTS

    public static final java.lang.String CODEASSIST_SUGGEST_STATIC_IMPORTS

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### TIMEOUT_FOR_PARAMETER_NAME_FROM_ATTACHED_JAVADOC

    public static final java.lang.String TIMEOUT_FOR_PARAMETER_NAME_FROM_ATTACHED_JAVADOC

Possible configurable option ID.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### GENERATE

    public static final java.lang.String GENERATE

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### DO_NOT_GENERATE

    public static final java.lang.String DO_NOT_GENERATE

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### PRESERVE

    public static final java.lang.String PRESERVE

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### OPTIMIZE_OUT

    public static final java.lang.String OPTIMIZE_OUT

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### VERSION_0_0

    public static final java.lang.String VERSION_0_0

Possible configurable option value.

Since:
  1.3.401
See Also:
  `getDefaultOptions()`, Constant Field Values

#### VERSION_1_1

    public static final java.lang.String VERSION_1_1

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### VERSION_1_2

    public static final java.lang.String VERSION_1_2

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### VERSION_1_3

    public static final java.lang.String VERSION_1_3

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### VERSION_1_4

    public static final java.lang.String VERSION_1_4

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### VERSION_1_5

    public static final java.lang.String VERSION_1_5

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### VERSION_1_6

    public static final java.lang.String VERSION_1_6

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### VERSION_1_7

    public static final java.lang.String VERSION_1_7

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### ABORT

    public static final java.lang.String ABORT

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### ERROR

    public static final java.lang.String ERROR

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### WARNING

    public static final java.lang.String WARNING

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### SOURCE_TYPE_SCRIPT

    public static final java.lang.String SOURCE_TYPE_SCRIPT

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### SOURCE_TYPE_MODULE

    public static final java.lang.String SOURCE_TYPE_MODULE

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### IGNORE

    public static final java.lang.String IGNORE

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPUTE

    public static final java.lang.String COMPUTE

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### INSERT

    public static final java.lang.String INSERT

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### DO_NOT_INSERT

    public static final java.lang.String DO_NOT_INSERT

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### PRESERVE_ONE

    public static final java.lang.String PRESERVE_ONE

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CLEAR_ALL

    public static final java.lang.String CLEAR_ALL

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### NORMAL

    public static final java.lang.String NORMAL

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### COMPACT

    public static final java.lang.String COMPACT

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### TAB

    public static final java.lang.String TAB

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### SPACE

    public static final java.lang.String SPACE

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### ENABLED

    public static final java.lang.String ENABLED

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### DISABLED

    public static final java.lang.String DISABLED

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### CLEAN

    public static final java.lang.String CLEAN

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### PUBLIC

    public static final java.lang.String PUBLIC

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### PROTECTED

    public static final java.lang.String PROTECTED

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### DEFAULT

    public static final java.lang.String DEFAULT

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### PRIVATE

    public static final java.lang.String PRIVATE

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### NEVER

    public static final java.lang.String NEVER

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### DEFAULT_EXCLUSION_PATTERNS

    public static final java.lang.String DEFAULT_EXCLUSION_PATTERNS

Possible configurable option value.

See Also:
  `getDefaultOptions()`, Constant Field Values

#### JAVA_SOURCE_CONTENT_TYPE

    public static final java.lang.String JAVA_SOURCE_CONTENT_TYPE

Value of the content-type for JavaScript source files. Use this value to retrieve the JavaScript content type from the content type manager, and to add new JavaScript-like extensions to this content type.

See Also:
  `org.eclipse.core.runtime.content.IContentTypeManager#getContentType(String)`, `getJavaScriptLikeExtensions()`, Constant Field Values

#### READ_ONLY_SOURCE_PROPERTY

    public static final java.lang.String READ_ONLY_SOURCE_PROPERTY

See Also:
  Constant Field Values

### Constructor Detail

#### JavaScriptCore

    public JavaScriptCore()

Creates the JavaScript core plug-in.

The plug-in instance is created automatically by the Eclipse platform. Clients must not call.

### Method Detail

#### addElementChangedListener

    public static void addElementChangedListener(IElementChangedListener listener)

Adds the given listener for changes to JavaScript elements. Has no effect if an identical listener is already registered. This listener will only be notified during the POST_CHANGE resource change notification and any reconcile operation (POST_RECONCILE). For finer control of the notification, use `addElementChangedListener(IElementChangedListener,int)`, which allows to specify a different eventMask.

Parameters:
  `listener` - the listener
See Also:
  `ElementChangedEvent`

#### addElementChangedListener

    public static void addElementChangedListener(IElementChangedListener listener,
                                                 int eventMask)

Adds the given listener for changes to JavaScript elements. Has no effect if an identical listener is already registered. After completion of this method, the given listener will be registered for exactly the specified events. If they were previously registered for other events, they will be deregistered.

Once registered, a listener starts receiving notification of changes to javaScript elements in the model. The listener continues to receive notifications until it is replaced or removed.

Listeners can listen for several types of event as defined in `ElementChangeEvent`. Clients are free to register for any number of event types however if they register for more than one, it is their responsibility to ensure they correctly handle the case where the same javaScript element change shows up in multiple notifications. Clients are guaranteed to receive only the events for which they are registered.

Parameters:
  `listener` - the listener
  `eventMask` - the bit-wise OR of all event types of interest to the listener
See Also:
  `IElementChangedListener`, `ElementChangedEvent`, `removeElementChangedListener(IElementChangedListener)`

#### addJavaScriptElementMarkerAttributes

    public static void addJavaScriptElementMarkerAttributes(java.util.Map attributes,
                                                            IJavaScriptElement element)

Configures the given marker attribute map for the given JavaScript element. Used for markers, which denote a JavaScript element rather than a resource.

Parameters:
  `attributes` - the mutable marker attribute map (key type: `String`, value type: `String`)
  `element` - the JavaScript element for which the marker needs to be configured

#### addPreProcessingResourceChangedListener

    public static void addPreProcessingResourceChangedListener(IResourceChangeListener listener,
                                                               int eventMask)

Adds the given listener for resource change events of the given types to the JavaScript core. The listener is guaranteed to be notified of the resource change event before the JavaScript core starts processing the resource change event itself.

If an identical listener is already registered, the given event types are added to the event types of interest to the listener.

Supported event types are:

- `IResourceChangeEvent#PRE_BUILD`
- `IResourceChangeEvent#POST_BUILD`
- `IResourceChangeEvent#POST_CHANGE`
- `IResourceChangeEvent#PRE_DELETE`
- `IResourceChangeEvent#PRE_CLOSE`

This list may increase in the future.

Parameters:
  `listener` - the listener
  `eventMask` - the bit-wise OR of all event types of interest to the listener
See Also:
  `removePreProcessingResourceChangedListener(IResourceChangeListener)`, `IResourceChangeEvent`

#### configureJavaScriptElementMarker

    public void configureJavaScriptElementMarker(IMarker marker,
                                                 IJavaScriptElement element)
                                          throws CoreException

Configures the given marker for the given JavaScript element. Used for markers, which denote a JavaScript element rather than a resource.

Parameters:
  `marker` - the marker to be configured
  `element` - the JavaScript element for which the marker needs to be configured
Throws:
  `CoreException` - if the `IMarker.setAttribute` on the marker fails

#### create

    public static IJavaScriptElement create(java.lang.String handleIdentifier)

Returns the JavaScript model element corresponding to the given handle identifier generated by `IJavaScriptElement.getHandleIdentifier()`, or `null` if unable to create the associated element.

Parameters:
  `handleIdentifier` - the given handle identifier
Returns:
  the JavaScript element corresponding to the handle identifier

#### create

    public static IJavaScriptElement create(java.lang.String handleIdentifier,
                                            WorkingCopyOwner owner)

Returns the JavaScript model element corresponding to the given handle identifier generated by `IJavaScriptElement.getHandleIdentifier()`, or `null` if unable to create the associated element. If the returned JavaScript element is an `IJavaScriptUnit`, its owner is the given owner if such a working copy exists, otherwise the javaScript unit is a primary javaScript unit.

Parameters:
  `handleIdentifier` - the given handle identifier
  `owner` - the owner of the returned javaScript unit, ignored if the returned element is not a javaScript unit
Returns:
  the JavaScript element corresponding to the handle identifier

#### create

    public static IJavaScriptElement create(IFile file)

Returns the JavaScript element corresponding to the given file, or `null` if unable to associate the given file with a JavaScript element.

The file must be one of:

- a file with one of the `JavaScript-like extensions` - the element returned is the corresponding `IJavaScriptUnit`
- a `.class` file - the element returned is the corresponding `IClassFile`
- a `.jar` file - the element returned is the corresponding `IPackageFragmentRoot`

Creating a JavaScript element has the side effect of creating and opening all of the element's parents if they are not yet open.

Parameters:
  `file` - the given file
Returns:
  the JavaScript element corresponding to the given file, or `null` if unable to associate the given file with a JavaScript element

#### create

    public static IJavaScriptElement create(IFolder folder)

Returns the source folder (package fragment or package fragment root) corresponding to the given folder, or `null` if unable to associate the given folder with a JavaScript element.

Note that a package fragment root is returned rather than a default package.

Creating a JavaScript element has the side effect of creating and opening all of the element's parents if they are not yet open.

Parameters:
  `folder` - the given folder
Returns:
  the package fragment or package fragment root corresponding to the given folder, or `null` if unable to associate the given folder with a JavaScript element

#### create

    public static IJavaScriptProject create(IProject project)

Returns the JavaScript project corresponding to the given project.

Creating a JavaScript Project has the side effect of creating and opening all of the project's parents if they are not yet open.

Note that no check is done at this time on the existence or the javaScript nature of this project.

Parameters:
  `project` - the given project
Returns:
  the JavaScript project corresponding to the given project, null if the given project is null

#### create

    public static IJavaScriptElement create(IResource resource)

Returns the JavaScript element corresponding to the given resource, or `null` if unable to associate the given resource with a JavaScript element.

The resource must be one of:

- a project - the element returned is the corresponding `IJavaScriptProject`
- a file with one of the `JavaScript-like extensions` - the element returned is the corresponding `IJavaScriptUnit`
- a folder - the element returned is the corresponding `IPackageFragmentRoot` or `IPackageFragment`
- the workspace root resource - the element returned is the `IJavaScriptModel`

Creating a JavaScript element has the side effect of creating and opening all of the element's parents if they are not yet open.

Parameters:
  `resource` - the given resource
Returns:
  the JavaScript element corresponding to the given resource, or `null` if unable to associate the given resource with a JavaScript element

#### create

    public static IJavaScriptElement create(IResource resource,
                                            IJavaScriptProject project)

Returns the JavaScript element corresponding to the given file, its project being the given project. Returns `null` if unable to associate the given resource with a JavaScript element.

The resource must be one of:

- a project - the element returned is the corresponding `IJavaScriptProject`
- a file with one of the `JavaScript-like extensions` - the element returned is the corresponding `IJavaScriptUnit`
- a folder - the element returned is the corresponding `IPackageFragmentRoot` or `IPackageFragment`
- the workspace root resource - the element returned is the `IJavaScriptModel`

Creating a JavaScript element has the side effect of creating and opening all of the element's parents if they are not yet open.

Parameters:
  `resource` - the given resource
Returns:
  the JavaScript element corresponding to the given file, or `null` if unable to associate the given file with a JavaScript element

#### create

    public static IJavaScriptModel create(IWorkspaceRoot root)

Returns the JavaScript model.

Parameters:
  `root` - the given root
Returns:
  the JavaScript model, or `null` if the root is null

#### createClassFileFrom

    public static IClassFile createClassFileFrom(IFile file)

#### createCompilationUnitFrom

    public static IJavaScriptUnit createCompilationUnitFrom(IFile file)

Creates and returns a javaScript unit element for the given source file (i.e. a file with one of the `JavaScript-like extensions`). Returns `null` if unable to recognize the javaScript unit.

Parameters:
  `file` - the given source file
Returns:
  a javaScript unit element for the given source file, or `null` if unable to recognize the javaScript unit

#### createJarPackageFragmentRootFrom

    public static IPackageFragmentRoot createJarPackageFragmentRootFrom(IFile file)

#### getJsGlobalScopeContainer

    public static IJsGlobalScopeContainer getJsGlobalScopeContainer(IPath containerPath,
                                                                    IJavaScriptProject project)
                                                             throws JavaScriptModelException

Answers the project specific value for a given includepath container. In case this container path could not be resolved, then will answer `null`. Both the container path and the project context are supposed to be non-null.

The containerPath is a formed by a first ID segment followed with extra segments, which can be used as additional hints for resolution. If no container was ever recorded for this container path onto this project (using `setJsGlobalScopeContainer`, then a `JsGlobalScopeContainerInitializer` will be activated if any was registered for this container ID onto the extension point "org.eclipse.wst.jsdt.core.JsGlobalScopeContainerInitializer".

There is no assumption that the returned container must answer the exact same containerPath when requested `IJsGlobalScopeContainer#getPath`. Indeed, the containerPath is just an indication for resolving it to an actual container object.

Includepath container values are persisted locally to the workspace, but are not preserved from a session to another. It is thus highly recommended to register a `JsGlobalScopeContainerInitializer` for each referenced container (through the extension point "org.eclipse.wst.jsdt.core.JsGlobalScopeContainerInitializer").

Parameters:
  `containerPath` - the name of the container, which needs to be resolved
  `project` - a specific project in which the container is being resolved
Returns:
  the corresponding includepath container or `null` if unable to find one.
Throws:
  `JavaScriptModelException` - if an exception occurred while resolving the container, or if the resolved container contains illegal entries (contains CPE_CONTAINER entries or null entries).
See Also:
  `JsGlobalScopeContainerInitializer`, `IJsGlobalScopeContainer`, `setJsGlobalScopeContainer(IPath, IJavaScriptProject[], IJsGlobalScopeContainer[], IProgressMonitor)`

#### getJsGlobalScopeContainerInitializer

    public static JsGlobalScopeContainerInitializer getJsGlobalScopeContainerInitializer(java.lang.String containerID)

Helper method finding the includepath container initializer registered for a given includepath container ID or `null` if none was found while iterating over the contributions to extension point to the extension point "org.eclipse.wst.jsdt.core.JsGlobalScopeContainerInitializer".

A containerID is the first segment of any container path, used to identify the registered container initializer.

Parameters:
  `containerID` - - a containerID identifying a registered initializer
Returns:
  JsGlobalScopeContainerInitializer - the registered includepath container initializer or `null` if none was found.

#### getIncludepathVariable

    public static IPath getIncludepathVariable(java.lang.String variableName)

Returns the path held in the given includepath variable. Returns `null` if unable to bind.

Includepath variable values are persisted locally to the workspace, and are preserved from session to session.

Note that includepath variables can be contributed registered initializers for, using the extension point "org.eclipse.wst.jsdt.core.JsGlobalScopeVariableInitializer". If an initializer is registered for a variable, its persisted value will be ignored: its initializer will thus get the opportunity to rebind the variable differently on each session.

Parameters:
  `variableName` - the name of the includepath variable
Returns:
  the path, or `null` if none
See Also:
  `setIncludepathVariable(String, IPath)`

#### getIncludepathVariableDeprecationMessage

    public static java.lang.String getIncludepathVariableDeprecationMessage(java.lang.String variableName)

Returns deprecation message of a given includepath variable.

Parameters:
  `variableName` -
Returns:
  A string if the includepath variable is deprecated, `null` otherwise.

#### getJsGlobalScopeVariableInitializer

    public static JsGlobalScopeVariableInitializer getJsGlobalScopeVariableInitializer(java.lang.String variable)

Helper method finding the includepath variable initializer registered for a given includepath variable name or `null` if none was found while iterating over the contributions to extension point to the extension point "org.eclipse.wst.jsdt.core.JsGlobalScopeVariableInitializer".

Parameters:
  `variable` - the given variable
Returns:
  JsGlobalScopeVariableInitializer - the registered includepath variable initializer or `null` if none was found.

#### getIncludepathVariableNames

    public static java.lang.String[] getIncludepathVariableNames()

Returns the names of all known includepath variables.

Includepath variable values are persisted locally to the workspace, and are preserved from session to session.

Returns:
  the list of includepath variable names
See Also:
  `setIncludepathVariable(String, IPath)`

#### getDefaultOptions

    public static java.util.Hashtable getDefaultOptions()

Returns a table of all known configurable options with their default values. These options allow to configure the behaviour of the underlying components. The client may safely use the result as a template that they can modify and then pass to `setOptions`. Helper constants have been defined on JavaScriptCore for each of the option ID and their possible constant values. Note: more options might be added in further releases.

     RECOGNIZED OPTIONS:

     VALIDATOR / Setting Compliance Level
        Select the compliance level for the validator. In "1.3" mode, source and target settings
        should not go beyond "1.3" level.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.compliance"
         - possible values:   { "1.3", "1.4", "1.5", "1.6", "1.7" }
         - default:           "1.4"

     VALIDATOR / Setting Source Compatibility Mode
        Specify whether which source level compatibility is used. From 1.4 on, 'assert' is a keyword
        reserved for assertion support. Also note, than when toggling to 1.4 mode, the target VM
       level should be set to "1.4" and the compliance mode should be "1.4".
       Source level 1.5 is necessary to enable generics, autoboxing, covariance, annotations, enumerations
       enhanced for loop, static imports and varargs. Once toggled, the target VM level should be set to "1.5"
       and the compliance mode should be "1.5".
       Source level 1.6 is necessary to enable the computation of stack map tables. Once toggled, the target
       VM level should be set to "1.6" and the compliance mode should be "1.6".
       Once the source level 1.7 is toggled, the target VM level should be set to "1.7" and the compliance mode
       should be "1.7".
         - option id:         "org.eclipse.wst.jsdt.core.compiler.source"
         - possible values:   { "1.3", "1.4", "1.5", "1.6", "1.7" }
         - default:           "1.3"

     VALIDATOR / JSdoc Comment Support
        When this support is disabled, the validator will ignore all jsdoc problems options settings
        and will not report any jsdoc problem. It will also not find any reference in jsdoc comment and
        DOM AST JSdoc node will be only a flat text instead of having structured tag elements.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.doc.comment.support"
         - possible values:   { "enabled", "disabled" }
         - default:           "enabled"

     VALIDATOR / Reporting Deprecation
        When enabled, the validator will signal use of deprecated API either as an
        error or a warning.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.deprecation"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "warning"

     VALIDATOR / Reporting Deprecation Inside Deprecated Code
        When enabled, the validator will signal use of deprecated API inside deprecated code.
        The severity of the problem is controlled with option "org.eclipse.wst.jsdt.core.compiler.problem.deprecation".
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.deprecationInDeprecatedCode"
         - possible values:   { "enabled", "disabled" }
         - default:           "disabled"

     VALIDATOR / Reporting Deprecation When Overriding Deprecated Method
        When enabled, the validator will signal the declaration of a method overriding a deprecated one.
        The severity of the problem is controlled with option "org.eclipse.wst.jsdt.core.compiler.problem.deprecation".
         - option id:        "org.eclipse.wst.jsdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod"
         - possible values:   { "enabled", "disabled" }
         - default:           "disabled"

     VALIDATOR / Reporting Unused Local
        When enabled, the validator will issue an error or a warning for unused local
        variables (that is, variables never read from)
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.unusedLocal"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Unused Parameter
        When enabled, the validator will issue an error or a warning for unused method
        parameters (that is, parameters never read from)
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.unusedParameter"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Unused Parameter if Implementing Abstract Method
        When enabled, the validator will signal unused parameters in abstract method implementations.
        The severity of the problem is controlled with option "org.eclipse.wst.jsdt.core.compiler.problem.unusedParameter".
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterWhenImplementingAbstract"
         - possible values:   { "enabled", "disabled" }
         - default:           "disabled"

     VALIDATOR / Reporting Unused Parameter if Overriding Concrete Method
        When enabled, the validator will signal unused parameters in methods overriding concrete ones.
        The severity of the problem is controlled with option "org.eclipse.wst.jsdt.core.compiler.problem.unusedParameter".
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterWhenOverridingConcrete"
         - possible values:   { "enabled", "disabled" }
         - default:           "disabled"

     VALIDATOR / Consider Reference in Doc Comment for Unused Parameter Check
        When enabled, the validator will consider doc comment references to parameters (i.e. @param clauses) for the unused
        parameter check. Thus, documented parameters will be considered as mandated as per doc contract.
        The severity of the unused parameter problem is controlled with option "org.eclipse.wst.jsdt.core.compiler.problem.unusedParameter".
        Note: this option has no effect until the doc comment support is enabled according to the
        option "org.eclipse.wst.jsdt.core.compiler.doc.comment.support".
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterIncludeDocReference"
         - possible values:   { "enabled", "disabled" }
         - default:           "enabled"

     VALIDATOR / Reporting Unused Import
        When enabled, the validator will issue an error or a warning for unused import
        reference
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.unusedImport"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "warning"

     VALIDATOR / Reporting Unused Private Members
        When enabled, the validator will issue an error or a warning whenever a private
        method or field is declared but never used within the same unit.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.unusedPrivateMember"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Assignment with no Effect
        When enabled, the validator will issue an error or a warning whenever an assignment
        has no effect (e.g 'x = x').
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.noEffectAssignment"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "warning"

     VALIDATOR / Reporting Empty Statements and Unnecessary Semicolons
        When enabled, the validator will issue an error or a warning if an empty statement or a
        unnecessary semicolon is encountered.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.emptyStatement"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Unnecessary Type Check
        When enabled, the validator will issue an error or a warning when a cast or an instanceof operation
        is unnecessary.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.unnecessaryTypeCheck"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Unnecessary Else
        When enabled, the validator will issue an error or a warning when a statement is unnecessarily
        nested within an else clause (in situation where then clause is not completing normally).
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.unnecessaryElse"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Non-Externalized String Literal
        When enabled, the validator will issue an error or a warning for non externalized
        String literal (that is, not tagged with //$NON-NLS-<n>$).
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.nonExternalizedStringLiteral"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Non-Static Reference to a Static Member
        When enabled, the validator will issue an error or a warning whenever a static field
        or method is accessed with an expression receiver. A reference to a static member should
        be qualified with a type name.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.staticAccessReceiver"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "warning"

     VALIDATOR / Reporting Indirect Reference to a Static Member
        When enabled, the validator will issue an error or a warning whenever a static field
        or method is accessed in an indirect way. A reference to a static member should
        preferably be qualified with its declaring type name.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.indirectStaticAccess"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Local Variable Declaration Hiding another Variable
        When enabled, the validator will issue an error or a warning whenever a local variable
        declaration is hiding some field or local variable (either locally, inherited or defined in enclosing type).
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.localVariableHiding"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Field Declaration Hiding another Variable
        When enabled, the validator will issue an error or a warning whenever a field
        declaration is hiding some field or local variable (either locally, inherited or defined in enclosing type).
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.fieldHiding"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Type Declaration Hiding another Type
        When enabled, the validator will issue an error or a warning in situations where a type parameter
        declaration is hiding some type, when a nested type is hiding some type parameter, or when
        a nested type is hiding another nested type defined in same unit.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.typeParameterHiding"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "warning"

     VALIDATOR / Reporting Possible Accidental Boolean Assignment
        When enabled, the validator will issue an error or a warning if a boolean assignment is acting as the condition
        of a control statement  (where it probably was meant to be a boolean comparison).
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.possibleAccidentalBooleanAssignment"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Undocumented Empty Block
        When enabled, the validator will issue an error or a warning when an empty block is detected and it is not
        documented with any comment.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.undocumentedEmptyBlock"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Finally Blocks Not Completing Normally
        When enabled, the validator will issue an error or a warning when a finally block does not complete normally.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.finallyBlockNotCompletingNormally"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "warning"

     VALIDATOR / Reporting Unused Declared Thrown Exception
        When enabled, the validator will issue an error or a warning when a method or a constructor is declaring a
        thrown checked exception, but never actually raises it in its body.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.unusedDeclaredThrownException"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Unused Declared Thrown Exception in Overridind Method
        When disabled, the validator will not include overriding methods in its diagnosis for unused declared
        thrown exceptions.

        The severity of the problem is controlled with option "org.eclipse.wst.jsdt.core.compiler.problem.unusedDeclaredThrownException".
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding"
         - possible values:   { "enabled", "disabled" }
         - default:           "disabled"

     VALIDATOR / Reporting Unqualified Access to Field
        When enabled, the validator will issue an error or a warning when a field is access without any qualification.
        In order to improve code readability, it should be qualified, e.g. 'x' should rather be written 'this.x'.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.unqualifiedFieldAccess"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Null Dereference
        When enabled, the validator will issue an error or a warning whenever a
        variable that is statically known to hold a null value is used to
        access a field or method.

         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.nullReference"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Potential Null Dereference
        When enabled, the validator will issue an error or a warning whenever a
        variable that has formerly been tested against null but is not (no more)
        statically known to hold a non-null value is used to access a field or
        method.

         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

              VALIDATOR / Reporting Duplicate Local Variables
        When enabled, the validator will issue an error or a warning whenever a
        two local variables with the same name have been declared.

         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.duplicateLocalVariables"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Redundant Null Check
        When enabled, the validator will issue an error or a warning whenever a
        variable that is statically known to hold a null or a non-null value
        is tested against null.

         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.redundantNullCheck"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Use of Annotation Type as Super Interface
        When enabled, the validator will issue an error or a warning whenever an annotation type is used
        as a super-interface. Though legal, this is discouraged.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.annotationSuperInterface"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "warning"

     VALIDATOR / Reporting Invalid Jsdoc Comment
        This is the generic control for the severity of JSdoc problems.
        When enabled, the validator will issue an error or a warning for a problem in JSdoc.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.invalidJavadoc"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Visibility Level For Invalid JSdoc Tags
        Set the minimum visibility level for JSdoc tag problems. Below this level problems will be ignored.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.invalidJavadocTagsVisibility"
         - possible values:   { "public", "protected", "default", "private" }
         - default:           "public"

     VALIDATOR / Reporting Invalid JSdoc Tags
        When enabled, the validator will signal unbound or unexpected reference tags in JSdoc.
        A 'throws' tag referencing an undeclared exception would be considered as unexpected.

    Note that this diagnosis can be enabled based on the visibility of the construct associated with the JSDoc;
        also see the setting "org.eclipse.wst.jsdt.core.compiler.problem.invalidJavadocTagsVisibility".

        The severity of the problem is controlled with option "org.eclipse.wst.jsdt.core.compiler.problem.invalidJavadoc".
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.invalidJavadocTags"
         - possible values:   { "disabled", "enabled" }
         - default:           "disabled"

     VALIDATOR / Reporting Invalid JSdoc Tags with Deprecated References
        Specify whether the validator will report deprecated references used in JSdoc tags.

    Note that this diagnosis can be enabled based on the visibility of the construct associated with the JSDoc;
        also see the setting "org.eclipse.wst.jsdt.core.compiler.problem.invalidJavadocTagsVisibility".
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef"
         - possible values:   { "enabled", "disabled" }
         - default:           "disabled"

     VALIDATOR / Reporting Invalid JSdoc Tags with Not Visible References
        Specify whether the validator will report non-visible references used in JSDoc tags.

    Note that this diagnosis can be enabled based on the visibility of the construct associated with the JSDoc;
        also see the setting "org.eclipse.wst.jsdt.core.compiler.problem.invalidJavadocTagsVisibility".
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef"
         - possible values:   { "enabled", "disabled" }
         - default:           "disabled"

     VALIDATOR / Reporting Missing JSDoc Tags
        This is the generic control for the severity of JSDoc missing tag problems.
        When enabled, the validator will issue an error or a warning when tags are missing in JSDoc comments.

    Note that this diagnosis can be enabled based on the visibility of the construct associated with the JSDoc;
        also see the setting "org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocTagsVisibility".

         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocTags"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Visibility Level For Missing JSDoc Tags
        Set the minimum visibility level for JSDoc missing tag problems. Below this level problems will be ignored.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocTagsVisibility"
         - possible values:   { "public", "protected", "default", "private" }
         - default:           "public"

     VALIDATOR / Reporting Missing JSDoc Tags on Overriding Methods
        Specify whether the validator will verify overriding methods in order to report JSDoc missing tag problems.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocTagsOverriding"
         - possible values:   { "enabled", "disabled" }
         - default:           "disabled"

     VALIDATOR / Reporting Missing JSDoc Comments
        This is the generic control for the severity of missing JSDoc comment problems.
        When enabled, the validator will issue an error or a warning when JSDoc comments are missing.

    Note that this diagnosis can be enabled based on the visibility of the construct associated with the expected JSDoc;
        also see the setting "org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocCommentsVisibility".

         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocComments"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Visibility Level For Missing JSDoc Comments
        Set the minimum visibility level for missing JSDoc problems. Below this level problems will be ignored.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocCommentsVisibility"
         - possible values:   { "public", "protected", "default", "private" }
         - default:           "public"

     VALIDATOR / Reporting Missing JSDoc Comments on Overriding Methods
        Specify whether the validator will verify overriding methods in order to report missing JSDoc comment problems.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocCommentsOverriding"
         - possible values:   { "enabled", "disabled" }
         - default:           "disabled"

     VALIDATOR / Maximum Number of Problems Reported per JavaScript Unit
        Specify the maximum number of problems reported on each javaScript unit.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.maxProblemPerUnit"
         - possible values: "<n>" where <n> is zero or a positive integer (if zero then all problems are reported).
         - default:           "100"

     VALIDATOR / Treating Optional Error as Fatal
        When enabled, optional errors (i.e. optional problems which severity is set to "error") will be treated as standard
        validator errors, yielding problem methods/types preventing from running offending code until the issue got resolved.
        When disabled, optional errors are only considered as warnings, still carrying an error indication to make them more
        severe. Note that by default, errors are fatal, whether they are optional or not.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.fatalOptionalError"
         - possible values:   { "enabled", "disabled" }
         - default:           "enabled"

     VALIDATOR / Defining the Automatic Task Tags
        When the tag list is not empty, the validator will issue a task marker whenever it encounters
        one of the corresponding tags inside any comment in JavaScript source code.
        Generated task messages will start with the tag, and range until the next line separator,
        comment ending, or tag.
        When a given line of code bears multiple tags, each tag will be reported separately.
        Moreover, a tag immediately followed by another tag will be reported using the contents of the
        next non-empty tag of the line, if any.
        Note that tasks messages are trimmed. If a tag is starting with a letter or digit, then it cannot be leaded by
        another letter or digit to be recognized ("fooToDo" will not be recognized as a task for tag "ToDo", but "foo#ToDo"
        will be detected for either tag "ToDo" or "#ToDo"). Respectively, a tag ending with a letter or digit cannot be followed
        by a letter or digit to be recognized ("ToDofoo" will not be recognized as a task for tag "ToDo", but "ToDo:foo" will
        be detected either for tag "ToDo" or "ToDo:").
         - option id:         "org.eclipse.wst.jsdt.core.compiler.taskTags"
         - possible values:   { "<tag>[,<tag>]*" } where <tag> is a String without any wild-card or leading/trailing spaces
         - default:           "TODO,FIXME,XXX"

     VALIDATOR / Defining the Automatic Task Priorities
        In parallel with the Automatic Task Tags, this list defines the priorities (high, normal or low)
        of the task markers issued by the validator.
        If the default is specified, the priority of each task marker is "NORMAL".
         - option id:         "org.eclipse.wst.jsdt.core.compiler.taskPriorities"
         - possible values:   { "<priority>[,<priority>]*" } where <priority> is one of "HIGH", "NORMAL" or "LOW"
         - default:           "NORMAL,HIGH,NORMAL"

     VALIDATOR / Determining whether task tags are case-sensitive
        When enabled, task tags are considered in a case-sensitive way.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.taskCaseSensitive"
         - possible values:   { "enabled", "disabled" }
         - default:           "enabled"

     VALIDATOR / Reporting Discouraged Reference to Type with Restricted Access
        When enabled, the validator will issue an error or a warning when referring to a type with discouraged access, as defined according
        to the access rule specifications.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.discouragedReference"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "warning"

     VALIDATOR / Reporting Unreferenced Label
        When enabled, the validator will issue an error or a warning when encountering a labeled statement which label
        is never explicitly referenced. A label is considered to be referenced if its name explicitly appears behind a break
        or continue statement; for instance the following label would be considered unreferenced;   LABEL: { break; }
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.unusedLabel"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "warning"

     VALIDATOR / Reporting Parameter Assignment
        When enabled, the validator will issue an error or a warning if a parameter is
        assigned to.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.parameterAssignment"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Switch Fall-Through Case
        When enabled, the validator will issue an error or a warning if a case may be
        entered by falling through previous case. Empty cases are allowed.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.fallthroughCase"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     VALIDATOR / Reporting Overriding method that doesn't call the super method invocation
        When enabled, the validator will issue an error or a warning if a method is overriding a method without calling
        the super invocation.
         - option id:         "org.eclipse.wst.jsdt.core.compiler.problem.overridingMethodWithoutSuperInvocation"
         - possible values:   { "error", "warning", "ignore" }
         - default:           "ignore"

     BUILDER / Specifying Filters for Resource Copying Control
        Allow to specify some filters to control the resource copy process.
         - option id:         "org.eclipse.wst.jsdt.core.builder.resourceCopyExclusionFilter"
         - possible values:   { "<name>[,<name>]* } where <name> is a file name pattern (* and ? wild-cards allowed)
           or the name of a folder which ends with '/'
         - default:           ""

     BUILDER / Abort if Invalid Includepath
        Allow to toggle the builder to abort if the includepath is invalid
         - option id:         "org.eclipse.wst.jsdt.core.builder.invalidClasspath"
         - possible values:   { "abort", "ignore" }
         - default:           "abort"

     BUILDER / Reporting Duplicate Resources
        Indicate the severity of the problem reported when more than one occurrence
        of a resource is to be copied into the output location.
         - option id:         "org.eclipse.wst.jsdt.core.builder.duplicateResourceTask"
         - possible values:   { "error", "warning" }
         - default:           "warning"

     JAVACORE / Computing Project Build Order
        Indicate whether JavaScriptCore should enforce the project build order to be based on
        the includepath prerequisite chain. When requesting to compute, this takes over
        the platform default order (based on project references).
         - option id:         "org.eclipse.wst.jsdt.core.computeJavaBuildOrder"
         - possible values:   { "compute", "ignore" }
         - default:           "ignore"

     JAVACORE / Default Source Encoding Format
        Get the default encoding format of source files. This value is
        immutable and preset to the result of ResourcesPlugin.getEncoding().
        It is offered as a convenience shortcut only.
         - option id:         "org.eclipse.wst.jsdt.core.encoding"
         - value:           <immutable, platform default value>

     JAVACORE / Reporting Incomplete Includepath
        Indicate the severity of the problem reported when an entry on the includepath does not exist,
        is not legite or is not visible (for example, a referenced project is closed).
         - option id:         "org.eclipse.wst.jsdt.core.incompleteClasspath"
         - possible values:   { "error", "warning"}
         - default:           "error"

     JAVACORE / Reporting Includepath Cycle
        Indicate the severity of the problem reported when a project is involved in a cycle.
         - option id:         "org.eclipse.wst.jsdt.core.circularClasspath"
         - possible values:   { "error", "warning" }
         - default:           "error"
     JAVACORE / Enabling Usage of Includepath Exclusion Patterns
        When disabled, no entry on a project includepath can be associated with
        an exclusion pattern.
         - option id:         "org.eclipse.wst.jsdt.core.includepath.exclusionPatterns"
         - possible values:   { "enabled", "disabled" }
         - default:           "enabled"

     JAVACORE / Enabling Usage of Includepath Multiple Output Locations
        When disabled, no entry on a project includepath can be associated with
        a specific output location, preventing thus usage of multiple output locations.
         - option id:         "org.eclipse.wst.jsdt.core.includepath.multipleOutputLocations"
         - possible values:   { "enabled", "disabled" }
         - default:           "enabled"

     JAVACORE / Set the timeout value for retrieving the method's parameter names from jsdoc
        Timeout in milliseconds to retrieve the method's parameter names from jsdoc.
        If the value is 0, the parameter names are not fetched and the raw names are returned.
         - option id:         "org.eclipse.wst.jsdt.core.timeoutForParameterNameFromAttachedJavadoc"
         - possible values: "<n>", where n is an integer greater than or equal to 0
         - default:           "50"

     DEPRECATED SEE DefaultCodeFormatterOptions: FORMATTER / Inserting New Line Before Opening Brace
        When Insert, a new line is inserted before an opening brace, otherwise nothing
        is inserted
         - option id:         "org.eclipse.wst.jsdt.core.formatter.newline.openingBrace"
         - possible values:   { "insert", "do not insert" }
         - default:           "do not insert"

     DEPRECATED SEE DefaultCodeFormatterOptions: FORMATTER / Inserting New Line Inside Control Statement
        When Insert, a new line is inserted between } and following else, catch, finally
         - option id:         "org.eclipse.wst.jsdt.core.formatter.newline.controlStatement"
         - possible values:   { "insert", "do not insert" }
         - default:           "do not insert"

     DEPRECATED SEE DefaultCodeFormatterOptions: Clearing Blank Lines
        When Clear all, all blank lines are removed. When Preserve one, only one is kept
        and all others removed.
         - option id:         "org.eclipse.wst.jsdt.core.formatter.newline.clearAll"
         - possible values:   { "clear all", "preserve one" }
         - default:           "preserve one"

     DEPRECATED SEE DefaultCodeFormatterOptions: Inserting New Line Between Else/If
        When Insert, a blank line is inserted between an else and an if when they are
        contiguous. When choosing to not insert, else-if will be kept on the same
        line when possible.
         - option id:         "org.eclipse.wst.jsdt.core.formatter.newline.elseIf"
         - possible values:   { "insert", "do not insert" }
         - default:           "do not insert"

     DEPRECATED SEE DefaultCodeFormatterOptions: Inserting New Line In Empty Block
        When insert, a line break is inserted between contiguous { and }, if } is not followed
        by a keyword.
         - option id:         "org.eclipse.wst.jsdt.core.formatter.newline.emptyBlock"
         - possible values:   { "insert", "do not insert" }
         - default:           "insert"

     DEPRECATED SEE DefaultCodeFormatterOptions: Splitting Lines Exceeding Length
        Enable splitting of long lines (exceeding the configurable length). Length of 0 will
        disable line splitting
         - option id:         "org.eclipse.wst.jsdt.core.formatter.lineSplit"
         - possible values: "<n>", where n is zero or a positive integer
         - default:           "80"

     DEPRECATED SEE DefaultCodeFormatterOptions: Compacting Assignment
        Assignments can be formatted asymmetrically, for example 'int x= 2;', when Normal, a space
        is inserted before the assignment operator
         - option id:         "org.eclipse.wst.jsdt.core.formatter.style.assignment"
         - possible values:   { "compact", "normal" }
         - default:           "normal"

     DEPRECATED SEE DefaultCodeFormatterOptions: Defining Indentation Character
        Either choose to indent with tab characters or spaces
         - option id:         "org.eclipse.wst.jsdt.core.formatter.tabulation.char"
         - possible values:   { "tab", "space" }
         - default:           "tab"

     DEPRECATED SEE DefaultCodeFormatterOptions: Defining Space Indentation Length
        When using spaces, set the amount of space characters to use for each
        indentation mark.
         - option id:         "org.eclipse.wst.jsdt.core.formatter.tabulation.size"
         - possible values: "<n>", where n is a positive integer
         - default:           "4"

     DEPRECATED SEE DefaultCodeFormatterOptions: Inserting space in cast expression
        When Insert, a space is added between the type and the expression in a cast expression.
         - option id:         "org.eclipse.wst.jsdt.core.formatter.space.castexpression"
         - possible values:   { "insert", "do not insert" }
         - default:           "insert"

     CODEASSIST / Activate Visibility Sensitive Completion
        When active, completion doesn't show that you can not see
        (for example, you can not see private methods of a super class).
         - option id:         "org.eclipse.wst.jsdt.core.codeComplete.visibilityCheck"
         - possible values:   { "enabled", "disabled" }
         - default:           "disabled"

     CODEASSIST / Activate Deprecation Sensitive Completion
        When enabled, completion doesn't propose deprecated members and types.
         - option id:         "org.eclipse.wst.jsdt.core.codeComplete.deprecationCheck"
         - possible values:   { "enabled", "disabled" }
         - default:           "disabled"

     CODEASSIST / Automatic Qualification of Implicit Members
        When active, completion automatically qualifies completion on implicit
        field references and message expressions.
         - option id:         "org.eclipse.wst.jsdt.core.codeComplete.forceImplicitQualification"
         - possible values:   { "enabled", "disabled" }
         - default:           "disabled"

     CODEASSIST / Define the Prefixes for Field Name
        When the prefixes is non empty, completion for field name will begin with
        one of the proposed prefixes.
         - option id:         "org.eclipse.wst.jsdt.core.codeComplete.fieldPrefixes"
         - possible values:   { "<prefix>[,<prefix>]*" } where <prefix> is a String without any wild-card
         - default:           ""

     CODEASSIST / Define the Prefixes for Static Field Name
        When the prefixes is non empty, completion for static field name will begin with
        one of the proposed prefixes.
         - option id:         "org.eclipse.wst.jsdt.core.codeComplete.staticFieldPrefixes"
         - possible values:   { "<prefix>[,<prefix>]*" } where <prefix> is a String without any wild-card
         - default:           ""

     CODEASSIST / Define the Prefixes for Local Variable Name
        When the prefixes is non empty, completion for local variable name will begin with
        one of the proposed prefixes.
         - option id:         "org.eclipse.wst.jsdt.core.codeComplete.localPrefixes"
         - possible values:   { "<prefix>[,<prefix>]*" } where <prefix> is a String without any wild-card
         - default:           ""

     CODEASSIST / Define the Prefixes for Argument Name
        When the prefixes is non empty, completion for argument name will begin with
        one of the proposed prefixes.
         - option id:         "org.eclipse.wst.jsdt.core.codeComplete.argumentPrefixes"
         - possible values:   { "<prefix>[,<prefix>]*" } where <prefix> is a String without any wild-card
         - default:           ""

     CODEASSIST / Define the Suffixes for Field Name
        When the suffixes is non empty, completion for field name will end with
        one of the proposed suffixes.
         - option id:         "org.eclipse.wst.jsdt.core.codeComplete.fieldSuffixes"
         - possible values:   { "<suffix>[,<suffix>]*" } where <suffix> is a String without any wild-card
         - default:           ""

     CODEASSIST / Define the Suffixes for Static Field Name
        When the suffixes is non empty, completion for static field name will end with
        one of the proposed suffixes.
         - option id:         "org.eclipse.wst.jsdt.core.codeComplete.staticFieldSuffixes"
         - possible values:   { "<suffix>[,<suffix>]*" } where <suffix> is a String without any wild-card
         - default:           ""

     CODEASSIST / Define the Suffixes for Local Variable Name
        When the suffixes is non empty, completion for local variable name will end with
        one of the proposed suffixes.
         - option id:         "org.eclipse.wst.jsdt.core.codeComplete.localSuffixes"
         - possible values:   { "<suffix>[,<suffix>]*" } where <suffix> is a String without any wild-card
         - default:           ""

     CODEASSIST / Define the Suffixes for Argument Name
        When the suffixes is non empty, completion for argument name will end with
        one of the proposed suffixes.
         - option id:         "org.eclipse.wst.jsdt.core.codeComplete.argumentSuffixes"
         - possible values:   { "<suffix>[,<suffix>]*" } where <suffix> is a String without any wild-card
         - default:           ""

     CODEASSIST / Activate Forbidden Reference Sensitive Completion
        When enabled, completion doesn't propose elements which match a
        forbidden reference rule.
         - option id:         "org.eclipse.wst.jsdt.core.codeComplete.forbiddenReferenceCheck"
         - possible values:   { "enabled", "disabled" }
         - default:           "enabled"

     CODEASSIST / Activate Discouraged Reference Sensitive Completion
        When enabled, completion doesn't propose elements which match a
        discouraged reference rule.
         - option id:         "org.eclipse.wst.jsdt.core.codeComplete.discouragedReferenceCheck"
         - possible values:   { "enabled", "disabled" }
         - default:           "disabled"

     CODEASSIST / Activate Camel Case Sensitive Completion
        When enabled, completion shows proposals whose name match the CamelCase
        pattern.
         - option id:         "org.eclipse.wst.jsdt.core.codeComplete.camelCaseMatch"
         - possible values:   { "enabled", "disabled" }
         - default:           "enabled"

     CODEASSIST / Activate Suggestion of Static Import
        When enabled, completion proposals can contain static import
        pattern.
         - option id:         "org.eclipse.wst.jsdt.core.codeComplete.suggestStaticImports"
         - possible values:   { "enabled", "disabled" }
         - default:           "enabled"

#### getEncoding

    public static java.lang.String getEncoding()

Returns the workspace root default charset encoding.

Returns:
  the name of the default charset encoding for workspace root.
See Also:
  `IContainer#getDefaultCharset()`, `ResourcesPlugin#getEncoding()`

#### getGeneratedResources

    public static IResource[] getGeneratedResources(IRegion region,
                                                    boolean includesNonJavaResources)

Returns an array that contains the resources generated by the JavaScript builder when building the javaScript units contained in the given region.

The contents of the array is accurate only if the elements of the given region have been built.

The given region can contain instances of:

- `org.eclipse.wst.jsdt.core.IJavaScriptUnit`
- `org.eclipse.wst.jsdt.core.IPackageFragment`
- `org.eclipse.wst.jsdt.core.IPackageFragmentRoot`
- `org.eclipse.wst.jsdt.core.IJavaScriptProject`

All other types of `org.eclipse.wst.jsdt.core.IJavaScriptElement` are ignored.

Parameters:
  `region` - the given region
  `includesNonJavaResources` - a flag that indicates if non-javaScript resources should be included
Returns:
  an array that contains the resources generated by the JavaScript builder when building the javaScript units contained in the given region, an empty array if none
Throws:
  `java.lang.IllegalArgumentException` - if the given region is `null`

#### getJavaScriptCore

    public static JavaScriptCore getJavaScriptCore()

Returns the single instance of the JavaScript core plug-in runtime class. Equivalent to `(JavaScriptCore) getPlugin()`.

Returns:
  the single instance of the JavaScript core plug-in runtime class

#### getJavaScriptLikeExtensions

    public static java.lang.String[] getJavaScriptLikeExtensions()

Returns the list of known JavaScript-like extensions. JavaScript like extension are defined in the `content type manager` for the `JAVA_SOURCE_CONTENT_TYPE`. Note that a JavaScript-like extension doesn't include the leading dot ('.'). Also note that the "js" extension is always defined as a JavaScript-like extension.

Returns:
  the list of known JavaScript-like extensions.

#### getOption

    public static java.lang.String getOption(java.lang.String optionName)

Helper method for returning one option value only. Equivalent to `(String)JavaScriptCore.getOptions().get(optionName)` Note that it may answer `null` if this option does not exist.

For a complete description of the configurable options, see `getDefaultOptions`.

Parameters:
  `optionName` - the name of an option
Returns:
  the String value of a given option
See Also:
  `getDefaultOptions()`, `for changing default settings`

#### getOptions

    public static java.util.Hashtable getOptions()

Returns the table of the current options. Initially, all options have their default values, and this method returns a table that includes all known options.

For a complete description of the configurable options, see `getDefaultOptions`.

Returns a default set of options even if the platform is not running.

Returns:
  table of current settings of all options (key type: `String`; value type: `String`)
See Also:
  `getDefaultOptions()`, `for changing default settings`

#### getPlugin

    public static Plugin getPlugin()

Returns the single instance of the JavaScript core plug-in runtime class.

Returns:
  the single instance of the JavaScript core plug-in runtime class

#### getResolvedIncludepathEntry

    public static IIncludePathEntry getResolvedIncludepathEntry(IIncludePathEntry entry)

This is a helper method, which returns the resolved includepath entry denoted by a given entry (if it is a variable entry). It is obtained by resolving the variable reference in the first segment. Returns `null` if unable to resolve using the following algorithm:

- if variable segment cannot be resolved, returns `null`
- finds a project, JAR or binary folder in the workspace at the resolved path location
- if none finds an external JAR file or folder outside the workspace at the resolved path location
- if none returns `null`

Variable source attachment path and root path are also resolved and recorded in the resulting includepath entry.

NOTE: This helper method does not handle includepath containers, for which should rather be used `JavaScriptCore#getJsGlobalScopeContainer(IPath, IJavaScriptProject)`.

Parameters:
  `entry` - the given variable entry
Returns:
  the resolved library or project includepath entry, or `null` if the given variable entry could not be resolved to a valid includepath entry

#### getResolvedVariablePath

    public static IPath getResolvedVariablePath(IPath variablePath)

Resolve a variable path (helper method).

Parameters:
  `variablePath` - the given variable path
Returns:
  the resolved variable path or `null` if none

#### getUserLibraryNames

    public static java.lang.String[] getUserLibraryNames()

Returns the names of all defined user libraries. The corresponding includepath container path is the name appended to the USER_LIBRARY_CONTAINER_ID.

Returns:
  Return an array containing the names of all known user defined.

#### getWorkingCopies

    public static IJavaScriptUnit[] getWorkingCopies(WorkingCopyOwner owner)

Returns the working copies that have the given owner. Only javaScript units in working copy mode are returned. If the owner is `null`, primary working copies are returned.

Parameters:
  `owner` - the given working copy owner or `null` for primary working copy owner
Returns:
  the list of working copies for a given owner

#### initializeAfterLoad

    public static void initializeAfterLoad(IProgressMonitor monitor)
                                    throws CoreException

Initializes JavaScriptCore internal structures to allow subsequent operations (such as the ones that need a resolved classpath) to run full speed. A client may choose to call this method in a background thread early after the workspace has started so that the initialization is transparent to the user.

However calling this method is optional. Services will lazily perform initialization when invoked. This is only a way to reduce initialization overhead on user actions, if it can be performed before at some appropriate moment.

This initialization runs accross all JavaScript projects in the workspace. Thus the workspace root scheduling rule is used during this operation.

This method may return before the initialization is complete. The initialization will then continue in a background thread.

This method can be called concurrently.

Parameters:
  `monitor` - a progress monitor, or `null` if progress reporting and cancellation are not desired
Throws:
  `CoreException` - if the initialization fails, the status of the exception indicates the reason of the failure

#### isIncludepathVariableReadOnly

    public static boolean isIncludepathVariableReadOnly(java.lang.String variableName)

Returns whether a given includepath variable is read-only or not.

Parameters:
  `variableName` -
Returns:
  `true` if the includepath variable is read-only, `false` otherwise.

#### isJavaScriptLikeFileName

    public static boolean isJavaScriptLikeFileName(java.lang.String fileName)

Returns whether the given file name's extension is a JavaScript-like extension.

Returns:
  whether the given file name's extension is a JavaScript-like extension
See Also:
  `getJavaScriptLikeExtensions()`

#### isReferencedBy

    public static boolean isReferencedBy(IJavaScriptElement element,
                                         IMarker marker)
                                  throws CoreException

Returns whether the given marker references the given JavaScript element. Used for markers, which denote a JavaScript element rather than a resource.

Parameters:
  `element` - the element
  `marker` - the marker
Returns:
  `true` if the marker references the element, false otherwise
Throws:
  `CoreException` - if the `IMarker.getAttribute` on the marker fails

#### isReferencedBy

    public static boolean isReferencedBy(IJavaScriptElement element,
                                         IMarkerDelta markerDelta)
                                  throws CoreException

Returns whether the given marker delta references the given JavaScript element. Used for markers deltas, which denote a JavaScript element rather than a resource.

Parameters:
  `element` - the element
  `markerDelta` - the marker delta
Returns:
  `true` if the marker delta references the element
Throws:
  `CoreException` - if the `IMarkerDelta.getAttribute` on the marker delta fails

#### newAccessRule

    public static IAccessRule newAccessRule(IPath filePattern,
                                            int kind)

Creates and returns a new access rule with the given file pattern and kind.

The rule kind is one of `IAccessRule.K_ACCESSIBLE`, `IAccessRule.K_DISCOURAGED`, or `IAccessRule.K_NON_ACCESSIBLE`, optionally combined with `IAccessRule.IGNORE_IF_BETTER`, e..g. `IAccessRule.K_NON_ACCESSIBLE | IAccessRule.IGNORE_IF_BETTER`.

Parameters:
  `filePattern` - the file pattern this access rule should match
  `kind` - one of `IAccessRule.K_ACCESSIBLE`, `IAccessRule.K_DISCOURAGED`, or `IAccessRule.K_NON_ACCESSIBLE`, optionally combined with `IAccessRule.IGNORE_IF_BETTER`
Returns:
  a new access rule

#### newIncludepathAttribute

    public static IIncludePathAttribute newIncludepathAttribute(java.lang.String name,
                                                                java.lang.String value)

Creates and returns a new includepath attribute with the given name and the given value.

Returns:
  a new includepath attribute

#### newContainerEntry

    public static IIncludePathEntry newContainerEntry(IPath containerPath)

Creates and returns a new includepath entry of kind `CPE_CONTAINER` for the given path. This method is fully equivalent to calling `newContainerEntry(containerPath, new IAccessRule[0], new IIncludePathAttribute[0], false)`.

Parameters:
  `containerPath` - the path identifying the container, it must be formed of at least two segments
Returns:
  a new container includepath entry
See Also:
  `getJsGlobalScopeContainer(IPath, IJavaScriptProject)`

#### newContainerEntry

    public static IIncludePathEntry newContainerEntry(IPath containerPath,
                                                      boolean isExported)

Creates and returns a new includepath entry of kind `CPE_CONTAINER` for the given path. This method is fully equivalent to calling `newContainerEntry(containerPath, new IAccessRule[0], new IIncludePathAttribute[0], isExported)`.

Parameters:
  `containerPath` - the path identifying the container, it must be formed of at least one segment (ID+hints)
  `isExported` - a boolean indicating whether this entry is contributed to dependent projects in addition to the output location
Returns:
  a new container includepath entry
See Also:
  `getJsGlobalScopeContainer(IPath, IJavaScriptProject)`, `setJsGlobalScopeContainer(IPath, IJavaScriptProject[], IJsGlobalScopeContainer[], IProgressMonitor)`

#### newContainerEntry

    public static IIncludePathEntry newContainerEntry(IPath containerPath,
                                                      IAccessRule[] accessRules,
                                                      IIncludePathAttribute[] extraAttributes,
                                                      boolean isExported)

Creates and returns a new includepath entry of kind `CPE_CONTAINER` for the given path. The path of the container will be used during resolution so as to map this container entry to a set of other includepath entries the container is acting for.

A container entry allows to express indirect references to a set of libraries, projects and variable entries, which can be interpreted differently for each JavaScript project where it is used. A includepath container entry can be resolved using `JavaScriptCore.getResolvedJsGlobalScopeContainer`, and updated with `JavaScriptCore.JsGlobalScopeContainerChanged`

A container is exclusively resolved by a `JsGlobalScopeContainerInitializer` registered onto the extension point "org.eclipse.wst.jsdt.core.JsGlobalScopeContainerInitializer".

A container path must be formed of at least one segment, where:

- the first segment is a unique ID identifying the target container, there must be a container initializer registered onto this ID through the extension point "org.eclipse.wst.jsdt.core.JsGlobalScopeContainerInitializer".
- the remaining segments will be passed onto the initializer, and can be used as additional hints during the initialization phase.

Example of an JsGlobalScopeContainerInitializer for a includepath container denoting a default JDK container:

     containerEntry = JavaScriptCore.newContainerEntry(new Path("MyProvidedJDK/default"));

     <extension
        point="org.eclipse.wst.jsdt.core.JsGlobalScopeContainerInitializer">
        <containerInitializer
           id="MyProvidedJDK"
           class="com.example.MyInitializer"/>

The access rules determine the set of accessible source and class files in the container. If the list of access rules is empty, then all files in this container are accessible. See `IAccessRule` for a detailed description of access rules. Note that if an entry defined by the container defines access rules, then these access rules are combined with the given access rules. The given access rules are considered first, then the entry's access rules are considered.

The `extraAttributes` list contains name/value pairs that must be persisted with this entry. If no extra attributes are provided, an empty array must be passed in.
Note that this list should not contain any duplicate name.

The `isExported` flag indicates whether this entry is contributed to dependent projects. If not exported, dependent projects will not see any of the classes from this entry. If exported, dependent projects will concatenate the accessible files patterns of this entry with the accessible files patterns of the projects, and they will concatenate the non accessible files patterns of this entry with the non accessible files patterns of the project.

Note that this operation does not attempt to validate includepath containers or access the resources at the given paths.

Parameters:
  `containerPath` - the path identifying the container, it must be formed of at least one segment (ID+hints)
  `accessRules` - the possibly empty list of access rules for this entry
  `extraAttributes` - the possibly empty list of extra attributes to persist with this entry
  `isExported` - a boolean indicating whether this entry is contributed to dependent projects in addition to the output location
Returns:
  a new container includepath entry
See Also:
  `getJsGlobalScopeContainer(IPath, IJavaScriptProject)`, `setJsGlobalScopeContainer(IPath, IJavaScriptProject[], IJsGlobalScopeContainer[], IProgressMonitor)`, `newContainerEntry(IPath, boolean)`, `newAccessRule(IPath, int)`

#### newTypeHierarchy

    public static ITypeHierarchy newTypeHierarchy(IRegion region,
                                                  WorkingCopyOwner owner,
                                                  IProgressMonitor monitor)
                                           throws JavaScriptModelException

Creates and returns a type hierarchy for all types in the given region, considering subtypes within that region and considering types in the working copies with the given owner. In other words, the owner's working copies will take precedence over their original javaScript units in the workspace.

Note that if a working copy is empty, it will be as if the original compilation unit had been deleted.

Parameters:
  `monitor` - the given progress monitor
  `region` - the given region
  `owner` - the owner of working copies that take precedence over their original javaScript units, or `null` if the primary working copy owner should be used
Returns:
  a type hierarchy for all types in the given region, considering subtypes within that region
Throws:
  `JavaScriptModelException` - if an element in the region does not exist or if an exception occurs while accessing its corresponding resource
  `java.lang.IllegalArgumentException` - if region is `null`

#### newLibraryEntry

    public static IIncludePathEntry newLibraryEntry(IPath path,
                                                    IPath sourceAttachmentPath,
                                                    IPath sourceAttachmentRootPath)

Creates and returns a new non-exported includepath entry of kind `CPE_LIBRARY` for the JAR or folder identified by the given absolute path. This specifies that all package fragments within the root will have children of type `IClassFile`. This method is fully equivalent to calling `newLibraryEntry(path, sourceAttachmentPath, sourceAttachmentRootPath, new IAccessRule[0], new IIncludePathAttribute[0], false)`.

Parameters:
  `path` - the absolute path of the binary archive
  `sourceAttachmentPath` - the absolute path of the corresponding source archive or folder, or `null` if none. Note, since 3.0, an empty path is allowed to denote no source attachment. and will be automatically converted to `null`.
  `sourceAttachmentRootPath` - the location of the root of the source files within the source archive or folder or `null` if this location should be automatically detected.
Returns:
  a new library includepath entry

#### newLibraryEntry

    public static IIncludePathEntry newLibraryEntry(IPath path,
                                                    IPath sourceAttachmentPath,
                                                    IPath sourceAttachmentRootPath,
                                                    boolean isExported)

Creates and returns a new includepath entry of kind `CPE_LIBRARY` for the JAR or folder identified by the given absolute path. This specifies that all package fragments within the root will have children of type `IClassFile`. This method is fully equivalent to calling `newLibraryEntry(path, sourceAttachmentPath, sourceAttachmentRootPath, new IAccessRule[0], new IIncludePathAttribute[0], isExported)`.

Parameters:
  `path` - the absolute path of the binary archive
  `sourceAttachmentPath` - the absolute path of the corresponding source archive or folder, or `null` if none. Note, since 3.0, an empty path is allowed to denote no source attachment. and will be automatically converted to `null`.
  `sourceAttachmentRootPath` - the location of the root of the source files within the source archive or folder or `null` if this location should be automatically detected.
  `isExported` - indicates whether this entry is contributed to dependent projects in addition to the output location
Returns:
  a new library includepath entry

#### newLibraryEntry

    public static IIncludePathEntry newLibraryEntry(IPath path,
                                                    IPath sourceAttachmentPath,
                                                    IPath sourceAttachmentRootPath,
                                                    IAccessRule[] accessRules,
                                                    IIncludePathAttribute[] extraAttributes,
                                                    boolean isExported)

Creates and returns a new includepath entry of kind `CPE_LIBRARY` for the JAR or folder identified by the given absolute path. This specifies that all package fragments within the root will have children of type `IClassFile`.

A library entry is used to denote a prerequisite JAR or root folder containing binaries. The target JAR can either be defined internally to the workspace (absolute path relative to the workspace root) or externally to the workspace (absolute path in the file system). The target root folder can only be defined internally to the workspace (absolute path relative to the workspace root). To use a binary folder external to the workspace, it must first be linked (see IFolder#createLink(...)).

The `extraAttributes` list contains name/value pairs that must be persisted with this entry. If no extra attributes are provided, an empty array must be passed in.
Note that this list should not contain any duplicate name.

The `isExported` flag indicates whether this entry is contributed to dependent projects. If not exported, dependent projects will not see any of the classes from this entry. If exported, dependent projects will concatenate the accessible files patterns of this entry with the accessible files patterns of the projects, and they will concatenate the non accessible files patterns of this entry with the non accessible files patterns of the project.

Parameters:
  `path` - the absolute path of the binary archive
  `sourceAttachmentPath` - the absolute path of the corresponding source archive or folder, or `null` if none. Note, since 3.0, an empty path is allowed to denote no source attachment. and will be automatically converted to `null`.
  `sourceAttachmentRootPath` - the location of the root of the source files within the source archive or folder or `null` if this location should be automatically detected.
  `accessRules` - the possibly empty list of access rules for this entry
  `extraAttributes` - the possibly empty list of extra attributes to persist with this entry
  `isExported` - indicates whether this entry is contributed to dependent projects in addition to the output location
Returns:
  a new library includepath entry

#### newLibraryEntry

    public static IIncludePathEntry newLibraryEntry(IPath path,
                                                    IPath sourceAttachmentPath,
                                                    IPath sourceAttachmentRootPath,
                                                    IAccessRule[] accessRules,
                                                    IIncludePathAttribute[] extraAttributes,
                                                    IPath[] exclusionPatterns,
                                                    boolean isExported)

Creates and returns a new includepath entry of kind `CPE_LIBRARY` for the JAR or folder identified by the given absolute path. This specifies that all package fragments within the root will have children of type `IClassFile`.

A library entry is used to denote a prerequisite JAR or root folder containing binaries. The target JAR can either be defined internally to the workspace (absolute path relative to the workspace root) or externally to the workspace (absolute path in the file system). The target root folder can only be defined internally to the workspace (absolute path relative to the workspace root). To use a binary folder external to the workspace, it must first be linked (see IFolder#createLink(...)).

The `extraAttributes` list contains name/value pairs that must be persisted with this entry. If no extra attributes are provided, an empty array must be passed in.
Note that this list should not contain any duplicate name.

The `isExported` flag indicates whether this entry is contributed to dependent projects. If not exported, dependent projects will not see any of the classes from this entry. If exported, dependent projects will concatenate the accessible files patterns of this entry with the accessible files patterns of the projects, and they will concatenate the non accessible files patterns of this entry with the non accessible files patterns of the project.

Parameters:
  `path` - the absolute path of the binary archive
  `sourceAttachmentPath` - the absolute path of the corresponding source archive or folder, or `null` if none. Note, since 3.0, an empty path is allowed to denote no source attachment. and will be automatically converted to `null`.
  `sourceAttachmentRootPath` - the location of the root of the source files within the source archive or folder or `null` if this location should be automatically detected.
  `accessRules` - the possibly empty list of access rules for this entry
  `exclusionPatterns` - the possibly empty list of exclusion patterns represented as relative paths
  `extraAttributes` - the possibly empty list of extra attributes to persist with this entry
  `isExported` - indicates whether this entry is contributed to dependent projects in addition to the output location
Returns:
  a new library includepath entry

#### newProjectEntry

    public static IIncludePathEntry newProjectEntry(IPath path)

Creates and returns a new non-exported includepath entry of kind `CPE_PROJECT` for the project identified by the given absolute path. This method is fully equivalent to calling `newProjectEntry(path, new IAccessRule[0], true, new IIncludePathAttribute[0], false)`.

Parameters:
  `path` - the absolute path of the binary archive
Returns:
  a new project includepath entry

#### newProjectEntry

    public static IIncludePathEntry newProjectEntry(IPath path,
                                                    boolean isExported)

Creates and returns a new includepath entry of kind `CPE_PROJECT` for the project identified by the given absolute path. This method is fully equivalent to calling `newProjectEntry(path, new IAccessRule[0], true, new IIncludePathAttribute[0], isExported)`.

Parameters:
  `path` - the absolute path of the prerequisite project
  `isExported` - indicates whether this entry is contributed to dependent projects in addition to the output location
Returns:
  a new project includepath entry

#### newProjectEntry

    public static IIncludePathEntry newProjectEntry(IPath path,
                                                    IAccessRule[] accessRules,
                                                    boolean combineAccessRules,
                                                    IIncludePathAttribute[] extraAttributes,
                                                    boolean isExported)

Creates and returns a new includepath entry of kind `CPE_PROJECT` for the project identified by the given absolute path.

A project entry is used to denote a prerequisite project on a includepath. The referenced project will be contributed as a whole, either as sources (in the JavaScript Model, it contributes all its package fragment roots) or as binaries (when building, it contributes its whole output location).

A project reference allows to indirect through another project, independently from its internal layout.

The prerequisite project is referred to using an absolute path relative to the workspace root.

The access rules determine the set of accessible class files in the project. If the list of access rules is empty then all files in this project are accessible. See `IAccessRule` for a detailed description of access rules.

The `combineAccessRules` flag indicates whether access rules of one (or more) exported entry of the project should be combined with the given access rules. If they should be combined, the given access rules are considered first, then the entry's access rules are considered.

The `extraAttributes` list contains name/value pairs that must be persisted with this entry. If no extra attributes are provided, an empty array must be passed in.
Note that this list should not contain any duplicate name.

The `isExported` flag indicates whether this entry is contributed to dependent projects. If not exported, dependent projects will not see any of the classes from this entry. If exported, dependent projects will concatenate the accessible files patterns of this entry with the accessible files patterns of the projects, and they will concatenate the non accessible files patterns of this entry with the non accessible files patterns of the project.

Parameters:
  `path` - the absolute path of the prerequisite project
  `accessRules` - the possibly empty list of access rules for this entry
  `combineAccessRules` - whether the access rules of the project's exported entries should be combined with the given access rules
  `extraAttributes` - the possibly empty list of extra attributes to persist with this entry
  `isExported` - indicates whether this entry is contributed to dependent projects in addition to the output location
Returns:
  a new project includepath entry

#### newRegion

    public static IRegion newRegion()

Returns a new empty region.

Returns:
  a new empty region

#### newSourceEntry

    public static IIncludePathEntry newSourceEntry(IPath path)

Creates and returns a new includepath entry of kind `CPE_SOURCE` for all files in the project's source folder identified by the given absolute workspace-relative path.

The convenience method is fully equivalent to:

     newSourceEntry(path, new IPath[] {}, new IPath[] {}, null);

Parameters:
  `path` - the absolute workspace-relative path of a source folder
Returns:
  a new source includepath entry
See Also:
  `newSourceEntry(IPath, IPath[], IPath[], IPath)`

#### newSourceEntry

    public static IIncludePathEntry newSourceEntry(IPath path,
                                                   IPath[] exclusionPatterns)

Creates and returns a new includepath entry of kind `CPE_SOURCE` for the project's source folder identified by the given absolute workspace-relative path but excluding all source files with paths matching any of the given patterns.

The convenience method is fully equivalent to:

     newSourceEntry(path, new IPath[] {}, exclusionPatterns, null);

Parameters:
  `path` - the absolute workspace-relative path of a source folder
  `exclusionPatterns` - the possibly empty list of exclusion patterns represented as relative paths
Returns:
  a new source includepath entry
See Also:
  `newSourceEntry(IPath, IPath[], IPath[], IPath)`

#### newSourceEntry

    public static IIncludePathEntry newSourceEntry(IPath path,
                                                   IPath[] exclusionPatterns,
                                                   IPath specificOutputLocation)

Creates and returns a new includepath entry of kind `CPE_SOURCE` for the project's source folder identified by the given absolute workspace-relative path but excluding all source files with paths matching any of the given patterns, and associated with a specific output location (that is, ".class" files are not going to the project default output location).

The convenience method is fully equivalent to:

     newSourceEntry(path, new IPath[] {}, exclusionPatterns, specificOutputLocation);

Parameters:
  `path` - the absolute workspace-relative path of a source folder
  `exclusionPatterns` - the possibly empty list of exclusion patterns represented as relative paths
  `specificOutputLocation` - the specific output location for this source entry (`null` if using project default ouput location)
Returns:
  a new source includepath entry
See Also:
  `newSourceEntry(IPath, IPath[], IPath[], IPath)`

#### newSourceEntry

    public static IIncludePathEntry newSourceEntry(IPath path,
                                                   IPath[] inclusionPatterns,
                                                   IPath[] exclusionPatterns,
                                                   IPath specificOutputLocation)

Creates and returns a new includepath entry of kind `CPE_SOURCE` for the project's source folder identified by the given absolute workspace-relative path but excluding all source files with paths matching any of the given patterns, and associated with a specific output location (that is, ".class" files are not going to the project default output location).

The convenience method is fully equivalent to:

     newSourceEntry(path, new IPath[] {}, exclusionPatterns, specificOutputLocation, new IIncludePathAttribute[] {});

Parameters:
  `path` - the absolute workspace-relative path of a source folder
  `inclusionPatterns` - the possibly empty list of inclusion patterns represented as relative paths
  `exclusionPatterns` - the possibly empty list of exclusion patterns represented as relative paths
  `specificOutputLocation` - the specific output location for this source entry (`null` if using project default ouput location)
Returns:
  a new source includepath entry
See Also:
  `newSourceEntry(IPath, IPath[], IPath[], IPath, IIncludePathAttribute[])`

#### newSourceEntry

    public static IIncludePathEntry newSourceEntry(IPath path,
                                                   IPath[] inclusionPatterns,
                                                   IPath[] exclusionPatterns,
                                                   IPath specificOutputLocation,
                                                   IIncludePathAttribute[] extraAttributes)

Creates and returns a new includepath entry of kind `CPE_SOURCE` for the project's source folder identified by the given absolute workspace-relative path using the given inclusion and exclusion patterns to determine which source files are included, and the given output path to control the output location of generated files.

The source folder is referred to using an absolute path relative to the workspace root, e.g. `/Project/src`. A project's source folders are located with that project. That is, a source includepath entry specifying the path `/P1/src` is only usable for project `P1`.

The inclusion patterns determines the initial set of source files that are to be included; the exclusion patterns are then used to reduce this set. When no inclusion patterns are specified, the initial file set includes all relevent files in the resource tree rooted at the source entry's path. On the other hand, specifying one or more inclusion patterns means that all and only files matching at least one of the specified patterns are to be included. If exclusion patterns are specified, the initial set of files is then reduced by eliminating files matched by at least one of the exclusion patterns. Inclusion and exclusion patterns look like relative file paths with wildcards and are interpreted relative to the source entry's path. File patterns are case-sensitive can contain '**', '*' or '?' wildcards (see `IIncludePathEntry.getExclusionPatterns()` for the full description of their syntax and semantics). The resulting set of files are included in the corresponding package fragment root; all package fragments within the root will have children of type `IJavaScriptUnit`.

Also note that all sources/binaries inside a project are contributed as a whole through a project entry (see `JavaScriptCore.newProjectEntry`). Particular source entries cannot be selectively exported.

The `extraAttributes` list contains name/value pairs that must be persisted with this entry. If no extra attributes are provided, an empty array must be passed in.
Note that this list should not contain any duplicate name.

Parameters:
  `path` - the absolute workspace-relative path of a source folder
  `inclusionPatterns` - the possibly empty list of inclusion patterns represented as relative paths
  `exclusionPatterns` - the possibly empty list of exclusion patterns represented as relative paths
  `specificOutputLocation` - the specific output location for this source entry (`null` if using project default ouput location)
  `extraAttributes` - the possibly empty list of extra attributes to persist with this entry
Returns:
  a new source includepath entry with the given exclusion patterns
See Also:
  `IIncludePathEntry.getInclusionPatterns()`, `IIncludePathEntry.getExclusionPatterns()`, `IIncludePathEntry#getOutputLocation()`

#### newVariableEntry

    public static IIncludePathEntry newVariableEntry(IPath variablePath,
                                                     IPath variableSourceAttachmentPath,
                                                     IPath sourceAttachmentRootPath)

Creates and returns a new non-exported includepath entry of kind `CPE_VARIABLE` for the given path. This method is fully equivalent to calling `newVariableEntry(variablePath, variableSourceAttachmentPath, sourceAttachmentRootPath, new IAccessRule[0], new IIncludePathAttribute[0], false)`.

Parameters:
  `variablePath` - the path of the binary archive; first segment is the name of a includepath variable
  `variableSourceAttachmentPath` - the path of the corresponding source archive, or `null` if none; if present, the first segment is the name of a includepath variable (not necessarily the same variable as the one that begins `variablePath`)
  `sourceAttachmentRootPath` - the location of the root of the source files within the source archive or `null` if `variableSourceAttachmentPath` is also `null`
Returns:
  a new library includepath entry

#### newVariableEntry

    public static IIncludePathEntry newVariableEntry(IPath variablePath,
                                                     IPath variableSourceAttachmentPath,
                                                     IPath variableSourceAttachmentRootPath,
                                                     boolean isExported)

Creates and returns a new includepath entry of kind `CPE_VARIABLE` for the given path. This method is fully equivalent to calling `newVariableEntry(variablePath, variableSourceAttachmentPath, sourceAttachmentRootPath, new IAccessRule[0], new IIncludePathAttribute[0], isExported)`.

Parameters:
  `variablePath` - the path of the binary archive; first segment is the name of a includepath variable
  `variableSourceAttachmentPath` - the path of the corresponding source archive, or `null` if none; if present, the first segment is the name of a includepath variable (not necessarily the same variable as the one that begins `variablePath`)
  `variableSourceAttachmentRootPath` - the location of the root of the source files within the source archive or `null` if `variableSourceAttachmentPath` is also `null`
  `isExported` - indicates whether this entry is contributed to dependent projects in addition to the output location
Returns:
  a new variable includepath entry

#### newVariableEntry

    public static IIncludePathEntry newVariableEntry(IPath variablePath,
                                                     IPath variableSourceAttachmentPath,
                                                     IPath variableSourceAttachmentRootPath,
                                                     IAccessRule[] accessRules,
                                                     IIncludePathAttribute[] extraAttributes,
                                                     boolean isExported)

Creates and returns a new includepath entry of kind `CPE_VARIABLE` for the given path. The first segment of the path is the name of a includepath variable. The trailing segments of the path will be appended to resolved variable path.

A variable entry allows to express indirect references on a includepath to other projects or libraries, depending on what the includepath variable is referring.

It is possible to register an automatic initializer (`JsGlobalScopeVariableInitializer`), which will be invoked through the extension point "org.eclipse.wst.jsdt.core.JsGlobalScopeVariableInitializer". After resolution, a includepath variable entry may either correspond to a project or a library entry.

The `extraAttributes` list contains name/value pairs that must be persisted with this entry. If no extra attributes are provided, an empty array must be passed in.
Note that this list should not contain any duplicate name.

The `isExported` flag indicates whether this entry is contributed to dependent projects. If not exported, dependent projects will not see any of the classes from this entry. If exported, dependent projects will concatenate the accessible files patterns of this entry with the accessible files patterns of the projects, and they will concatenate the non accessible files patterns of this entry with the non accessible files patterns of the project.

Note that this operation does not attempt to validate includepath variables or access the resources at the given paths.

Parameters:
  `variablePath` - the path of the binary archive; first segment is the name of a includepath variable
  `variableSourceAttachmentPath` - the path of the corresponding source archive, or `null` if none; if present, the first segment is the name of a includepath variable (not necessarily the same variable as the one that begins `variablePath`)
  `variableSourceAttachmentRootPath` - the location of the root of the source files within the source archive or `null` if `variableSourceAttachmentPath` is also `null`
  `accessRules` - the possibly empty list of access rules for this entry
  `extraAttributes` - the possibly empty list of extra attributes to persist with this entry
  `isExported` - indicates whether this entry is contributed to dependent projects in addition to the output location
Returns:
  a new variable includepath entry

#### removeIncludepathVariable

    public static void removeIncludepathVariable(java.lang.String variableName,
                                                 IProgressMonitor monitor)

Removed the given includepath variable. Does nothing if no value was set for this includepath variable.

This functionality cannot be used while the resource tree is locked.

Includepath variable values are persisted locally to the workspace, and are preserved from session to session.

Parameters:
  `variableName` - the name of the includepath variable
  `monitor` - the progress monitor to report progress
See Also:
  `setIncludepathVariable(String, IPath)`

#### removeElementChangedListener

    public static void removeElementChangedListener(IElementChangedListener listener)

Removes the given element changed listener. Has no affect if an identical listener is not registered.

Parameters:
  `listener` - the listener

#### removeJavaScriptLikeExtension

    public static java.lang.String removeJavaScriptLikeExtension(java.lang.String fileName)

Removes the file extension from the given file name, if it has a JavaScript-like file extension. Otherwise the file name itself is returned. Note this removes the dot ('.') before the extension as well.

Parameters:
  `fileName` - the name of a file
Returns:
  the fileName without the JavaScript-like extension

#### removePreProcessingResourceChangedListener

    public static void removePreProcessingResourceChangedListener(IResourceChangeListener listener)

Removes the given pre-processing resource changed listener.

Has no affect if an identical listener is not registered.

Parameters:
  `listener` - the listener

#### run

    public static void run(IWorkspaceRunnable action,
                           IProgressMonitor monitor)
                    throws CoreException

Runs the given action as an atomic JavaScript model operation.

After running a method that modifies javaScript elements, registered listeners receive after-the-fact notification of what just transpired, in the form of a element changed event. This method allows clients to call a number of methods that modify javaScript elements and only have element changed event notifications reported at the end of the entire batch.

If this method is called outside the dynamic scope of another such call, this method runs the action and then reports a single element changed event describing the net effect of all changes done to javaScript elements by the action.

If this method is called in the dynamic scope of another such call, this method simply runs the action.

Parameters:
  `action` - the action to perform
  `monitor` - a progress monitor, or `null` if progress reporting and cancellation are not desired
Throws:
  `CoreException` - if the operation failed.

#### run

    public static void run(IWorkspaceRunnable action,
                           ISchedulingRule rule,
                           IProgressMonitor monitor)
                    throws CoreException

Runs the given action as an atomic JavaScript model operation.

After running a method that modifies javaScript elements, registered listeners receive after-the-fact notification of what just transpired, in the form of a element changed event. This method allows clients to call a number of methods that modify javaScript elements and only have element changed event notifications reported at the end of the entire batch.

If this method is called outside the dynamic scope of another such call, this method runs the action and then reports a single element changed event describing the net effect of all changes done to javaScript elements by the action.

If this method is called in the dynamic scope of another such call, this method simply runs the action.

The supplied scheduling rule is used to determine whether this operation can be run simultaneously with workspace changes in other threads. See `IWorkspace.run(...)` for more details.

Parameters:
  `action` - the action to perform
  `rule` - the scheduling rule to use when running this operation, or `null` if there are no scheduling restrictions for this operation.
  `monitor` - a progress monitor, or `null` if progress reporting and cancellation are not desired
Throws:
  `CoreException` - if the operation failed.

#### setJsGlobalScopeContainer

    public static void setJsGlobalScopeContainer(IPath containerPath,
                                                 IJavaScriptProject[] affectedProjects,
                                                 IJsGlobalScopeContainer[] respectiveContainers,
                                                 IProgressMonitor monitor)
                                          throws JavaScriptModelException

Bind a container reference path to some actual containers (`IJsGlobalScopeContainer`). This API must be invoked whenever changes in container need to be reflected onto the JavaModel. Containers can have distinct values in different projects, therefore this API considers a set of projects with their respective containers.

`containerPath` is the path under which these values can be referenced through container includepath entries (`IIncludePathEntry#CPE_CONTAINER`). A container path is formed by a first ID segment followed with extra segments, which can be used as additional hints for the resolution. The container ID is used to identify a `JsGlobalScopeContainerInitializer` registered on the extension point "org.eclipse.wst.jsdt.core.JsGlobalScopeContainerInitializer".

There is no assumption that each individual container value passed in argument (`respectiveContainers`) must answer the exact same path when requested `IJsGlobalScopeContainer#getPath`. Indeed, the containerPath is just an indication for resolving it to an actual container object. It can be delegated to a `JsGlobalScopeContainerInitializer`, which can be activated through the extension point "org.eclipse.wst.jsdt.core.JsGlobalScopeContainerInitializer").

In reaction to changing container values, the JavaModel will be updated to reflect the new state of the updated container. A combined JavaScript element delta will be notified to describe the corresponding includepath changes resulting from the container update. This operation is batched, and automatically eliminates unnecessary updates (new container is same as old one). This operation acquires a lock on the workspace's root.

This functionality cannot be used while the workspace is locked, since it may create/remove some resource markers.

Includepath container values are persisted locally to the workspace, but are not preserved from a session to another. It is thus highly recommended to register a `JsGlobalScopeContainerInitializer` for each referenced container (through the extension point "org.eclipse.wst.jsdt.core.JsGlobalScopeContainerInitializer").

Note: setting a container to `null` will cause it to be lazily resolved again whenever its value is required. In particular, this will cause a registered initializer to be invoked again.

Parameters:
  `containerPath` - - the name of the container reference, which is being updated
  `affectedProjects` - - the set of projects for which this container is being bound
  `respectiveContainers` - - the set of respective containers for the affected projects
  `monitor` - a monitor to report progress
Throws:
  `JavaScriptModelException`
See Also:
  `JsGlobalScopeContainerInitializer`, `getJsGlobalScopeContainer(IPath, IJavaScriptProject)`, `IJsGlobalScopeContainer`

#### setIncludepathVariable

    public static void setIncludepathVariable(java.lang.String variableName,
                                              IPath path)
                                       throws JavaScriptModelException

Deprecated. Use `setIncludepathVariable(String, IPath, IProgressMonitor)` instead
Sets the value of the given includepath variable. The path must have at least one segment.

This functionality cannot be used while the resource tree is locked.

Includepath variable values are persisted locally to the workspace, and are preserved from session to session.

Parameters:
  `variableName` - the name of the includepath variable
  `path` - the path
Throws:
  `JavaScriptModelException`
See Also:
  `getIncludepathVariable(String)`

#### setIncludepathVariable

    public static void setIncludepathVariable(java.lang.String variableName,
                                              IPath path,
                                              IProgressMonitor monitor)
                                       throws JavaScriptModelException

Sets the value of the given includepath variable. The path must not be null.

This functionality cannot be used while the resource tree is locked.

Includepath variable values are persisted locally to the workspace, and are preserved from session to session.

Updating a variable with the same value has no effect.

Parameters:
  `variableName` - the name of the includepath variable
  `path` - the path
  `monitor` - a monitor to report progress
Throws:
  `JavaScriptModelException`
See Also:
  `getIncludepathVariable(String)`

#### setIncludepathVariables

    public static void setIncludepathVariables(java.lang.String[] variableNames,
                                               IPath[] paths,
                                               IProgressMonitor monitor)
                                        throws JavaScriptModelException

Sets the values of all the given includepath variables at once. Null paths can be used to request corresponding variable removal.

A combined JavaScript element delta will be notified to describe the corresponding includepath changes resulting from the variables update. This operation is batched, and automatically eliminates unnecessary updates (new variable is same as old one). This operation acquires a lock on the workspace's root.

This functionality cannot be used while the workspace is locked, since it may create/remove some resource markers.

Includepath variable values are persisted locally to the workspace, and are preserved from session to session.

Updating a variable with the same value has no effect.

Parameters:
  `variableNames` - an array of names for the updated includepath variables
  `paths` - an array of path updates for the modified includepath variables (null meaning that the corresponding value will be removed
  `monitor` - a monitor to report progress
Throws:
  `JavaScriptModelException`
See Also:
  `getIncludepathVariable(String)`

#### setComplianceOptions

    public static void setComplianceOptions(java.lang.String compliance,
                                            java.util.Map options)

Sets the default's validator options inside the given options map according to the given compliance.

The given compliance must be one of the compliance supported by the validator. See `getDefaultOptions()` for a list of compliance values.

The list of modified options is:

- `COMPILER_CODEGEN_TARGET_PLATFORM`
- `COMPILER_SOURCE`
- `COMPILER_COMPLIANCE`
- `COMPILER_PB_ASSERT_IDENTIFIER`
- `#COMPILER_PB_ENUM_IDENTIFIER`

If the given compliance is unknown, the given map is unmodified.

Parameters:
  `compliance` - the given compliance
  `options` - the given options map

#### setOptions

    public static void setOptions(java.util.Hashtable newOptions)

Sets the current table of options. All and only the options explicitly included in the given table are remembered; all previous option settings are forgotten, including ones not explicitly mentioned.

For a complete description of the configurable options, see `getDefaultOptions`.

Parameters:
  `newOptions` - the new options (key type: `String`; value type: `String`), or `null` to reset all options to their default values
See Also:
  `getDefaultOptions()`, `for changing default settings`

#### stop

    public void stop(BundleContext context)
              throws java.lang.Exception

Throws:
  `java.lang.Exception`

#### start

    public void start(BundleContext context)
               throws java.lang.Exception

Throws:
  `java.lang.Exception`

#### getSystemPath

    public static java.lang.String getSystemPath()

#### isReadOnly

    public static boolean isReadOnly(IResource resource)

#### getDefaultClasspathExclusionPatterns

    public IPath[] getDefaultClasspathExclusionPatterns()

Returns default inclusion patterns return IPath[] array of IPath elements to exclude