jetbrains-plugin-development

Guide building JetBrains IDE plugins with plugin.xml and Gradle setup.

18|3|Updated Jan 12, 2026
One-click install
npx skills add https://github.com/buYoung/skills --skill jetbrains-plugin-development
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: jetbrains-plugin-development
Source: https://github.com/buYoung/skills/tree/main/skills/jetbrains-plugin-development
Command: npx skills add https://github.com/buYoung/skills --skill jetbrains-plugin-development

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Provide a comprehensive, structured guide for building, debugging, and migrating JetBrains IDE plugins for the IntelliJ Platform, covering plugin.xml, services, actions, PSI/VFS/Document interactions, threading (EDT/BGT), Kotlin coroutines, and Gradle-based setup and publishing workflows.

Core Features & Use Cases

It delineates best practices, patterns, and step-by-step scenarios for plugin lifecycle, dynamic reload, and cross-cutting concerns such as tooling integration, extension points, and marketplace publishing, with concrete examples and recommended architectures for robust plugin development.

Quick Start

Begin by reviewing the mental model and capability index to orient your plugin development work.

Frequently Asked Questions about jetbrains-plugin-development

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up a Gradle project for IntelliJ Platform plugin development?

To set up a Gradle project for IntelliJ Platform plugin development, configure the Gradle build script with the IntelliJ Platform Gradle plugin. This establishes the project structure, manages dependencies, and provides tasks to build, run, and debug the plugin.

What is the correct way to register actions and services in plugin.xml?

Registering actions and services in plugin.xml involves declaring them within specific XML tags to integrate with the IntelliJ Platform. This registration exposes your custom functionality to the IDE, enabling lifecycle management and execution.

How do I use Kotlin coroutines for background threading in JetBrains plugins?

Using Kotlin coroutines for background threading in JetBrains plugins requires launching coroutines within the appropriate plugin service context. This approach safely manages asynchronous tasks, preventing UI freezes by shifting work off the EDT.

Does IntelliJ plugin development require EDT and BGT threading rules?

IntelliJ plugin development strictly requires adhering to EDT and BGT threading rules to maintain IDE stability. You must execute UI updates on the Event Dispatch Thread and perform heavy computations on Background Threads to prevent application freezes.

How do I publish a JetBrains IDE plugin to the marketplace?

To publish a JetBrains IDE plugin to the marketplace, you configure the deployment settings in your Gradle build file. This automates the packaging and uploading process, distributing your plugin to users.

How do I interact with PSI, VFS, and Document in an IntelliJ plugin?

Interacting with PSI, VFS, and Document in an IntelliJ plugin involves using the platform's APIs to read and modify the underlying code structure, virtual files, and text. This enables custom code analysis and refactoring capabilities.