IntelliJ 플러그인 제작 하는법 ① 살펴보기

  • Intelli 플러그인을 통해 IDE 내부에 여러 기능들을 자동화 해보자
  • UI에 새롭게 추가하거나 내부 코드들을 제어 해보자

 

IntelliJ Plugin 공식 Document

 

IntelliJ Platform SDK | IntelliJ Platform Plugin SDK

 

plugins.jetbrains.com

 

 

 

플러그인을 제작하기 위해서는 IDE 플러그인 이라는 프로젝트를 생성해야한다

그러면 플러그인 제작을 위한 프로젝트 및 라이브러리를 자동으로 다운받아준다

 

 

 

 

 

IntelliJ 구버전에서는 프로젝트를 생성할때 Kotlin, Java 언어 선택하는 부분이 존재했었는데

신버전으로 넘어오면서 해당부분은 사라지고 두개의 언어모두 지원한다

 

 

 

IDE 플러그인 프로젝트가 정상적으로 로드되면 가장먼저 Kotlin으로 작성된 build.gradle이 보인다

build.gradle이 하는 역할은 다음과같다

 

  • 프로젝트에 버전 명시
  • 의존성 추가
  • IntelliJ 버전, Type, PluginSet 설정

기본으로 만들어지는 build.gradle에 어떤 설정값들이 있는지 빠르게 알아보도록 하자

 

plugins {
    id("java")
    id("org.jetbrains.kotlin.jvm") version "1.9.0"
    id("org.jetbrains.intellij") version "1.15.0"
}

 

 

본래 구버전에서는 처음 프로젝트 생성시 Kotlin, Java 언어 선택이 가능했다

현재 버전에서는 두개의 언어를 동시에 지원하며, 언어별로 버전을 설정할수있다

  • org.jetbrains.kotlin.jvm: Kotlin을 JVM용으로 컴파일하기 위한 플러그인. 버전은 1.9.0.
  • org.jetbrains.intellij: IntelliJ IDEA 플러그인을 개발하기 위한 플러그인. 버전은 1.15.0.

 

group = "com.example"
version = "1.0-SNAPSHOT"

 

  • group: 프로젝트 그룹 ID
  • version: 플러그인 버전

플러그인 빌드시 나오는 파일에 버전을 설정한다

intellij {
    version.set("2022.2.5")
    type.set("IC") // Target IDE Platform

    plugins.set(listOf(/* Plugin Dependencies */))
}

 

플러그인 테스트를 위해 빌드시 플러그인이 적용된 IntelliJ Project를 띄워준다

띄워진 IntelliJ Project에 버전과 Platform Target을 설정할수있다

 

설정값들에 대해서는 여기를 클릭하면 자세하게 알수있다

필자는 Ultimate 버전을 사용하고 있기에 type을 IU로 바꿔서 테스트를 진행한다

 

tasks {
    withType<JavaCompile> {
        sourceCompatibility = "17"
        targetCompatibility = "17"
    }
    withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
        kotlinOptions.jvmTarget = "17"
    }

    patchPluginXml {
        sinceBuild.set("222")
        untilBuild.set("232.*")
    }

    signPlugin {
        certificateChain.set(System.getenv("CERTIFICATE_CHAIN"))
        privateKey.set(System.getenv("PRIVATE_KEY"))
        password.set(System.getenv("PRIVATE_KEY_PASSWORD"))
    }

    publishPlugin {
        token.set(System.getenv("PUBLISH_TOKEN"))
    }
}

 

 

Java와 Kotlin 코드에 호환성을 설정할수있다.

그외에 IDE 보안을 위한 서명키도 세팅해주고 있는데

JetBrains Marketplace에 등록된 플러그인과 파일이 무결성을 체크하는 서명데이터로 확인된다

 

여기까지 프로젝트 전반적인 설정을 담당하는 build.gradle에 관해서 보았다

 

 

그다음 Plugin을 만들때 중요하다고 생각되는 plugin.xml 파일이다

 

  • Plugin에 중요한 메타데이터를 가지고있다
  • 플러그인 명칭, 설명, Action, Group 등 여러가지 추가 가능
  • IntelliJ에 여러 탭들이나 오른쪽 클릭했을때 나오는 팝업도 모두 여기서 설정할수있다

설정할수있는 태그들에 관해서는 여기를 클릭하면 상세하게 확인할수있다

 

 

 

Marketplace에 올라가있는 Plugin에 대한 정보들같은 메타데이터들이 모두 포함된다

IntelliJ 플러그인 제작을 위한 기본적인 정보들에 대해서 가볍게 알아보았다

 

이제 본격적으로 플러그인 제작을 위한 내부함수와 동작원리에 대해서 알아보자