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

com.jetbrains.plugin.structure.intellij.plugin.IdePluginContents.kt Maven / Gradle / Ivy

Go to download

Library for parsing JetBrains IDE plugins. Can be used to verify that plugin complies with the JetBrains Marketplace requirements.

There is a newer version: 3.290
Show newest version
/*
 * Copyright 2000-2020 JetBrains s.r.o. and other contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
 */

package com.jetbrains.plugin.structure.intellij.plugin

interface IdePluginContentDescriptor {
  enum class Os {
    mac, linux, windows, unix, freebsd
  }

  enum class ListenerType {
    PROJECT, APPLICATION
  }

  enum class ServiceType {
    PROJECT, APPLICATION, MODULE
  }

  enum class PreloadMode {
    TRUE, FALSE, AWAIT, NOT_HEADLESS, NOT_LIGHT_EDIT
  }

  enum class ClientKind {
    ALL, GUEST, LOCAL, CONTROLLER, OWNER, REMOTE, FRONTEND
  }

  val services: List
  val components: List
  val listeners: List
  val extensionPoints: List

  data class ExtensionPoint(val extensionPointName: String, val isDynamic: Boolean)
  data class ComponentConfig(val interfaceClass: String?, val implementationClass: String)
  data class ListenerDescriptor(
    val topicName: String,
    val className: String,
    val type: ListenerType,
    val activeInTestMode: Boolean,
    val activeInHeadlessMode: Boolean,
    val os: Os?
  )

  data class ServiceDescriptor(
    val serviceInterface: String?,
    val serviceImplementation: String?,
    val type: ServiceType,
    val testServiceImplementation: String?,
    val headlessImplementation: String?,
    val overrides: Boolean?,
    val configurationSchemaKey: String?,
    val preload: PreloadMode = PreloadMode.FALSE,
    val client: ClientKind?,
    val os: Os?
  )
}

data class MutableIdePluginContentDescriptor(
  override val services: MutableList = arrayListOf(),
  override val components: MutableList = arrayListOf(),
  override val listeners: MutableList = arrayListOf(),
  override val extensionPoints: MutableList = arrayListOf()
) : IdePluginContentDescriptor




© 2015 - 2024 Weber Informatics LLC | Privacy Policy