<idea-plugin>
    <name>TestNG-J</name>
    <description>TestNG Integration</description>
    <version>8.0</version>
    <vendor>Theory In Practice</vendor>
    <depends>com.intellij.java-i18n</depends>
    <extensions defaultExtensionNs="com.intellij">
        <errorHandler implementation="com.intellij.diagnostic.ITNReporter"/>
        <deadCode implementation="com.theoryinpractice.testng.inspection.TestNGEntryPoint"/>
        <cantBeStatic implementation="com.theoryinpractice.testng.inspection.TestNGCanBeStaticExtension" />
        <runConfigurationProducer implementation="com.theoryinpractice.testng.configuration.TestNGPatternConfigurationProducer"/>
        <runConfigurationProducer implementation="com.theoryinpractice.testng.configuration.TestNGInClassConfigurationProducer"/>
        <runConfigurationProducer implementation="com.theoryinpractice.testng.configuration.TestNGPackageConfigurationProducer"/>
        <runConfigurationProducer implementation="com.theoryinpractice.testng.configuration.TestNGSuiteConfigurationProducer"/>
        <configurationType implementation="com.theoryinpractice.testng.configuration.TestNGConfigurationType"/>
       <psi.referenceContributor language="JAVA" implementation="com.theoryinpractice.testng.TestNGReferenceContributor"/>
       <psi.referenceContributor language="XML" implementation="com.theoryinpractice.testng.TestNGSuiteReferenceContributor"/>
      <library.dependencyScopeSuggester implementation="com.theoryinpractice.testng.configuration.TestNGDependencyScopeSuggester"/>

      <localInspection language="JAVA" shortName="JUnitTestNG" displayName="Convert JUnit Tests to TestNG" groupName="TestNG" enabledByDefault="false"
                       level="WARNING" implementationClass="com.theoryinpractice.testng.inspection.JUnitConvertTool"/>
      <localInspection language="JAVA" shortName="ConvertOldAnnotations" displayName="Convert old @Configuration TestNG annotations" groupName="TestNG"
                       enabledByDefault="false" level="WARNING"
                       implementationClass="com.theoryinpractice.testng.inspection.ConvertOldAnnotationInspection"/>
      <localInspection language="JAVA" shortName="ConvertJavadoc" displayName="Convert TestNG Javadoc to 1.5 annotations" groupName="TestNG"
                       enabledByDefault="false" level="WARNING"
                       implementationClass="com.theoryinpractice.testng.inspection.ConvertJavadocInspection"/>
      <localInspection language="JAVA" shortName="ConvertAnnotations" displayName="Convert TestNG annotations to javadocs" groupName="TestNG"
                       enabledByDefault="false" level="WARNING"
                       implementationClass="com.theoryinpractice.testng.inspection.ConvertAnnotationInspection"/>
      <localInspection language="JAVA" shortName="dependsOnMethodTestNG" displayName="dependsOnMethods problem" groupName="TestNG" enabledByDefault="true"
                       level="WARNING" implementationClass="com.theoryinpractice.testng.inspection.DependsOnMethodInspection"/>
      <localInspection language="JAVA" shortName="groupsTestNG" displayName="Groups problem" groupName="TestNG" enabledByDefault="true" level="WARNING"
                       implementationClass="com.theoryinpractice.testng.inspection.DependsOnGroupsInspection"/>
      <localInspection language="JAVA" shortName="UndeclaredTests" displayName="Undeclared test" groupName="TestNG" enabledByDefault="false" level="WARNING"
                       implementationClass="com.theoryinpractice.testng.inspection.UndeclaredTestInspection"/>
      <localInspection language="JAVA" shortName="AssertEqualsBetweenInconvertibleTypesTestNG" displayName="'assertEquals()' between objects of inconvertible types"
                       groupName="TestNG" enabledByDefault="true" level="WARNING"
                       implementationClass="com.theoryinpractice.testng.inspection.AssertEqualsBetweenInconvertibleTypesTestNGInspection"/>
      <localInspection language="JAVA" shortName="ExpectedExceptionNeverThrownTestNG" displayName="Expected exception never thrown in test method body"
                       groupName="TestNG" enabledByDefault="false" level="WARNING"
                       implementationClass="com.theoryinpractice.testng.inspection.ExpectedExceptionNeverThrownTestNGInspection"/>
      <localInspection language="JAVA" suppressId="MessageMissingOnTestNGAssertion" shortName="AssertsWithoutMessagesTestNG"
                       displayName="Message missing on TestNG assertion" groupName="TestNG" enabledByDefault="false" level="WARNING"
                       implementationClass="com.theoryinpractice.testng.inspection.AssertsWithoutMessagesTestNGInspection"/>
      <localInspection language="JAVA" shortName="MisorderedAssertEqualsArgumentsTestNG" displayName="Misordered 'assertEquals()' arguments"
                       groupName="TestNG" enabledByDefault="false" level="WARNING"
                       implementationClass="com.theoryinpractice.testng.inspection.MisorderedAssertEqualsArgumentsTestNGInspection"/>
      <localInspection language="JAVA" shortName="TestNGMethodNamingConvention" displayName="TestNG test method naming convention"
                       groupName="TestNG" enabledByDefault="false" level="WARNING"
                       implementationClass="com.theoryinpractice.testng.inspection.TestNGMethodNamingConventionInspection"/>

      <intentionAction>
          <className>com.theoryinpractice.testng.intention.TestNGOrderEntryFix</className>
        </intentionAction>
        <testFramework implementation="com.theoryinpractice.testng.TestNGFramework"/>
      <standardResourceProvider implementation="com.theoryinpractice.testng.TestNGPlugin"/>
      <overrideImplementsAnnotationsHandler implementation="com.theoryinpractice.testng.intention.OverrideImplementsTestNGAnnotationsHandler"/>
      <forcedElementWeigher implementation="com.theoryinpractice.testng.TestNGForcedElementWeigher"/>
      <gotoRelatedProvider implementation="com.theoryinpractice.testng.TestNGRelatedFilesProvider"/>
      <methodReferencesSearch implementation="com.theoryinpractice.testng.DataProviderSearcher"/>
      <stacktrace.fold substring="at org.testng.internal."/>
      <stacktrace.fold substring="at org.testng.TestRunner."/>
      <stacktrace.fold substring="at org.testng.SuiteRunner."/>
      <stacktrace.fold substring="at org.testng.TestNG.run"/>
    </extensions>
    <extensionPoints >
      <extensionPoint qualifiedName="com.theoryinpractice.testng.listener" interface="org.testng.IDEATestNGListener"/>
    </extensionPoints>

    <change-notes>
        <![CDATA[
            <li>TESTNG-151 Final passing test result is not properly hidden
            <li>Fix method popup if test has class level @Test annotation
            <li>Added auto-completion for method names in dependsOnMethods
            <li>Added auto-completion for group names in dependsOnGroups
            <li>Fix for NPE on annotations without an annotation name (@ only).
            <li>Added TestNG 5.6 jars
            <li>Added inspection descriptions
        ]]>
    </change-notes>
</idea-plugin>
