<!--
  ~  Copyright 2000-2011 JetBrains s.r.o.
  ~  Licensed under the Apache License, Version 2.0 (the "License");
  ~  you may not use this file except in compliance with the License.
  ~  You may obtain a copy of the License at
  ~
  ~  http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~  Unless required by applicable law or agreed to in writing, software
  ~  distributed under the License is distributed on an "AS IS" BASIS,
  ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~  See the License for the specific language governing permissions and
  ~  limitations under the License.
  ~
  -->

<idea-plugin url="http://confluence.jetbrains.com/display/IDEADEV/Gradle+integration">
  <name>Gradle</name>
  <id>org.jetbrains.plugins.gradle</id>
  <vendor>JetBrains</vendor>
  <description>
      <![CDATA[
      <a href="http://www.gradle.org">Gradle</a> is a build and automation system. Gradle can automate the building, testing, publishing, deployment and etc.
      of software packages or other types of projects. The Gradle versions 1.8 to 1.11 are supported.
      This plugin provides Gradle integration.
      The following features are available:
      <ul>
      <li>Ability to deduce Gradle home from the environment variables or configure Gradle home in a product.</li>
      <li>Ability to create a new Gradle project or import the existing project with Gradle models.</li>
      <li>Ability to edit .gradle files. The initial coding assistance is the same as for Groovy.</li>
      <li>Dedicated Gradle tool window.</li>
      <li>Ability to synchronize structures of Gradle and product's projects.</li>
      <li>Running Gradle scripts with the Groovy run/debug configuration.</li>
      <li>Ability to use Gradle wrapper and auto-import.</li>
      </ul>

      ]]>
  </description>

  <depends>com.intellij.modules.lang</depends>
  <depends>org.intellij.groovy</depends>
  <depends>JUnit</depends>
  <depends optional="true" config-file="gradle-maven-integration.xml">org.jetbrains.idea.maven</depends>

  <extensionPoints>
    <extensionPoint name="projectResolve" interface="org.jetbrains.plugins.gradle.service.project.GradleProjectResolverExtension"/>
    <extensionPoint name="taskManager" interface="org.jetbrains.plugins.gradle.service.task.GradleTaskManagerExtension"/>
    <extensionPoint name="resolve.contributor" interface="org.jetbrains.plugins.gradle.service.resolve.GradleMethodContextContributor"/>
  </extensionPoints>

  <extensions defaultExtensionNs="org.jetbrains.plugins.gradle">
    <resolve.contributor implementation="org.jetbrains.plugins.gradle.service.resolve.GradleRootContributor"/>
    <resolve.contributor implementation="org.jetbrains.plugins.gradle.service.resolve.GradleTaskContributor"/>
    <resolve.contributor implementation="org.jetbrains.plugins.gradle.service.resolve.GradleConfigurationsContributor"/>
    <resolve.contributor implementation="org.jetbrains.plugins.gradle.service.resolve.GradleBuildScriptContributor"/>
    <resolve.contributor implementation="org.jetbrains.plugins.gradle.service.resolve.GradleIdeaPluginScriptContributor"/>
    <resolve.contributor implementation="org.jetbrains.plugins.gradle.service.resolve.GradleRepositoriesContributor"/>
    <resolve.contributor implementation="org.jetbrains.plugins.gradle.service.resolve.GradleMavenArtifactRepositoryContributor"/>
    <resolve.contributor implementation="org.jetbrains.plugins.gradle.service.resolve.GradleMavenDeployerContributor"/>
    <resolve.contributor implementation="org.jetbrains.plugins.gradle.service.resolve.GradleDependenciesContributor"/>
    <resolve.contributor implementation="org.jetbrains.plugins.gradle.service.resolve.GradleArtifactsContributor"/>
    <resolve.contributor implementation="org.jetbrains.plugins.gradle.service.resolve.GradleSourceSetsContributor"/>
    <resolve.contributor implementation="org.jetbrains.plugins.gradle.service.resolve.GradleImplicitContributor"/>
    <projectResolve implementation="org.jetbrains.plugins.gradle.service.project.BaseGradleProjectResolverExtension"/>
  </extensions>

  <extensions defaultExtensionNs="com.intellij">

    <postStartupActivity implementation="org.jetbrains.plugins.gradle.service.project.GradleStartupActivity"/>

    <orderEnumerationHandlerFactory implementation="org.jetbrains.plugins.gradle.execution.GradleOrderEnumeratorHandler$FactoryImpl"/>
    <compileServer.plugin classpath="gradle-jps-plugin.jar"/>
    <buildProcess.parametersProvider implementation="org.jetbrains.plugins.gradle.compiler.GradleBuildProcessParametersProvider"/>

    <resolveScopeEnlarger implementation="org.jetbrains.plugins.gradle.config.GradleBuildClasspathResolveScopeEnlarger"/>

    <errorHandler implementation="com.intellij.diagnostic.ITNReporter"/>
    <testActionProvider implementation="org.jetbrains.plugins.gradle.execution.test.runner.OpenGradleTestResultActionProvider"/>
    <runConfigurationProducer implementation="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer"
                              order="first"/>
    <runConfigurationProducer implementation="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer"
                              order="first"/>
    <runConfigurationProducer implementation="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer"
                              order="first"/>
    <externalSystemExecutionConsoleManager implementation="org.jetbrains.plugins.gradle.execution.test.runner.GradleTestsExecutionConsoleManager"/>
    <projectImportProvider implementation="org.jetbrains.plugins.gradle.service.project.wizard.GradleProjectImportProvider"/>
    <projectImportBuilder implementation="org.jetbrains.plugins.gradle.service.project.wizard.GradleProjectImportBuilder"/>
    <moduleBuilder builderClass="org.jetbrains.plugins.gradle.service.project.wizard.GradleModuleBuilder"/>
    <internalFileTemplate name="Gradle Build Script"/>
    <internalFileTemplate name="Gradle Build Script with wrapper"/>
    <projectConfigurable groupId="build" id="reference.settingsdialog.project.gradle"
                         instance="org.jetbrains.plugins.gradle.service.settings.GradleConfigurable"
                         key="gradle.name" bundle="i18n.GradleBundle"/>
    <library.presentationProvider implementation="org.jetbrains.plugins.gradle.config.GradleLibraryPresentationProvider" order="last"/>
    <java.elementFinder implementation="org.jetbrains.plugins.gradle.config.GradleClassFinder"/>
    <editorTabTitleProvider implementation="org.jetbrains.plugins.gradle.util.GradleEditorTabTitleProvider"/>
    <projectOpenProcessor implementation="org.jetbrains.plugins.gradle.service.project.wizard.GradleProjectOpenProcessor"/>
    <configurationType implementation="org.jetbrains.plugins.gradle.service.execution.GradleExternalTaskConfigurationType"/>

    <externalSystemConfigLocator implementation="org.jetbrains.plugins.gradle.service.settings.GradleConfigLocator"/>
    <externalSystemManager implementation="org.jetbrains.plugins.gradle.GradleManager"/>
    <externalProjectDataService implementation="org.jetbrains.plugins.gradle.service.project.data.BuildClasspathModuleGradleDataService"/>
    <externalProjectDataService implementation="org.jetbrains.plugins.gradle.service.project.data.ExternalProjectDataService"/>
    <externalSystemNotificationExtension implementation="org.jetbrains.plugins.gradle.service.notification.GradleNotificationExtension" order="last"/>
    <externalSystemTaskNotificationListener implementation="org.jetbrains.plugins.gradle.service.project.GradleProjectImportNotificationListener"/>

    <applicationService serviceImplementation="org.jetbrains.plugins.gradle.service.GradleInstallationManager"/>

    <applicationService serviceImplementation="org.jetbrains.plugins.gradle.settings.GradleSystemSettings"/>
    <projectService serviceImplementation="org.jetbrains.plugins.gradle.settings.GradleSettings"/>
    <projectService serviceImplementation="org.jetbrains.plugins.gradle.settings.GradleLocalSettings"/>
    <projectService serviceImplementation="org.jetbrains.plugins.gradle.service.project.GradleNotification"/>
    <projectService serviceImplementation="org.jetbrains.plugins.gradle.service.GradleBuildClasspathManager"/>

    <stepsBeforeRunProvider implementation="org.jetbrains.plugins.gradle.execution.GradleBeforeRunTaskProvider" />
    <configurationProducer implementation="org.jetbrains.plugins.gradle.service.execution.GradleRuntimeConfigurationProducer"/>

    <toolWindow id="Gradle" anchor="right" icon="GradleIcons.ToolWindowGradle"
                factoryClass="org.jetbrains.plugins.gradle.ui.GradleToolWindowFactory"
                conditionClass="org.jetbrains.plugins.gradle.ui.GradleToolWindowFactoryCondition"/>
    <lang.documentationProvider language="Groovy"
                                implementationClass="org.jetbrains.plugins.gradle.documentation.GradleDocumentationProvider"/>
    <editorNotificationProvider implementation="org.jetbrains.plugins.gradle.codeInsight.UseDistributionWithSourcesNotificationProvider"/>
    <annotator language="Groovy" implementationClass="org.jetbrains.plugins.gradle.service.resolve.dsl.GradleDslAnnotator"/>

    <localInspection language="Groovy" groupPath="Gradle" shortName="MultipleRepositoryUrls"
                     bundle="org.jetbrains.plugins.gradle.codeInspection.GradleInspectionBundle"
                     key="multiple.repository.urls" groupName="Probable bugs" enabledByDefault="true" level="WARNING"
                     implementationClass="org.jetbrains.plugins.gradle.codeInspection.MultipleRepositoryUrlsInspection"/>

  </extensions>

  <extensions defaultExtensionNs="org.intellij.groovy">
    <positionManagerDelegate implementation="org.jetbrains.plugins.gradle.config.GradlePositionManager"/>
    <scriptTypeDetector implementation="org.jetbrains.plugins.gradle.config.GradleScriptTypeDetector"/>
    <defaultImportContributor implementation="org.jetbrains.plugins.gradle.config.GradleDefaultImportContributor"/>
    <variableEnhancer order="first" implementation="org.jetbrains.plugins.gradle.service.resolve.GradleClosureAsAnonymousParameterEnhancer"/>
    <membersContributor implementation="org.jetbrains.plugins.gradle.service.resolve.GradleSettingsScriptContributor"/>
    <membersContributor implementation="org.jetbrains.plugins.gradle.service.resolve.GradleScriptContributor"/>
    <membersContributor implementation="org.jetbrains.plugins.gradle.service.resolve.GradleConfigurationsNonCodeMembersContributor"/>
    <methodDescriptor class="org.gradle.api.Project" name="apply">
      <namedArgument name="plugin" values="java,groovy,idea,eclipse,scala,antlr,application,ear,jetty,maven,osgi,war,announce,build-announcements,checkstyle,codenarc,eclipse-wtp,findbugs,jdepend,pmd,project-report,signing,sonar"/>
    </methodDescriptor>
    <referenceTypeEnhancer implementation="org.jetbrains.plugins.gradle.service.resolve.NamedDomainObjectCollectionTypeEnhancer"/>
    <unresolvedHighlightFilter implementation="org.jetbrains.plugins.gradle.service.resolve.GradleUnresolvedReferenceFilter"/>
  </extensions>

  <actions>

    <group id="Gradle.GenerateGroup">
      <action id="AddGradleDslPluginAction" class="org.jetbrains.plugins.gradle.codeInsight.actions.AddGradleDslPluginAction"/>
      <add-to-group group-id="GenerateGroup" anchor="first"/>
    </group>

  </actions>
</idea-plugin>
