<idea-plugin>
  <id>CFML Support</id>
  <name>CFML</name>
  <category>Template Languages</category>
  <description>
    <![CDATA[
    Adds support for ColdFusion Markup Language (CFML).
    <ul><li>Provides coding assistance, navigation and search for CFML files</li>
    <li>Helps to deploy applications to the ColdFusion server with a dedicated run/debug configuration</li></ul>

Requires the <a href="https://www.adobe.com/products/coldfusion-family.html">ColdFusion server</a> and configured path mapping between local folders with your application and corresponding directories on the server.
To configure path mappings, open the <b>Settings / Preferences</b> dialog and select <b>Languages & Frameworks | ColdFusion</b>.
      ]]>
  </description>
  <vendor>JetBrains</vendor>
  <resource-bundle>messages.CfmlBundle</resource-bundle>

  <depends>com.intellij.java</depends>
  <depends>com.intellij.modules.ultimate</depends>
  <depends>com.intellij.modules.idea.ultimate</depends>
  <!--todo intellij.javaee.web.coverage module dependency-->

  <extensions defaultExtensionNs="com.intellij">
    <psi.referenceContributor language="CFML"
                              implementation="com.intellij.coldFusion.UI.editorActions.completionProviders.CfmlReferenceContributor"/>
    <programRunner implementation="com.intellij.coldFusion.UI.runner.CfmlRunner"/>
    <configurationType implementation="com.intellij.coldFusion.UI.runner.CfmlRunConfigurationType"/>
    <runConfigurationProducer implementation="com.intellij.coldFusion.UI.runner.CfmlRunConfigurationProducer" order="before JavaScriptDebug"/>
    <localInspection language="CFML" shortName="CfmlReferenceInspection" bundle="messages.CfmlBundle" key="cfml.references.inspection"
                     groupKey="cfml.inspections.group" enabledByDefault="true" level="WARNING"
                     implementationClass="com.intellij.coldFusion.UI.inspections.CfmlReferenceInspection"/>
    <localInspection language="CFML" shortName="CfmlFileReference" bundle="messages.CfmlBundle" key="cfml.file.references.inspection"
                     groupKey="cfml.inspections.group" enabledByDefault="true" level="WARNING"
                     implementationClass="com.intellij.coldFusion.UI.inspections.CfmlFileReferenceInspection"/>
    <lang.psiStructureViewFactory language="CFML"
                                  implementationClass="com.intellij.coldFusion.UI.editorActions.structureView.CfmlStructureViewProvider"/>
    <typedHandler implementation="com.intellij.coldFusion.UI.editorActions.typedHandlers.CfmlTypedHandler" order="first"/>/>
    <backspaceHandlerDelegate
        implementation="com.intellij.coldFusion.UI.editorActions.typedHandlers.CfmlBackspaceHandler"/>
    <quoteHandler fileType="CFSCRIPT"
                  className="com.intellij.coldFusion.UI.editorActions.matchers.CfmlQuoteHandler"/>
    <quoteHandler fileType="CFML" className="com.intellij.coldFusion.UI.editorActions.matchers.CfmlQuoteHandler"/>
    <braceMatcher filetype="CFML"
                  implementationClass="com.intellij.coldFusion.UI.editorActions.matchers.CfmlBraceMatcher"/>

    <lang.commenter language="CFML"
                    implementationClass="com.intellij.coldFusion.UI.editorActions.typedHandlers.CfmlCommenter"/>

    <colorSettingsPage implementation="com.intellij.coldFusion.UI.highlighting.CfmlColorSettingPage"/>
    <lang.fileViewProviderFactory language="CFML"
                                  implementationClass="com.intellij.coldFusion.model.files.CfmlFileViewProviderFactory"/>
    <lang.syntaxHighlighterFactory language="CFML"
                                   implementationClass="com.intellij.coldFusion.UI.highlighting.CfmlSyntaxHighlighterFactory"/>
    <indexPatternBuilder implementation="com.intellij.coldFusion.model.psi.CfmlIndexPatternBuilder"/>
    <completion.contributor language="CFML" order="before javaClassReference"
                            implementationClass="com.intellij.coldFusion.UI.editorActions.completionProviders.CfmlCompletionContributor"/>
    <completion.contributor language="XML" order="before javaClassReference"
                            implementationClass="com.intellij.coldFusion.UI.editorActions.completionProviders.CfmlCompletionContributor"/>
    <highlightErrorFilter implementation="com.intellij.coldFusion.model.CfmlErrorFilter"/>
    <lang.elementManipulator forClass="com.intellij.coldFusion.model.psi.CfmlCompositeElement"
                             implementationClass="com.intellij.coldFusion.model.psi.CfmlAttributeValueManipulator"/>
    <lang.parserDefinition language="CFML"
                           implementationClass="com.intellij.coldFusion.model.parsers.CfmlParserDefinition"/>
    <lang.formatter language="CFML" implementationClass="com.intellij.coldFusion.model.formatter.CfmlFormattingModelBuilder"/>
    <lang.documentationProvider language="CFML"
                                implementationClass="com.intellij.coldFusion.UI.editorActions.CfmlDocumentProvider"/>
    <treeStructureProvider implementation="com.intellij.coldFusion.UI.editorActions.CfmlScriptNodeSuppressor"/>
    <fileType name="CFML" extensions="cfc;cfm;cfml" fieldName="INSTANCE" language="CFML" implementationClass="com.intellij.coldFusion.model.files.CfmlFileType"/>
    <enterHandlerDelegate implementation="com.intellij.coldFusion.UI.editorActions.typedHandlers.CfmlEnterHandler"/>
    <breadcrumbsInfoProvider implementation="com.intellij.coldFusion.UI.CfmlBreadcrumbsInfoProvider"/>
    <lang.implementationTextSelectioner language="CFML"
                                        implementationClass="com.intellij.coldFusion.UI.editorActions.CfmlImplementationTextSelectioner"/>
    <lang.findUsagesProvider language="CFML"
                             implementationClass="com.intellij.coldFusion.UI.editorActions.CfmllFindUsagesProvider"/>
    <lang.foldingBuilder language="CFML" implementationClass="com.intellij.coldFusion.UI.folding.CfmlFoldingBuilder"/>
    <codeStyleSettingsProvider implementation="com.intellij.coldFusion.model.formatter.CfmlCodeStyleSettingsProvider"/>
    <langCodeStyleSettingsProvider implementation="com.intellij.coldFusion.model.formatter.CfmlLanguageCodeStyleSettingsProvider"/>

    <annotator language="CFML" implementationClass="com.intellij.coldFusion.UI.highlighting.CfmlAnnotator"/>
    <internalFileTemplate name="ColdFusion File"/>
    <internalFileTemplate name="ColdFusion Tag Component"/>
    <internalFileTemplate name="ColdFusion Tag Interface"/>
    <internalFileTemplate name="ColdFusion Script Component"/>
    <internalFileTemplate name="ColdFusion Script Interface"/>

    <stubElementTypeHolder class="com.intellij.coldFusion.model.psi.stubs.CfmlStubElementTypes"/>
    <stubIndex implementation="com.intellij.coldFusion.model.psi.stubs.CfmlComponentIndex"/>
    <stubIndex implementation="com.intellij.coldFusion.model.psi.stubs.CfmlInheritanceIndex"/>
    <stubIndex implementation="com.intellij.coldFusion.model.psi.stubs.CfmlInterfaceIndex"/>

    <codeInsight.parameterInfo language="CFML"
                               implementationClass="com.intellij.coldFusion.UI.editorActions.CfmlParameterInfoHandler"/>
    <projectConfigurable groupId="language" instance="com.intellij.coldFusion.UI.config.CfmlProjectConfigurable"
                         id="reference.plugin.settings.project.settings.cfml"
                         bundle="messages.CfmlBundle"
                         key="configurable.CfmlProjectConfigurable.display.name"
                         nonDefaultProject="true"/>
    <projectService serviceImplementation="com.intellij.coldFusion.UI.config.CfmlProjectConfiguration"/>
    <projectService serviceImplementation="com.intellij.coldFusion.model.info.CfmlLangInfo"/>

    <configurationType implementation="com.intellij.coldFusion.mxunit.CfmlUnitRunConfigurationType"/>

    <liveTemplateContext contextId="ColdFusion" implementation="com.intellij.coldFusion.CfmlTemplateContextType"/>
    <defaultLiveTemplates file="liveTemplates/cfml_default.xml"/>
    <spellchecker.support language="CFML" implementationClass="com.intellij.coldFusion.model.CfmlSpellcheckingStrategy"/>
    <lang.surroundDescriptor language="CFML"
                             implementationClass="com.intellij.coldFusion.UI.editorActions.surroundWith.CfmlVariableSurroundDescriptor"/>

    <multiHostInjector implementation="com.intellij.coldFusion.injection.CfmlSqlMultiHostInjector" order="first"/>
    <editorHighlighterProvider filetype="CFML" implementationClass="com.intellij.coldFusion.model.files.CfmlEditorHighlighterProvider"/>
  </extensions>

  <actions>
    <action id="NewCfmlFile" class="com.intellij.coldFusion.UI.CfmlCreateFileAction">
      <add-to-group group-id="NewGroup" anchor="before" relative-to-action="NewFromTemplate"/>
    </action>
  </actions>
</idea-plugin>
