All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jetbrains.pluginverifier.usages.javaPlugin.JavaPluginApiCompatibilityIssueAnalyzer.kt Maven / Gradle / Ivy

Go to download

JetBrains Plugin Verifier Classes for IntelliJ Platform integration with API usage detection and reporting.

There is a newer version: 1.381
Show newest version
package com.jetbrains.pluginverifier.usages.javaPlugin

import com.jetbrains.pluginverifier.verifiers.CompatibilityIssueAnalyzer
import com.jetbrains.pluginverifier.verifiers.PluginVerificationContext

/**
 * Requires explicit dependency on the Java plugin via `com.intellij.modules.java`.
 *
 * See [Java Functionality extracted as a plugin](https://blog.jetbrains.com/platform/2019/06/java-functionality-extracted-as-a-plugin).
 */
class JavaPluginApiCompatibilityIssueAnalyzer : CompatibilityIssueAnalyzer {
  override fun analyze(context: PluginVerificationContext, usage: JavaPluginClassUsage) {
    val idePlugin = context.idePlugin
    if (idePlugin.dependencies.none { it.id == "com.intellij.modules.java" || it.id == "com.intellij.java" }) {
      val undeclaredJavaPluginDependencyProblem = context.compatibilityProblems
              .filterIsInstance()
              .firstOrNull() ?: UndeclaredDependencyOnJavaPluginProblem().also {
                  context.compatibilityProblems += it
              }
      undeclaredJavaPluginDependencyProblem.javaPluginClassUsages += usage
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy