IntelliJ Platfrom Plugin 7

IntelliJ Platform Plugin SDK 공식문서 읽기 - Listeners

Listeners Listeners는 플러그인이 메시지 버스를 통해 전달된 이벤트에 선언적으로 가입할 수 있도록 허용합니다(자세한 내용은 Messaging infrastructure). Listeners 구현은 stateless이어야 하며 lifecycle(예: Disposable)를 구현할 수 없다. Listeners는 application 과 project-level로 정의할 수 있습니다. 사용 가능한 모든 listeners/topics 는 수신기 섹션의 Extension Point and Listener List에 나열됩니다. IntelliJ Platform Explorer를 통해 오픈 소스 IntelliJ Platform 플러그인의 기존 구현 내에서 사용법을 탐색합니다. Defining Appli..

IntelliJ Platform Plugin SDK 공식문서 읽기 - Services

Services 서비스는 플러그인이 해당 ComponentManager 인스턴스의 getService() 메소드를 호출할 때 필요에 따라 로드되는 플러그인 구성 요소입니다. IntelliJ 플랫폼은 여러 번 호출 되더라도 서비스의 인스턴스 하나만 로드 되도록 합니다. 서비스에는 서비스 인스턴스화에 사용되는 구현 클래스가 있어야 합니다. 서비스에는 서비스 인스턴스를 얻고 서비스의 API를 제공하는 데 사용되는 인터페이스 클래스가 있을 수도 있습니다. 종료 hook/cleanup routine이 필요한 서비스는 Disposable을 구현하고 dispose()에서 필요한 작업을 수행 할 수 있습니다 (Automatically Disposed Objects 참조) Disposer and Disposable | ..

IntelliJ Platform Plugin SDK 공식문서 읽기 - Extensions

Extensions Extension 기능은 플러그인에서 menu나 toolbar에 작업을 추가하는 것만큼 간단하지 않은 방식으로 IntelliJ 플랫폼의 기능을 확장하는 가장 일반적인 방법입니다. Extension을 사용하여 수행하는 가장 일반적인 태스크는 다음과 같습니다. The com.intellij.toolWindow extension point allows plugins to add tool windows (panels displayed at the sides of the IDE user interface); The com.intellij.applicationConfigurable and com.intellij.projectConfigurable extension points allow plug..

IntelliJ Platform Plugin SDK 공식문서 읽기 - Actions

IntelliJ 플랫폼은 Action의 개념을 제공합니다. Action은 AnAction에서 파생된 클래스로, menu item 또는 toolbar 버튼을 선택하면 actionPerformed() 메서드가 호출됩니다. Action은 사용자가 플러그인의 기능을 호출하는 가장 일반적인 방법입니다. menu 또는 toolbar button에서 keyboard shortcut 또는 Help | Find Action... 조회를 사용하여 작업을 호출할 수 있습니다. Action은 그룹으로 구성되며, 그룹에는 다른 그룹이 포함될 수 있습니다. 작업 그룹은 toolbar 또는 menu를 구성할 수 있습니다. 그룹의 하위 그룹은 메뉴의 하위 메뉴를 구성할 수 있습니다. 사용자는 Menus and Toolbars을 통해..

IntelliJ Platform Plugin SDK 공식문서 읽기 - Class Loaders

Class Loaders 별도의 클래스 로더를 사용하여 각 플러그인의 클래스를 로드합니다. 이를 통해 IDE 자체 또는 다른 플러그인에서 동일한 라이브러리를 사용하더라도 각 플러그인은 다른 라이브러리 버전을 사용할 수 있습니다. Bundled Libraries Third-Party Software and Licenses는 각 제품의 모든 번들 라이브러리와 해당 버전을 나열합니다. Overriding IDE Dependencies Gradle 7은 compile scope를 대체하여 implementation scope를 도입했습니다. 이 설정의 경우 번들 IDE 버전 대신 dependency를 사용하려면 Gradle 빌드 스크립트에 다음 snippet을 추가하십시오. configurations.all {..

IntelliJ Platform Plugin SDK 공식문서 읽기 - Bundling Plugin API Sources

Bundling Plugin API Sources 플러그인이 다른 플러그인이 사용하도록 되어 있는 자체 API를 노출한다면 ZIP 배포에서 플러그인의 API 소스를 번들링하는 것을 고려할 가치가 있습니다. 타사 플러그인이 Gradle IntelliJ Plugin을 사용하고 ZIP 배포의 소스를 번들하는 플러그인에 종속성을 추가하는 경우 소스는 플러그인 라이브러리에 자동으로 연결되고 개발자가 API 클래스로 이동할 때 IDE에 표시됩니다. API 소스를 볼 수 있게 되면 개발 경험이 획기적으로 향상되므로 번들링하는 것이 좋습니다. (Gradle IntelliJ Plugin 1.7.0부터 IDE에 번들 플러그인 소스를 연결할 수 있습니다.) API sources location API 소스 JAR은 플러그인..

IntelliJ Platform Plugin SDK 공식문서 읽기 - Plugin Content

플러그인 배포는 Gradle 또는 Plugin DevKit를 사용하여 구축됩니다. 플러그인 jar 파일에는 다음이 포함되어야 합니다. the configuration file (META-INF/plugin.xml) (Plugin Configuration File) the classes that implement the plugin functionality recommended: plugin logo file(s) (META-INF/pluginIcon*.svg) (Plugin Logo) Plugin Without Dependencies 단일 .jar 파일로 구성된 플러그인이 /plugins 디렉토리에 배치됩니다. Plugin With Dependencies 플러그인 .jar 파일은 필요한 모든 번들 라이브..