<idea-plugin>
  <id>com.intellij.flex</id>
  <name>Flash/Flex</name>
  <category>Languages</category>
  <vendor>JetBrains</vendor>

  <description>
    <![CDATA[
      Provides integration with the Flex SDK and thus lets you develop content for the various Adobe runtimes. Using this plugin, you can:<br>
      - Write, analyze and refactor your ActionScript and MXML code.<br>
      - Build applications for the various platforms such as Adobe Flash Player, Adobe AIR and Adobe AIR mobile.<br>
      - Run, debug, test, package and deploy your applications.
    ]]></description>

  <depends>JavaScript</depends>
  <depends>JavaScriptDebugger</depends>
  <depends>com.intellij.modules.css.backend</depends>
  <depends>com.intellij.properties</depends>
  <depends>com.intellij.modules.idea.ultimate</depends>
  <depends optional="true" config-file="flex-maven-support.xml">org.jetbrains.idea.maven</depends>
  <depends optional="true" config-file="flex-uml-support.xml">com.intellij.diagram</depends>
  <depends optional="true" config-file="flex-ant-support.xml">AntSupport</depends>
  <depends optional="true" config-file="flex-copyright.xml">com.intellij.copyright</depends>
  <depends optional="true" config-file="flex-duplicates.xml">com.intellij.modules.duplicatesDetector</depends>

  <extensions defaultExtensionNs="com.intellij">
    <quoteHandler fileType="ActionScript" className="com.intellij.javascript.JSQuoteHandler"/>
    <lang.parserDefinition language="ECMA Script Level 4"
                           implementationClass="com.intellij.lang.javascript.dialects.ECMAL4ParserDefinition"/>
    <fileType name="ActionScript" fieldName="INSTANCE" implementationClass="com.intellij.lang.javascript.ActionScriptFileType" language="ECMA Script Level 4" extensions="as;es;js2"/>
    <moduleConfigurationEditorProvider implementation="com.intellij.lang.javascript.flex.FlexModuleConfigurationEditorProvider"/>
    <highlightingPassFactory implementation="com.intellij.lang.javascript.flex.ActionScriptUnusedImportsPassFactory"/>
    <lang.syntaxHighlighterFactory language="ECMA Script Level 4"
                                   implementationClass="com.intellij.lang.actionscript.highlighting.ECMAL4SyntaxHighlighterFactory"/>

    <compiler.buildTargetScopeProvider implementation="com.intellij.lang.javascript.flex.build.FlexBuildTargetScopeProvider"/>
    <compiler.buildTargetScopeProvider implementation="com.intellij.lang.javascript.flex.build.FlexResourceBuildTargetScopeProvider"/>
    <compileServer.plugin classpath="flex-jps.jar;flex-shared.jar"/>
    <programRunner implementation="com.intellij.lang.javascript.flex.debug.FlexDebugRunner"/>
    <programRunner implementation="com.intellij.lang.javascript.flex.run.FlexRunner"/>
    <xdebugger.breakpointType implementation="com.intellij.lang.javascript.flex.debug.FlexBreakpointType"/>
    <moduleType id="Flex" implementationClass="com.intellij.lang.javascript.flex.FlexModuleType"/>
    <xmlStructureViewBuilderProvider implementation="com.intellij.lang.javascript.flex.presentation.FlexStructureViewProvider"/>
    <referenceImporter implementation="com.intellij.lang.javascript.flex.FlexReferenceImporter"/>
    <autoImportOptionsProvider instance="com.intellij.lang.javascript.flex.ActionScriptAutoImportOptionsProvider"/>
    <sdkType implementation="com.intellij.lang.javascript.flex.sdk.FlexSdkType2"/>
    <sdkType implementation="com.intellij.lang.javascript.flex.sdk.FlexmojosSdkType"/>
    <library.type implementation="com.intellij.lang.javascript.flex.library.FlexLibraryType"/>
    <packaging.sourceItemFilter implementation="com.intellij.lang.javascript.flex.artifacts.FlashPackagingSourceItemFilter"/>
    <packaging.sourceItemProvider implementation="com.intellij.lang.javascript.flex.artifacts.FlashPackagingSourceItemsProvider"/>
    <xml.schemaProvider implementation="com.intellij.javascript.flex.mxml.schema.FlexSchemaHandler"/>
    <xml.xmlExtension implementation="com.intellij.javascript.flex.mxml.schema.FlexXmlExtension"/>
    <renamePsiElementProcessor implementation="com.intellij.lang.javascript.refactoring.ActionScriptQualifiedElementRenameProcessor"/>
    <renamePsiElementProcessor implementation="com.intellij.lang.javascript.refactoring.ActionScriptPropertyFunctionRenameProcessor"/>
    <renamePsiElementProcessor implementation="com.intellij.javascript.flex.FlexRenameHandler"/>
    <updateAddedFileProcessor implementation="com.intellij.javascript.flex.FlexUpdateAddedFileHandler"/>
    <moveFileHandler implementation="com.intellij.javascript.flex.FlexMoveFileHandler"/>
    <refactoring.moveHandler implementation="com.intellij.javascript.flex.refactoring.moveClass.FlexMoveFileRefactoringHandler"
                             order="before moveFileOrDir, before moveJavaFileOrDir"/>
    <refactoring.moveHandler implementation="com.intellij.javascript.flex.refactoring.moveMembers.ActionScriptMoveMembersHandler"/>
    <fileType name="SWF" implementationClass="com.intellij.javascript.flex.SwfFileType" fieldName="SWF_FILE_TYPE" extensions="swf"/>
    <fileType name="MXML" implementationClass="com.intellij.lang.javascript.flex.MxmlFileType" fieldName="MXML" extensions="fxg;mxml" language="Mxml"/>
    <lang.parserDefinition language="Mxml" implementationClass="com.intellij.javascript.flex.MxmlParserDefinition"/>
    <todoIndexer filetype="MXML" implementationClass="com.intellij.javascript.flex.MxmlTodoIndexer"/>
    <standardResourceProvider implementation="com.intellij.javascript.flex.FlexApplicationComponent"/>
    <metaDataContributor implementation="com.intellij.javascript.flex.FlexApplicationComponent"/>

    <fileBasedIndex implementation="com.intellij.javascript.flex.mxml.FlexXmlBackedSuperClassesIndex"/>
    <fileBasedIndex implementation="com.intellij.javascript.flex.mxml.FlexXmlBackedImplementedInterfacesIndex"/>
    <fileBasedIndex implementation="com.intellij.javascript.flex.mxml.FlexXmlBackedMembersIndex"/>
    <fileBasedIndex implementation="com.intellij.javascript.flex.css.FlexStyleIndex"/>
    <additionalLibraryRootsProvider implementation="com.intellij.javascript.flex.FlexCompositeSdkRootProvider"/>

    <lang.namesValidator language="ECMA Script Level 4"
                         implementationClass="com.intellij.lang.javascript.refactoring.ECMAL4NamesValidator"/>
    <lang.findUsagesProvider language="ECMA Script Level 4"
                             implementationClass="com.intellij.lang.actionscript.ActionScriptFindUsagesProvider"/>
    <fileType.fileViewProviderFactory filetype="SWF"
                                      implementationClass="com.intellij.javascript.flex.compiled.SwfFileViewProviderFactory"/>
    <filetype.decompiler filetype="SWF" implementationClass="com.intellij.javascript.flex.compiled.SwfFileDecompiler"/>
    <filetype.stubBuilder filetype="SWF" implementationClass="com.intellij.javascript.flex.compiled.SwfFileStubBuilder"/>
    <syntaxHighlighter key="SWF" factoryClass="com.intellij.javascript.flex.compiled.SwfSyntaxHighlighterProvider"/>
    <codeInsight.lineMarkerProvider language="Mxml"
                                    implementationClass="com.intellij.javascript.flex.mxml.XmlBackedClassLineMarkerProvider"/>
    <lang.parserDefinition language="Decompiled SWF"
                           implementationClass="com.intellij.javascript.flex.compiled.DecompiledSwfParserDefinition"/>
    <lang.documentationProvider language="ECMA Script Level 4" implementationClass="com.intellij.javascript.flex.documentation.FlexDocumentationProvider"/>
    <lang.rearranger language="ECMA Script Level 4" implementationClass="com.intellij.lang.actionscript.arrangement.ActionScriptRearranger"/>

    <psi.referenceContributor language="XML" implementation="com.intellij.javascript.flex.FlexConfigXmlReferenceContributor"/>
    <psi.referenceContributor language="CSS" implementation="com.intellij.javascript.flex.FlexCssReferenceContributor"/>
    <psi.referenceContributor language="ECMA Script Level 4" implementation="com.intellij.javascript.flex.ActionScriptReferenceContributor"/>
    <psi.referenceContributor language="Mxml" implementation="com.intellij.javascript.flex.MxmlReferenceContributor"/>
    <problemFileHighlightFilter implementation="com.intellij.lang.actionscript.highlighting.ActionScriptProblemFileHighlightFilter"/>

    <psi.fileReferenceHelper implementation="com.intellij.lang.javascript.flex.FlexFileReferenceHelper"/>
    <lookup.charFilter implementation="com.intellij.lang.javascript.flex.ActionScriptCharFilter"/>
    <codeInsight.overrideMethod language="Mxml"
                                implementationClass="com.intellij.lang.javascript.generation.JavaScriptOverrideMethodsHandler"/>
    <codeInsight.implementMethod language="Mxml"
                                 implementationClass="com.intellij.lang.javascript.generation.JavaScriptImplementMethodsHandlerForFlex"/>
    <codeInsight.implementMethod language="JavaScript"
                                 implementationClass="com.intellij.lang.javascript.generation.JavaScriptImplementMethodsHandlerForFlex"/>
    <codeInsight.delegateMethods language="Mxml"
                                 implementationClass="com.intellij.lang.javascript.generation.JavaScriptGenerateDelegatesHandler"/>
    <projectImportBuilder implementation="com.intellij.lang.javascript.flex.flashbuilder.FlashBuilderImporter"/>
    <projectImportProvider implementation="com.intellij.lang.javascript.flex.flashbuilder.FlashBuilderImportProvider"/>
    <projectOpenProcessor id="FlashBuilderOpenProcessor"
                          implementation="com.intellij.lang.javascript.flex.flashbuilder.FlashBuilderOpenProcessor"
                          order="before EclipseProjectOpenProcessor"/>
    <defaultTemplatePropertiesProvider implementation="com.intellij.lang.javascript.ActionScriptAccessModifierTemplatePropertyProvider"/>
    <css.elementDescriptorProvider implementation="com.intellij.javascript.flex.css.FlexCssElementDescriptorProvider" order="first"/>
    <css.classOrIdUsagesProvider implementation="com.intellij.javascript.flex.css.FlexClassOrIdUsagesProvider"/>
    <css.dialect id="FlexCSSDialect" order="before JavaFxCSSDialect" implementation="com.intellij.javascript.flex.css.FlexCSSDialect"/>
    <projectConfigurable bundle="messages.FlexBundle"
                         key="configurable.FlexCompilerProjectConfigurable.display.name"
                         instance="com.intellij.lang.javascript.flex.build.FlexCompilerProjectConfigurable" id="flex.compiler"
                         parentId="project.propCompiler"/>

    <importFilteringRule implementation="com.intellij.lang.javascript.flex.ImportFilteringRule"/>
    <enterHandlerDelegate implementation="com.intellij.lang.javascript.flex.MxmlEnterHandler"/>
    <iconProvider implementation="com.intellij.lang.javascript.flex.presentation.FlexIconProvider"/>
    <treeStructureProvider implementation="com.intellij.lang.javascript.flex.presentation.FlexTreeStructureProvider"/>
    <projectService serviceImplementation="com.intellij.lang.javascript.flex.build.FlexCompilerProjectConfiguration"/>
    <projectService serviceImplementation="com.intellij.lang.javascript.flex.actions.airpackage.AirPackageProjectParameters"/>
    <consoleFilterProvider implementation="com.intellij.lang.javascript.flex.FlexStackTraceFilterProvider"/>
    <gotoSymbolContributor implementation="com.intellij.javascript.flex.mxml.FlexXmlBackedSymbolContributor"/>
    <annotator language="Mxml" implementationClass="com.intellij.javascript.flex.mxml.FlexMxmlColorAnnotator"/>
    <annotator language="CSS" implementationClass="com.intellij.javascript.flex.css.FlexCssAnnotator"/>
    <multiHostInjector implementation="com.intellij.javascript.flex.mxml.MxmlLanguageInjector"/>

    <internalFileTemplate name="ActionScript Class"/>
    <internalFileTemplate name="ActionScript Class with Supers"/>
    <internalFileTemplate name="ActionScript Interface"/>
    <internalFileTemplate name="Flex 3 Component"/>
    <internalFileTemplate name="Flex 4 Component"/>
    <liveTemplateContext contextId="ACTION_SCRIPT" implementation="com.intellij.lang.javascript.ActionScriptCodeContextType"/>
    <liveTemplateContext contextId="MXML" implementation="com.intellij.lang.javascript.flex.MxmlTemplateContextType"/>
    <liveTemplateContext contextId="AS_STATEMENT" baseContextId="ACTION_SCRIPT" implementation="com.intellij.lang.javascript.ActionScriptStatementContextType"/>
    <defaultLiveTemplates file="liveTemplates/actionscript_iterations.xml"/>
    <defaultLiveTemplates file="liveTemplates/actionscript_miscellaneous.xml"/>
    <liveTemplateOptionalProcessor implementation="com.intellij.lang.javascript.FlexShortenFQNamesProcessor"/>
    <lang.refactoringSupport language="Mxml" implementationClass="com.intellij.lang.javascript.flex.MxmlRefactoringSupportProvider"/>
    <lang.refactoringSupport language="JavaScript"
                             implementationClass="com.intellij.lang.javascript.flex.ActionScriptRefactoringSupportProvider"
                             order="before JavascriptRefactoringSupportProvider"/>
    <implicitUsageProvider implementation="com.intellij.lang.javascript.flex.FlexImplicitUsageProvider"/>
    <cantBeStatic implementation="com.intellij.lang.javascript.flex.FlexImplicitUsageProvider"/>
    <refactoring.elementListenerProvider implementation="com.intellij.lang.javascript.flex.FlexRefactoringListenerProvider"/>
    <langCodeStyleSettingsProvider implementation="com.intellij.lang.javascript.formatter.ActionScriptLanguageCodeStyleSettingsProvider"/>
    <typedHandler implementation="com.intellij.lang.javascript.FlexMxmlGtTypedHandler" order="before xmlGt"/>
    <typedHandler implementation="com.intellij.lang.javascript.FlexMxmlTypedHandler" order="before xmlAuto"/>
    <treeStructureProvider implementation="com.intellij.lang.javascript.flex.presentation.SwfProjectViewStructureProvider"/>
    <testFinder implementation="com.intellij.lang.javascript.flex.flexunit.FlexUnitTestFinder"/>
    <testCreator language="JavaScript" implementationClass="com.intellij.lang.javascript.flex.flexunit.FlexUnitTestCreator"/>
    <testCreator language="Mxml" implementationClass="com.intellij.lang.javascript.flex.flexunit.FlexUnitTestCreator"/>
    <colorSettingsPage implementation="com.intellij.lang.javascript.colors.page.ActionScriptColorsAndFontsPage"/>
    <projectStructureDetector implementation="com.intellij.lang.javascript.flex.projectStructure.detection.FlexProjectStructureDetector"/>
    <configurationType implementation="com.intellij.lang.javascript.flex.flexunit.FlexUnitRunConfigurationType"/>
    <runConfigurationProducer implementation="com.intellij.lang.javascript.flex.flexunit.FlexUnitRuntimeConfigurationProducer"/>
    <configurationType implementation="com.intellij.lang.javascript.flex.run.FlashRunConfigurationType"/>
    <runConfigurationProducer implementation="com.intellij.lang.javascript.flex.run.FlashRunConfigurationProducer"/>
    <configurationType implementation="com.intellij.lang.javascript.flex.run.RemoteFlashRunConfigurationType"/>

    <configuration.ModuleStructureExtension id="FlexBuildConfigurations"
                                            implementation="com.intellij.lang.javascript.flex.projectStructure.FlexBuildConfigurationsExtension"/>
    <moduleService serviceInterface="com.intellij.lang.javascript.flex.projectStructure.model.FlexBuildConfigurationManager"
                   serviceImplementation="com.intellij.lang.javascript.flex.projectStructure.model.impl.FlexBuildConfigurationManagerImpl"/>
    <projectService serviceInterface="com.intellij.lang.javascript.flex.projectStructure.FlexProjectLevelCompilerOptionsHolder"
                    serviceImplementation="com.intellij.lang.javascript.flex.projectStructure.model.impl.FlexProjectLevelCompilerOptionsHolderImpl"/>
    <orderEnumerationHandlerFactory
        implementation="com.intellij.lang.javascript.flex.projectStructure.FlexOrderEnumerationHandler$FactoryImpl"/>
    <sdkFinder implementation="com.intellij.lang.javascript.flex.projectStructure.FlexCompositeSdk$SdkFinderImpl"/>
    <applicationService serviceImplementation="com.intellij.lang.javascript.flex.projectStructure.FlexCompositeSdkManager"/>

    <projectStructureValidator implementation="com.intellij.lang.javascript.flex.projectStructure.ui.FlexProjectStructureValidator"/>

    <moduleRendererFactory implementation="com.intellij.lang.javascript.flex.FlexModuleRendererFactory"/>
    <treeStructureProvider
        implementation="com.intellij.lang.javascript.flex.projectStructure.ui.FlexCompositeSdkProjectViewStructureProvider"/>

    <resolveScopeProvider implementation="com.intellij.lang.javascript.flex.ActionScriptResolveScopeProvider"/>

    <stubElementTypeHolder class="com.intellij.lang.actionscript.ActionScriptSpecificStubElementTypes" externalIdPrefix="JS:"/>
    <stubElementRegistryExtension implementation="com.intellij.lang.actionscript.stubs.ActionScriptStubRegistryExtension"/>

    <indexedRootsProvider implementation="com.intellij.javascript.flex.css.FlexStylesIndexableSetContributor"/>

    <lang.importOptimizer language="ECMA Script Level 4" implementationClass="com.intellij.lang.javascript.flex.ECMAScriptImportOptimizer"/>
    <lang.importOptimizer language="Mxml" implementationClass="com.intellij.lang.javascript.flex.ECMAScriptImportOptimizer"/>

    <applicationService serviceInterface="com.intellij.lang.javascript.flex.ActionScriptExtensions"
                        serviceImplementation="com.intellij.javascript.flex.ActionScriptExtensionsImpl"
                        overrides="true"/>
    <applicationService serviceInterface="com.intellij.lang.javascript.flex.ActionScriptPsiExtensions"
                        serviceImplementation="com.intellij.javascript.flex.ActionScriptPsiExtensionsImpl"
                        overrides="true"/>

    <localInspection language="ECMA Script Level 4" shortName="FlexUnitClassInProductSourceInspection"
                     bundle="messages.FlexBundle"
                     key="flexunit.inspection.testclassinproductsource.displayname" groupKey="flexunit.inspections.group"
                     enabledByDefault="true" level="WARNING"
                     implementationClass="com.intellij.lang.javascript.flex.flexunit.inspections.FlexUnitClassInProductSourceInspection"/>
    <localInspection language="ECMA Script Level 4" shortName="FlexUnitClassVisibilityInspection"
                     bundle="messages.FlexBundle"
                     key="flexunit.inspection.testclassvisibility.displayname" groupKey="flexunit.inspections.group" enabledByDefault="true"
                     level="WARNING"
                     implementationClass="com.intellij.lang.javascript.flex.flexunit.inspections.FlexUnitClassVisibilityInspection"/>
    <localInspection language="ECMA Script Level 4" shortName="FlexUnitMethodVisibilityInspection"
                     bundle="messages.FlexBundle"
                     key="flexunit.inspection.testmethodvisibility.displayname" groupKey="flexunit.inspections.group"
                     enabledByDefault="true" level="WARNING"
                     implementationClass="com.intellij.lang.javascript.flex.flexunit.inspections.FlexUnitMethodVisibilityInspection"/>
    <localInspection language="ECMA Script Level 4" shortName="FlexUnitMethodIsStaticInspection"
                     bundle="messages.FlexBundle"
                     key="flexunit.inspection.testmethodisstatic.displayname" groupKey="flexunit.inspections.group" enabledByDefault="true"
                     level="WARNING"
                     implementationClass="com.intellij.lang.javascript.flex.flexunit.inspections.FlexUnitMethodIsStaticInspection"/>
    <localInspection language="ECMA Script Level 4" shortName="FlexUnitMethodIsPropertyInspection"
                     bundle="messages.FlexBundle"
                     key="flexunit.inspection.testmethodisproperty.displayname" groupKey="flexunit.inspections.group"
                     enabledByDefault="true" level="WARNING"
                     implementationClass="com.intellij.lang.javascript.flex.flexunit.inspections.FlexUnitMethodIsPropertyInspection"/>
    <localInspection language="ECMA Script Level 4" shortName="FlexUnitMethodHasParametersInspection"
                     bundle="messages.FlexBundle"
                     key="flexunit.inspection.testmethodhasparameters.displayname" groupKey="flexunit.inspections.group"
                     enabledByDefault="true" level="WARNING"
                     implementationClass="com.intellij.lang.javascript.flex.flexunit.inspections.FlexUnitMethodHasParametersInspection"/>
    <localInspection language="ECMA Script Level 4" shortName="FlexUnitMethodReturnTypeInspection"
                     bundle="messages.FlexBundle"
                     key="flexunit.inspection.testmethodreturntype.displayname" groupKey="flexunit.inspections.group"
                     enabledByDefault="true" level="WARNING"
                     implementationClass="com.intellij.lang.javascript.flex.flexunit.inspections.FlexUnitMethodReturnTypeInspection"/>
    <localInspection language="ECMA Script Level 4" shortName="FlexUnitMixedAPIInspection"
                     bundle="messages.FlexBundle"
                     key="flexunit.inspection.mixedapi.displayname" groupKey="flexunit.inspections.group" enabledByDefault="true"
                     level="WARNING"
                     implementationClass="com.intellij.lang.javascript.flex.flexunit.inspections.FlexUnitMixedAPIInspection"/>
    <localInspection language="ECMA Script Level 4" shortName="FlexUnitClassWithNoTestsInspection"
                     bundle="messages.FlexBundle"
                     key="flexunit.inspection.testclasswithnotests.displayname" groupKey="flexunit.inspections.group"
                     enabledByDefault="true" level="WARNING"
                     implementationClass="com.intellij.lang.javascript.flex.flexunit.inspections.FlexUnitClassWithNoTestsInspection"/>
    <localInspection language="ECMA Script Level 4" shortName="FlexUnitMethodInSuiteInspection"
                     bundle="messages.FlexBundle"
                     key="flexunit.inspection.testmethodinsuite.displayname" groupKey="flexunit.inspections.group" enabledByDefault="true"
                     level="WARNING"
                     implementationClass="com.intellij.lang.javascript.flex.flexunit.inspections.FlexUnitMethodInSuiteInspection"/>
    <localInspection language="ECMA Script Level 4" shortName="FlexUnitEmptySuiteInspection"
                     bundle="messages.FlexBundle"
                     key="flexunit.inspection.emptysuite.displayname" groupKey="flexunit.inspections.group" enabledByDefault="true"
                     level="WARNING"
                     implementationClass="com.intellij.lang.javascript.flex.flexunit.inspections.FlexUnitEmptySuiteInspection"/>
    <localInspection language="ECMA Script Level 4" shortName="FlexUnitSuiteWithNoRunnerInspection"
                     bundle="messages.FlexBundle"
                     key="flexunit.inspection.suitewithnorunner.displayname" groupKey="flexunit.inspections.group" enabledByDefault="true"
                     level="WARNING"
                     implementationClass="com.intellij.lang.javascript.flex.flexunit.inspections.FlexUnitSuiteWithNoRunnerInspection"/>

    <localInspection language="ECMA Script Level 4" groupPath="JavaScript and TypeScript" shortName="JSUntypedDeclaration"
                     bundle="messages.FlexBundle"
                     key="js.untyped.declaration.inspection.name" groupKey="js.actionscript.specific.group.name" enabledByDefault="true"
                     level="WARNING" implementationClass="com.intellij.lang.javascript.inspections.actionscript.JSUntypedDeclarationInspection"/>

    <localInspection language="ECMA Script Level 4" groupPath="JavaScript and TypeScript" shortName="JSImplicitlyInternalDeclaration"
                     bundle="messages.FlexBundle"
                     key="js.implicitly.internal.declaration.inspection.name" groupKey="js.actionscript.specific.group.name" enabledByDefault="true"
                     level="WARNING"
                     implementationClass="com.intellij.lang.javascript.inspections.actionscript.JSImplicitlyInternalDeclarationInspection"/>
    <localInspection language="ECMA Script Level 4" groupPath="JavaScript and TypeScript" shortName="JSFieldCanBeLocal"  key="js.field.can.be.local.name"
                     bundle="messages.FlexBundle"
                     groupKey="js.actionscript.specific.group.name" enabledByDefault="true" level="WARNING"
                     implementationClass="com.intellij.lang.javascript.inspections.actionscript.JSFieldCanBeLocalInspection"/>

    <intentionAction>
      <className>com.intellij.lang.javascript.intentions.CreateJSSubclassIntention</className>
      <category>ActionScript</category>
    </intentionAction>
    <intentionAction>
      <className>com.intellij.lang.javascript.intentions.CreateEventHandlerIntention</className>
      <category>ActionScript</category>
    </intentionAction>
    <intentionAction>
      <className>com.intellij.lang.javascript.intentions.CreateGetterIntention</className>
      <category>ActionScript</category>
    </intentionAction>
    <intentionAction>
      <className>com.intellij.lang.javascript.intentions.CreateSetterIntention</className>
      <category>ActionScript</category>
    </intentionAction>
    <intentionAction>
      <className>com.intellij.lang.javascript.intentions.CreateGetterAndSetterIntention</className>
      <category>ActionScript</category>
    </intentionAction>

    <xml.undefinedElementFixProvider implementation="com.intellij.javascript.flex.mxml.schema.FlexUndefinedElementFixProvider"/>
    <completion.contributor language="ECMA Script Level 4" id="ActionScriptMethodsCompletionContributor" order="before JSPatternBasedCompletionContributor" implementationClass="com.intellij.lang.javascript.flex.completion.ActionScriptMethodsCompletionContributor"/>
    <completion.contributor language="XML" implementationClass="com.intellij.javascript.flex.completion.FlexTextReferenceCompletionProvider"
                            id="FlexTextReferenceCompletionProvider"
                            order="after JSCompletionContributor"/>

    <notificationGroup id="AIR Packaging" displayType="BALLOON" bundle="messages.FlexBundle" key="notification.group.air.packaging"/>
    <notificationGroup id="Flash app not compiled before launch" displayType="TOOL_WINDOW" toolWindowId="Run" bundle="messages.FlexBundle" key="check.flash.app.compiled.before.launch.notification.group" isLogByDefault="false"/>
    <notificationGroup id="Flash Compiler" displayType="BALLOON" bundle="messages.FlexBundle" key="notification.group.flash.compiler"/>
    <notificationGroup id="Debugger" displayType="BALLOON" bundle="messages.FlexBundle" key="notification.group.debugger"/>
    <workspaceFileIndexContributorEnforcer implementation="com.intellij.lang.javascript.flex.sdk.FlexSdkWorkspaceFileIndexContributorEnforcer"/>
  </extensions>

  <extensions defaultExtensionNs="JavaScript">
    <resolveHelper implementation="com.intellij.javascript.flex.resolve.FlexResolveHelper"/>
    <completionPlaceFilter order="before asCommon" implementation="com.intellij.javascript.flex.completion.ActionScriptReferenceListFilterProvider" />
    <completionPlaceFilter id="asCommon" implementation="com.intellij.javascript.flex.completion.ActionScriptCompletionPlaceFilterProvider" />
    <classInheritorsProvider implementation="com.intellij.javascript.flex.mxml.XmlBackedClassInheritorsProvider"/>
    <elementScopeProvider implementation="com.intellij.lang.javascript.flex.ActionScriptResolveScopeProvider"/>
    <xmlBackedClassProvider implementation="com.intellij.javascript.flex.mxml.MxmlJSClassProvider"/>
    <smartCompletionContributor language="ECMA Script Level 4" implementationClass="com.intellij.lang.javascript.flex.completion.ActionScriptSmartCompletionContributor"/>
    <dialectSpecificHandlersFactory language="ECMA Script Level 4" implementationClass="com.intellij.javascript.flex.ActionScriptSpecificHandlersFactory"/>
    <handlersFactory language="ECMA Script Level 4" implementationClass="com.intellij.javascript.flex.ActionScriptHandlersFactory"/>
    <commonHandlersFactory language="ECMA Script Level 4" implementationClass="com.intellij.javascript.flex.ActionScriptCommonHandlersFactory"/>
    <JSImplicitElementsIndexFileTypeProvider implementation="com.intellij.javascript.flex.MxmlJSImplicitElementsIndexFileTypeProvider"/>
    <analysisHandlersFactory language="ECMA Script Level 4" implementationClass="com.intellij.lang.javascript.inspections.actionscript.ActionScriptAnalysisHandlersFactory"/>
    <highlightingHandlersFactory language="ECMA Script Level 4" implementationClass="com.intellij.lang.javascript.inspections.actionscript.ActionScriptHighlightingHandlersFactory"/>
    <predefinedLibraryProvider implementation="com.intellij.lang.javascript.flex.library.ActionScriptLibraryProvider"/>
  </extensions>

  <extensionPoints>
    <extensionPoint name="breakpoint.type.provider" interface="com.intellij.lang.javascript.flex.debug.FlexBreakpointsHandler$BreakpointTypeProvider"/>
  </extensionPoints>

  <projectListeners>
    <listener class="com.intellij.javascript.flex.mxml.schema.CodeContextRootsChangedListener" topic="com.intellij.openapi.roots.ModuleRootListener"/>
  </projectListeners>

  <project-components>
    <component>
      <implementation-class>com.intellij.lang.javascript.flex.build.FlexCompilerHandler</implementation-class>
    </component>
  </project-components>

  <actions>
    <action id="TalkToFdb.Flex.Debug" class="com.intellij.lang.javascript.flex.debug.SendCommandToDebuggerAction"
            text="Send Commands To Flex Debugger">
      <add-to-group anchor="last" group-id="RunMenu"/>
    </action>

    <action id="Generate.TestMethod.Actionscript" class="com.intellij.lang.javascript.generation.JSGenerateTestMethodAction"
            text="Test Method">
      <add-to-group anchor="first" group-id="GenerateGroup"/>
    </action>
    <!--suppress PluginXmlCapitalization -->
    <action id="Generate.SetUp.Actionscript" class="com.intellij.lang.javascript.generation.JSGenerateSetUpMethodAction"
            text="setUp()">
      <add-to-group anchor="after" relative-to-action="Generate.TestMethod.Actionscript" group-id="GenerateGroup"/>
    </action>
    <!--suppress PluginXmlCapitalization -->
    <action id="Generate.TearDown.Actionscript" class="com.intellij.lang.javascript.generation.JSGenerateTearDownMethodAction"
            text="tearDown()">
      <add-to-group anchor="after" relative-to-action="Generate.SetUp.Actionscript" group-id="GenerateGroup"/>
    </action>
    <action id="Generate.EventHandler.Actionscript" class="com.intellij.lang.javascript.generation.JavaScriptGenerateEventHandlerAction"
            text="Event Handler">
      <add-to-group anchor="after" relative-to-action="Generate.GetSetAccessor.JavaScript" group-id="GenerateGroup"/>
    </action>
    <!--suppress PluginXmlCapitalization -->
    <action id="Generate.ToString.Actionscript" class="com.intellij.lang.javascript.generation.JavaScriptGenerateToStringAction"
            text="toString()">
      <add-to-group anchor="after" relative-to-action="Generate.EventHandler.Actionscript" group-id="GenerateGroup"/>
    </action>
    <action id="Flex.NewActionScriptClass" class="com.intellij.lang.javascript.flex.actions.newfile.NewActionScriptClassAction"
            text="ActionScript Class" description="Create new ActionScript class" icon="JavaScriptPsiIcons.Classes.ActionScriptClass">
      <add-to-group group-id="NewGroup" anchor="after" relative-to-action="NewGroup1"/>
    </action>
    <action id="Flex.NewFlexComponent" class="com.intellij.lang.javascript.flex.actions.newfile.NewFlexComponentAction"
            text="MXML Component" description="Create new MXML component" icon="JavaScriptPsiIcons.Classes.XmlBackedClass">
      <add-to-group group-id="NewGroup" anchor="after" relative-to-action="Flex.NewActionScriptClass"/>
    </action>
    <!--suppress PluginXmlCapitalization -->
    <action id="Flex.Debugger.FilterSwfLoadUnloadMessages" class="com.intellij.lang.javascript.flex.debug.FilterSwfLoadUnloadMessagesAction"
            text="Filter [SWF] and [UnloadSWF] messages" icon="AllIcons.General.Filter"
            description="Use this toggle button to choose whether you want [SWF] and [UnloadSWF] messages to be shown in Flex debug console. Note that toggling the button doesn't change current console content, filter is applied only to new messages that will appear.">
    </action>
    <action id="ChooseActiveBuildConfiguration" text="Active Flash Build Configuration..."
            description="Active build configuration is used for source code highlighting and completion in current module"
            class="com.intellij.lang.javascript.flex.projectStructure.ui.ChooseActiveBuildConfigurationAction">
      <add-to-group group-id="EditorLangPopupMenu" anchor="last"/>
    </action>
    <group>
      <action id="PackageAIR" text="Package AIR Application..."
              description="Create AIR mobile or desktop-targeted package (*.apk, *.ipa, *.air)"
              class="com.intellij.lang.javascript.flex.actions.airpackage.AirPackageAction">
      </action>
      <separator/>
      <add-to-group group-id="BuildMenu" anchor="before" relative-to-action="CompileProject"/>
    </group>
    <action id="AddAsSwcLib" class="com.intellij.lang.javascript.flex.actions.addAsLib.AddAsSwcLibAction" text="Add as SWC Library...">
      <add-to-group group-id="ProjectViewPopupMenuSettingsGroup" relative-to-action="MarkRootGroup" anchor="after"/>
    </action>

    <!--
    <action id="CompileCSSToSWF" text="Compile CSS to SWF..." popup="true"
            description="Compile CSS file fo SWF to be used as a runtime style sheet for a Flash application"
            class="com.intellij.lang.javascript.flex.actions.runtimecss.CSSToSWFAction">
      <add-to-group group-id="ProjectViewPopupMenuSettingsGroup" anchor="before" relative-to-action="MakeModule"/>
    </action>
    -->
  </actions>
</idea-plugin>
