override fun build()

in intellij-plugin-verifier/verifier-cli/src/main/java/com/jetbrains/pluginverifier/tasks/checkIde/CheckIdeParamsBuilder.kt [34:72]


  override fun build(opts: CmdOpts, freeArgs: List<String>): CheckIdeParams {
    require(freeArgs.isNotEmpty()) { "You have to specify IDE to check. For example: \"java -jar verifier.jar check-ide ~/EAPs/idea-IU-133.439\"" }
    OptionsParser.createIdeDescriptor(freeArgs[0], opts).closeOnException { ideDescriptor: IdeDescriptor ->
      val externalClassesPackageFilter = OptionsParser.getExternalClassesPackageFilter(opts)
      val problemsFilters = OptionsParser.getProblemsFilters(opts)

      val pluginsSet = PluginsSet()
      PluginsParsing(pluginRepository, archiveManager, reportage, pluginsSet).addPluginsFromCmdOpts(opts, ideDescriptor.ideVersion)

      val missingCompatibleVersionsProblems = findMissingCompatibleVersionsProblems(ideDescriptor.ideVersion, pluginsSet)

      val dependencyFinder = createIdeBundledOrPluginRepositoryDependencyFinder(ideDescriptor.ide, pluginRepository, pluginDetailsCache)

      val classResolverProvider = DefaultClassResolverProvider(
        dependencyFinder,
        ideDescriptor,
        externalClassesPackageFilter,
        archiveManager = archiveManager,
      )

      val verificationDescriptors = pluginsSet.pluginsToCheck.map {
        PluginVerificationDescriptor.IDE(ideDescriptor, classResolverProvider, it)
      }

      val verificationTarget = PluginVerificationTarget.IDE(ideDescriptor.ideVersion, ideDescriptor.jdkVersion)
      pluginsSet.ignoredPlugins.forEach { (plugin, reason) ->
        reportage.logPluginVerificationIgnored(plugin, verificationTarget, reason)
      }

      return CheckIdeParams(
        verificationTarget,
        verificationDescriptors,
        problemsFilters,
        missingCompatibleVersionsProblems,
        ideDescriptor,
        opts.excludeExternalBuildClassesSelector
      )
    }
  }